iPhone: step probes + full hls.js error stream to server
The play-probe now lands (iPhone: iOS 18.7 Safari, hls.js path, MSE ok), but the /stream XHR never reaches the server on the failing attempts — impossible under the known code path. Instrument each step (new-hls-ok / loadsource-called / attach-ok) and log EVERY hls.js error (fatal+non-fatal, with retry counter) so the client timeline is visible server-side. Also fixed JSV constant drift (was stuck at 10). events endpoint: accept hls-err, forward step/fatal/details/buffer/retry/http.
This commit is contained in:
1 parent
3df074a5fe
commit
aba266ee4b
3 files changed
+14
-5
No files matched your search
+3
-2
@@ -285,12 +285,13 @@ def api_events(evt: dict = Body(...), request: Request = None):
|
||||
# client-reported events; the diagnostics the browser can uniquely see
|
||||
# (playback failures, capability probes) happen client-side, not in the
|
||||
# request log — so the phone reports them here
|
||||
if evt.get("type") not in ("error", "client-fail", "play-probe"):
|
||||
if evt.get("type") not in ("error", "client-fail", "play-probe", "hls-err"):
|
||||
raise HTTPException(422, "unknown event type")
|
||||
c = db.connect()
|
||||
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") if k in evt})
|
||||
"jsv", "branch", "hls_lib", "mse", "native_hls", "ua",
|
||||
"step", "fatal", "details", "buffer", "retry", "http") if k in evt})
|
||||
c.commit()
|
||||
c.close()
|
||||
return {"ok": True}
|
||||
|
||||
Reference in new issue
Block a user