Skip to content
  • Stian Selnes's avatar
    queue: Fix race when calculating cur_level.time · d03bd547
    Stian Selnes authored and Sebastian Dröge's avatar Sebastian Dröge committed
    On the first buffer, it's possible that sink_segment is set but
    src_segment has not been set yet. If this is the case, we should not
    calculate cur_level.time since sink_segment.position may be large and
    src_segment.position default is 0, with the resulting diff being larger
    than max-size-time, causing the queue to start leaking (if
    leaky=downstream).
    
    One potential consequence of this is that the segment event may be
    stored on the srcpad before the caps event is pushed downstream, causing
    a g_warning ("Sticky event misordering, got 'segment' before 'caps'").
    
    https://bugzilla.gnome.org/show_bug.cgi?id=773096
    d03bd547