Skip to content

5.5.1

Choose a tag to compare

@superuser404notfound superuser404notfound released this 17 Jul 11:19

Patch release: live HDR10 master playlist rejection (#130).

Fixed

  • Live HDR10 channels no longer fail at startup with -1002 (#130). AVPlayer filters a VIDEO-RANGE=PQ/HLG variant that carries no FRAME-RATE attribute out of the master playlist at parse time and fails the item with NSURLErrorDomain -1002 ("unsupported URL") before ever fetching media.m3u8. Live MPEG-TS probes can leave avg_frame_rate unset, so a live HDR session could serve exactly that master, and nothing recovered it: the #98 reactive fallback only covered -11868/-11848, and the #35 cold-start gate is VOD-only. Isolated with a byte-exact local repro of the served master (same 213-byte playlist, same double master fetch, same -1002; adding FRAME-RATE makes AVPlayer accept the variant, and SDR variants are accepted without it).

    Three layers, all engine-side:

    • The master FRAME-RATE attribute now uses the same avg_frame_rate to r_frame_rate fallback chain as the host probe, so live TS sessions carry a real frame rate in the manifest.
    • A source whose frame rate is unknown even after the fallback routes media-direct instead of serving a master AVPlayer provably rejects. SDR masters (native-subtitle routing, #15) are unaffected.
    • A startup -1002 while serving the master is now classified as a master rejection and reactively falls back to the media playlist, live sessions included; the live fallback rejoins at the live edge instead of replaying a stale start position.

Thanks to digilearn-dev for the precise report, including the served master body and the observation that the missing FRAME-RATE attribute might be involved. That hunch was exactly right.