Skip to content
  • Mathieu Duponchelle's avatar
    decodebin2: Take STREAM_LOCK before sending sticky events. · 68edf0eb
    Mathieu Duponchelle authored
    There was a race where:
    
    1) we would put the element to PAUSED
    2) It would get data sent to it from upstream
    3) It would thus send caps
    3) caps_notify_cb would continue autoplugging
    4) caps would flow downstream, the last pad would get exposed
    5) we were still not done sending the sticky events
    
    Taking the stream lock on the new element's sinkpad and only
    releasing it when sticky events have all been sent prevents
    the caps from reaching the source pad of the element before
    we're all set.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=740694
    68edf0eb