iPhone: full client timeline + self-diagnosing watchdog
Every step now beacons with millisecond offsets:
branch-decision -> new-hls-ok -> loadsource-called -> attach-ok ->
manifest-loaded -> level-loaded -> frag-loaded(1..2) -> buffer-appended
-> do-play -> play-resolved/play-rejected(name) + EVERY hls.js error
(fatal and silent retries). Plus a watchdog: if not playing within 15s,
it snapshots {readyState, networkState, paused, buffered, hls.state,
overlay text} every 15s (x6) — so a silent death anywhere produces a
state dump instead of nothing.
Verified on desktop: healthy timeline lands end-to-end, playback OK,
18/18 tests. assets v=13.
This commit is contained in:
1 parent
aba266ee4b
commit
aaaf8e9308
3 files changed
+42
-17
No files matched your search
+3
-1
@@ -291,7 +291,9 @@ def api_events(evt: dict = Body(...), request: Request = None):
|
||||
db.event(c, request.state.user, evt["type"],
|
||||
{k: evt[k] for k in ("ep_id", "ep", "lang", "msg", "detail",
|
||||
"jsv", "branch", "hls_lib", "mse", "native_hls", "ua",
|
||||
"step", "fatal", "details", "buffer", "retry", "http") if k in evt})
|
||||
"step", "fatal", "details", "buffer", "retry", "http",
|
||||
"dt", "n", "rs", "ns", "paused", "bufEnd", "ct",
|
||||
"hls_state", "ov", "name") if k in evt})
|
||||
c.commit()
|
||||
c.close()
|
||||
return {"ok": True}
|
||||
|
||||
Reference in new issue
Block a user