Skip to content

qtdemux: fix key unit seek corner case

If a key unit seek is performed with a time position that matches the offset of a keyframe, but not its actual PTS, we need to adjust the segment nevertheless.

For example consider the following case:

  • stream starts with a keyframe at 0 nanosecond, lasting 40 milliseconds
  • user does a key unit seek at 20 milliseconds
  • we don't adjust the segment as the time position is "over" a keyframe
  • we push a segment that starts at 20 milliseconds
  • we push a buffer with PTS == 0
  • an element downstream (eg rtponviftimestamp) tries to calculate the stream time of the buffer, fails to do so and drops it

Merge request reports