Skip to content

5.20.2 - Exact indexed IRAP seeking for VOD resume

Choose a tag to compare

@superuser404notfound superuser404notfound released this 23 Jul 10:36

Fixed

Mid-stream VOD resume and producer restarts now seek directly to the indexed video IRAP for the target segment (#191).

Root cause

The segment plan retained the exact video-stream IRAP timestamp, but the resume and restart paths converted it to seconds and issued an unconstrained global seek. On multi-stream B-frame MP4, libavformat could choose an earlier global sync point. The producer then had to scan and discard a whole GOP over the remote origin before it could write the requested segment, which made startup fragile on slow links.

Fix

  • Seek on the video stream native timestamp axis.
  • Use the indexed IRAP as both the target and lower bound, preventing an earlier landing.
  • Retain the previous global-time fallback when the precise seek is unsupported.
  • Keep folded multi-clip disc timelines on the compatibility path because their plan timestamps are not raw demuxer timestamps.
  • Cover the landing behavior with the self-contained Issue191IRAPSeekTests B-frame MP4 fixture.

Acknowledgements

Thanks to @kskchaitanya1993 for the decisive slow-origin diagnostics.

Verification

Full suite: 976 tests in 161 suites; strict concurrency build clean; arm64 tvOS and iOS Simulator package builds green; pull request CI and release-commit CI green.