qtdemux: Wrong segment handling if incoming segments are not mapping position 0 to running time 0
Can be reproduced with
$ gst-launch-1.0 audiotestsrc num-buffers=99 samplesperbuffer=4410 ! audio/x-raw,rate=44100 ! avenc_aac ! isofmp4mux fragment-duration=2500000000 ! qtdemux ! fakesink silent=false sync=true -v
-
Input segment is:
flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)time, base=(guint64)0, offset=(guint64)0, start=(guint64)3600000000000000, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)3600000000000000
-
Input PTS/DTS: starting at 3600000000000000
-
Output segment is: (same)
flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)time, base=(guint64)0, offset=(guint64)0, start=(guint64)3600000000000000, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)3600000000000000
-
Output PTS/DTS: starting at 0
So all buffers for the first 10 hours are clipped away because they're outside the segment.
Replacing this with cmafmux
fixes the whole thing because that passes through the segment as-is.
Needs isofmp4mux
from gst-plugins-rs!757 (merged)