4.5.5 — Embedded subtitles on a network ISO (#76)
Fixed
Embedded subtitles never appeared on a network ISO (Blu-ray / DVD over http) (#76)
Selecting an embedded subtitle on a disc image served over http showed nothing, while the same disc played from a local ISO worked. The side-demuxer logged embedded subtitle reader exited (cancelled=true) packetsRead=0: it was superseded by a seek, a title switch, or a re-select before it read a single packet.
Root cause. The open was glacially slow on a remote disc, and it was slow for two reasons:
- It re-opened the disc with the full 50 MB / 60 s probe budget. A Blu-ray's sparse
hdmv_pgs_subtitlestreams never resolve codec parameters, sofind_stream_inforeads to the full 50 MB over http chasing them (the same pattern as #75, hereCould not find codec parameters ... probesize (52428800)). - It then ran the MKV cue-index prewarm seek (
duration × 0.5), a cold range read to the middle of a 32 GB ISO. That technique only helps Matroska (whose cue index lives at EOF); a concat MPEG-TS / VOB disc gains nothing from it.
Together the open ran tens of seconds. Locally both steps are instant, so the bug only showed over http. EmbeddedSubtitleDecoder needs only the codec id / type (carried in the container header / MPEG-TS PMT and resolved by the open itself) and seeds bitmap (PGS / DVB / DVD) canvas dimensions from the source video size, so the full probe chase buys nothing for it.
Fix. The embedded subtitle side-demuxer now:
- caps its probe to 4 MB / 5 s (and honours an even tighter caller
LoadOptions.probesize/maxAnalyzeDurationbudget), - skips the cue-index prewarm seek for disc sources, and
- opens the same BD / DVD title the user is watching instead of always title 0.
Applied to both the inline host-overlay reader and the native multi-decode rendition reader (#55). The normal (non-disc) subtitle path is unchanged: the bounded probe still resolves text and bitmap tracks, verified by a live cue-emission check.
Reported by the AetherPlayer community.
Full diff: 4.5.4...4.5.5