From b6765417e18fd97435b77464439c999f49c6a186 Mon Sep 17 00:00:00 2001 From: Matej Knopp Date: Mon, 16 Apr 2012 13:43:41 +0200 Subject: [PATCH] decodebin: Do not block on sticky and oob events --- gst/playback/gstdecodebin2.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c index b2cb4eee61..b2d271e89f 100644 --- a/gst/playback/gstdecodebin2.c +++ b/gst/playback/gstdecodebin2.c @@ -3752,6 +3752,14 @@ source_pad_blocked_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data) GstDecodeChain *chain; GstDecodeBin *dbin; + if ((GST_PAD_PROBE_INFO_TYPE (info) & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) && + (GST_EVENT_IS_STICKY (GST_PAD_PROBE_INFO_EVENT (info)) + || !GST_EVENT_IS_SERIALIZED (GST_PAD_PROBE_INFO_EVENT (info)))) { + /* do not block on sticky or out of band events otherwise the allocation query + from demuxer might block the loop thread */ + return GST_PAD_PROBE_PASS; + } + chain = dpad->chain; dbin = chain->dbin;