mxfdemux: Handle temporal reordering shift
This is similar to how the same issue was handled in qtdemux.
In order for the "DTS <= PTS" constraint to be respected, we calculate the maximum temporal reordering that can happen (via index tables).
If there is a non-0 temporal reordering, we:
- Shift all outgoing PTS by that amount
- Shift segment for that stream by that amount
- Don't modify DTS (i.e. they might end up having negative running-time, before the start of the segment)
Fixes #584 (closed)
(and maybe a lot of other issues)
TODO:
-
Check if large gop can be spread across two tables, meaning we need to carry on the max temporal offset -
Check sign in temporal offset assignment -
Fix index->dts
(assuming it's used) -
Create gst-intergration-suite branch to get CI working
Edited by Edward Hervey