qtdemux: rework segment event pushing, again
authorAlicia Boya García <aboya@igalia.com>
Sat, 9 Jun 2018 21:58:01 +0000 (23:58 +0200)
committerThibault Saunier <tsaunier@igalia.com>
Fri, 29 Jun 2018 13:19:31 +0000 (09:19 -0400)
commit025a430d0861bdbc3d8221bddeaa2adae85bfc3e
treeb3096db3c617b70f9dd5d1f5ec8ab278586d455c
parent2c394304b72956da9248f959046af18afd3c7b6a
qtdemux: rework segment event pushing, again

This patch aims at fixing the recent regressions in the adaptive test
suite.

All segment pushing in push mode is now done with
gst_qtdemux_check_send_pending_segment(), which is idempotent and
handles both edit lists cases and cases where the upstream TIME segments
have to be sent directly.

Fragmented files that start with a non-zero tfdt are also taken into
account, but their handling has been vastly simplified: now they are
handled as implicit default seeks so there is no need to extend the
GstSegment formulas as was being done before.

qtdemux->segment.duration is no longer modified when
upstream_format_is_time, respecting in this way the durations provided
by dashdemux and fixing bugs in reverse playback tests where mangled
durations appeared in the emitted segments.

https://bugzilla.gnome.org/show_bug.cgi?id=752603
gst/isomp4/qtdemux.c
gst/isomp4/qtdemux.h