goon/mobile/src
goon-foss 948f62cb65 mobile: recover from mid-playback decode/seek errors (doply NAL)
Bug f6c86847/b1b5e1a2: doply/playmogo plays fine but seeking throws
"source error, invalid NAL length" in ExoPlayer. Investigation (cross-IP,
2026-06-01) showed the stream is well-formed — faststart MP4 (moov before
mdat) on cloudatacdn.com which fully supports HTTP range (206, correct
content-range, repeatable token, no redirect). So it is an ExoPlayer-internal
seek failure, not an HTTP/container problem, and expo-video exposes no
extractor/MIME hint to influence it.

Mitigation: when the native player errors *after* it had already loaded
(i.e. a mid-playback/seek failure, not an initial-load failure) and the error
is not a 404/410, recreate the source via player.replace() and resume at the
last known position — this opens a fresh connection and re-parses moov, which
typically clears the transient decode error. Hard-capped at 2 attempts per
mount to avoid any auto-reload loop; if it still fails it falls through to the
existing proxy/WebView fallback and error UI. Initial-load errors are
untouched, so the resolver and the ~59k working doply sources are unaffected.

Also thread playbackId/entityKind through the resolved-hoster and proxy/WebView
nav.replace calls so those paths get the 404 "Mark broken" affordance too, and
complete the local RouteParams type with headers/fallbackProxyUrl.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 11:15:21 +02:00
..
components i18n(mobile): polish UI strings → English 2026-05-31 16:27:55 +02:00
lib i18n(mobile): polish UI strings → English 2026-05-31 16:27:55 +02:00
native Initial commit 2026-05-20 10:10:22 +02:00
screens mobile: recover from mid-playback decode/seek errors (doply NAL) 2026-06-01 11:15:21 +02:00
api.ts feat(movies): watched/continue-watching tracking end-to-end 2026-05-28 23:24:06 +02:00
ClientContext.tsx Initial commit 2026-05-20 10:10:22 +02:00
ErrorBoundary.tsx Initial commit 2026-05-20 10:10:22 +02:00
navigation.tsx mobile: let players identify & report 404/410 sources 2026-06-01 11:04:58 +02:00
storage.ts Initial commit 2026-05-20 10:10:22 +02:00
theme.ts build(apk): 0.2.0 — expo-font native, runtime 1.1, fonts re-enabled 2026-05-31 12:51:32 +02:00
types.ts perf(scenes): bounded count + has_more for filtered scene lists 2026-05-31 19:24:26 +02:00