Skip to content

4.5.5 — Embedded subtitles on a network ISO (#76)

Choose a tag to compare

@superuser404notfound superuser404notfound released this 27 Jun 03:36

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_subtitle streams never resolve codec parameters, so find_stream_info reads to the full 50 MB over http chasing them (the same pattern as #75, here Could 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 / maxAnalyzeDuration budget),
  • 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