From 96cd9417886cc34f7a7f6fa299c9d4a6ec962851 Mon Sep 17 00:00:00 2001 From: Vivia Nikolaidou Date: Tue, 13 Jun 2017 17:40:19 +0300 Subject: [PATCH] splitmux: Drop allocation queries They can cause us to deadlock, while we're waiting for a new frame and upstream is waiting for the allocation query to be answered before sending a frame https://bugzilla.gnome.org/show_bug.cgi?id=783753 --- gst/multifile/gstsplitmuxsink.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gst/multifile/gstsplitmuxsink.c b/gst/multifile/gstsplitmuxsink.c index 4ccda95e39..57ae1567bd 100644 --- a/gst/multifile/gstsplitmuxsink.c +++ b/gst/multifile/gstsplitmuxsink.c @@ -1479,6 +1479,13 @@ handle_mq_input (GstPad * pad, GstPadProbeInfo * info, MqStreamCtx * ctx) break; } return GST_PAD_PROBE_PASS; + } else if (info->type & GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM) { + switch (GST_QUERY_TYPE (GST_QUERY (info->data))) { + case GST_QUERY_ALLOCATION: + return GST_PAD_PROBE_DROP; + default: + return GST_PAD_PROBE_PASS; + } } buf = gst_pad_probe_info_get_buffer (info); @@ -1854,7 +1861,8 @@ gst_splitmux_sink_request_new_pad (GstElement * element, mq_stream_ctx_ref (ctx); ctx->sink_pad_block_id = gst_pad_add_probe (q_sink, - GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM | GST_PAD_PROBE_TYPE_EVENT_FLUSH, + GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM | GST_PAD_PROBE_TYPE_EVENT_FLUSH | + GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM, (GstPadProbeCallback) handle_mq_input, ctx, (GDestroyNotify) _pad_block_destroy_sink_notify);