diff options
author | Wim Taymans <wim.taymans@collabora.co.uk> | 2013-04-04 14:37:15 +0200 |
---|---|---|
committer | Wim Taymans <wim.taymans@collabora.co.uk> | 2013-04-04 14:37:15 +0200 |
commit | 08dd2454cd6697a2f0ea678e5cd949872196c608 (patch) | |
tree | 59f8217c3876188ec3c84948b31f92e6d3ab85a8 | |
parent | a4e44df6b9727f1f9a26da5774179d402b05b8f0 (diff) |
decodebin2: small cleanup
Take the event from the probe just once.
-rw-r--r-- | gst/playback/gstdecodebin2.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c index ab4b34f1d..997cc0fee 100644 --- a/gst/playback/gstdecodebin2.c +++ b/gst/playback/gstdecodebin2.c @@ -3967,16 +3967,16 @@ source_pad_blocked_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data) GstDecodeBin *dbin; if (GST_PAD_PROBE_INFO_TYPE (info) & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) { - GST_LOG_OBJECT (pad, "Seeing event '%s'", - GST_EVENT_TYPE_NAME (GST_PAD_PROBE_INFO_EVENT (info))); + GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info); - if (GST_EVENT_TYPE (GST_PAD_PROBE_INFO_EVENT (info)) == GST_EVENT_CAPS) { + GST_LOG_OBJECT (pad, "Seeing event '%s'", GST_EVENT_TYPE_NAME (event)); + + if (GST_EVENT_TYPE (event) == GST_EVENT_CAPS) { /* manually push event to ghost pad to avoid exposing pads * that don't have the sticky caps event */ - gst_pad_push_event (GST_PAD_CAST (dpad), - gst_event_ref (GST_PAD_PROBE_INFO_EVENT (info))); - } else if ((GST_EVENT_IS_STICKY (GST_PAD_PROBE_INFO_EVENT (info)) - || !GST_EVENT_IS_SERIALIZED (GST_PAD_PROBE_INFO_EVENT (info)))) { + gst_pad_push_event (GST_PAD_CAST (dpad), gst_event_ref (event)); + } else if ((GST_EVENT_IS_STICKY (event) + || !GST_EVENT_IS_SERIALIZED (event))) { /* do not block on sticky or out of band events otherwise the allocation query from demuxer might block the loop thread */ GST_LOG_OBJECT (pad, "Letting event through"); |