5.10.0
Added
Non-live remote HLS on the loopback path now plays, with its external WebVTT subtitle renditions surfaced as subtitleTracks (#154)
The bundled FFmpeg is built without network support, so a remote VOD m3u8 handed to the default (loopback) path could never be demuxed: the hls probe does not engage behind the custom I/O context, and even if it did, it could not fetch a single variant. The open used to die with a bare AVERROR_INVALIDDATA.
- The
AVIOReadernow classifies an#EXTM3Ubody on the non-live path (typedhlsPlaylistOnVODPath, the #140 sibling for VOD), andload()transparently reroutes the URL onto thenativeRemoteHLSbypass, where AVPlayer plays remote HLS natively. Hosts no longer need to pre-route m3u8 URLs themselves. - A VOD
startPositionnow rides into the bypass as a resume seek. Live callers keep the historical no-initial-seek contract. - On the bypass, the engine maps the item's legible
AVMediaSelectionGroupontosubtitleTracks(synthetic ids, forced and SDH dispositions carried, group order preserved).selectSubtitleTrack(index:)andclearSubtitle()drive AVPlayer's media selection with the manual-criteria pin; AVPlayer renders the cues itself. An AVKit or caption-preference auto-select is mirrored intoactiveSubtitleTrackIndexafter readiness so host pickers start truthful.
Verified end-to-end against the reported WWDC CMAF stream: the reroute engages, all 7 declared subtitle renditions surface, and an explicit English selection lands on the item's media selection.
Covered by RemoteHLSMediaSelectionTests. Reported by jihongboo (#154). Thanks for the detailed report and source-level analysis.