Repository navigation
v0.4.2
Recover from playback that freezes without erroring
Some resource-site playlists wedge the platform HLS demuxer. When that happens
the video element keeps reporting that it is playing — paused=false,
error=null, still loading — while the picture is frozen and the clock never
moves again. Because no error is ever raised, the existing source failover never
ran: the app sat on a still frame indefinitely (17 minutes, in the case that
prompted this) with no spinner, no message and no way to tell it apart from a
paused scene.
The player now watches its own clock. If playback claims to be running but has
not advanced for 10 seconds, the current source is marked failed and the next
one takes over — continuing from where it froze, rather than restarting the
episode. Buffer underruns also show the loading spinner now, so "still buffering"
and "dead" no longer look the same.
The watchdog is armed only once playback has actually produced frames, and
pausing, seeking or reaching the end reset it, so startup buffering and normal
remote use cannot trigger a spurious source switch.
Verified against a playlist that reproduces the freeze deterministically: before,
frozen indefinitely; after, detected in 10 seconds, failed over, and playback
continued past the point that killed the first source.
Install
Homebrew Channel picks this up automatically. Manual install:
opkg --add-dest developer:/media/developer install -d developer com.cheerchen.decotv_0.4.2_all.ipkRequires a DecoTV server running in public auth mode.