pad: Unblock blocking pad probes when receiving FLUSH_START in send_event() too
authorSebastian Dröge <sebastian@centricular.com>
Wed, 28 Oct 2015 16:04:46 +0000 (18:04 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 29 Oct 2015 09:16:13 +0000 (11:16 +0200)
Without this, flushing might not unblock the streaming thread and cause deadlocks.

https://bugzilla.gnome.org/show_bug.cgi?id=757257

gst/gstpad.c

index adac3d0..9fea17e 100644 (file)
@@ -5364,6 +5364,8 @@ gst_pad_send_event_unchecked (GstPad * pad, GstEvent * event,
 
       GST_PAD_SET_FLUSHING (pad);
       GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "set flush flag");
+      GST_PAD_BLOCK_BROADCAST (pad);
+      type |= GST_PAD_PROBE_TYPE_EVENT_FLUSH;
       break;
     case GST_EVENT_FLUSH_STOP:
       /* we can't accept flush-stop on inactive pads else the flushing flag