Skip to content
  • Alicia Boya García's avatar
    qtdemux: Don't send EOS during upstream reverse playback · 2c394304
    Alicia Boya García authored and Thibault Saunier's avatar Thibault Saunier committed
    Upstream driving elements such as dashdemux often do reverse playback by
    feeding qtdemux with the fragments containing the requested playback
    range in reverse order.
    
    But the requested playback range stop may be somewhere in the
    middle of a fragment. In that case, a naive pts >= segment.stop
    condition may declare end of segment prematurely when demuxing this
    first fragment.
    
    This used not to happen because there were places in moov parsing where
    segment.stop was overwritten to GST_CLOCK_TIME_NONE even if
    upstream_format_is_time -- resulting in this case in a segment with rate
    < 0 and stop == -1 and hence not triggering the EOS check, but that was
    likely an accident.
    
    This patch modifies the EOS check to take this case into account, not
    sending EOS when upstream_format_is_time if rate < 0.
    
    This fixes adaptive.dash.playback.seek_end_live.DASHIF_livestream_testpic_2s
    
    https://bugzilla.gnome.org/show_bug.cgi?id=752603
    2c394304