diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c index 64cc07bc23..09b67a6bc7 100644 --- a/plugins/elements/gstmultiqueue.c +++ b/plugins/elements/gstmultiqueue.c @@ -1631,6 +1631,11 @@ gst_single_queue_push_one (GstMultiQueue * mq, GstSingleQueue * sq, if (G_UNLIKELY (*allow_drop)) *allow_drop = FALSE; break; + case GST_EVENT_STREAM_START: + result = GST_FLOW_OK; + if (G_UNLIKELY (*allow_drop)) + *allow_drop = FALSE; + break; case GST_EVENT_SEGMENT: apply_segment (mq, sq, event, &sq->src_segment); /* Applying the segment may have made the queue non-full again, unblock it if needed */ diff --git a/plugins/elements/gstqueue.c b/plugins/elements/gstqueue.c index db02e20a50..37a4438506 100644 --- a/plugins/elements/gstqueue.c +++ b/plugins/elements/gstqueue.c @@ -1400,7 +1400,8 @@ next: GstEvent *event = GST_EVENT_CAST (data); GstEventType type = GST_EVENT_TYPE (event); - if (type == GST_EVENT_EOS || type == GST_EVENT_SEGMENT) { + if (type == GST_EVENT_EOS || type == GST_EVENT_SEGMENT + || type == GST_EVENT_STREAM_START) { /* we found a pushable item in the queue, push it out */ GST_CAT_LOG_OBJECT (queue_dataflow, queue, "pushing pushable event %s after EOS", diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c index fab1402469..838b6d68e1 100644 --- a/plugins/elements/gstqueue2.c +++ b/plugins/elements/gstqueue2.c @@ -2859,7 +2859,8 @@ gst_queue2_dequeue_on_eos (GstQueue2 * queue, GstQueue2ItemType * item_type) GstEvent *event = GST_EVENT_CAST (data); GstEventType type = GST_EVENT_TYPE (event); - if (type == GST_EVENT_EOS || type == GST_EVENT_SEGMENT) { + if (type == GST_EVENT_EOS || type == GST_EVENT_SEGMENT + || type == GST_EVENT_STREAM_START) { /* we found a pushable item in the queue, push it out */ GST_CAT_LOG_OBJECT (queue_dataflow, queue, "pushing pushable event %s after EOS", GST_EVENT_TYPE_NAME (event));