[0.11] gst-plugins-base: decodebin2: Fix non-prerolling pipelines and not-linked errors if a parser is available but no decoder

Edward Hervey bilboed at kemper.freedesktop.org
Fri Sep 23 09:41:13 PDT 2011


Module: gst-plugins-base
Branch: 0.11
Commit: 936e87cdcfe766c4ebf9186f722de1278dae950c
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=936e87cdcfe766c4ebf9186f722de1278dae950c

Author: Sebastian Dröge <sebastian.droege at collabora.co.uk>
Date:   Mon Sep 19 11:53:02 2011 +0200

decodebin2: Fix non-prerolling pipelines and not-linked errors if a parser is available but no decoder

Fixes bug #658846.

---

 gst/playback/gstdecodebin2.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
index 17f19f8..a1da6c5 100644
--- a/gst/playback/gstdecodebin2.c
+++ b/gst/playback/gstdecodebin2.c
@@ -1379,6 +1379,7 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
   GstElementFactory *factory;
   const gchar *classification;
   gboolean is_parser_converter = FALSE;
+  gboolean res;
 
   GST_DEBUG_OBJECT (dbin, "Pad %s:%s caps:%" GST_PTR_FORMAT,
       GST_DEBUG_PAD_NAME (pad), caps);
@@ -1605,7 +1606,7 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
 
   /* 1.h else continue autoplugging something from the list. */
   GST_LOG_OBJECT (pad, "Let's continue discovery on this pad");
-  connect_pad (dbin, src, dpad, pad, caps, factories, chain);
+  res = connect_pad (dbin, src, dpad, pad, caps, factories, chain);
 
   /* Need to unref the capsfilter srcpad here if
    * we inserted a capsfilter */
@@ -1615,6 +1616,9 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
   gst_object_unref (dpad);
   g_value_array_free (factories);
 
+  if (!res)
+    goto unknown_type;
+
   return;
 
 expose_pad:



More information about the gstreamer-commits mailing list