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

Fixes bug #658846.
This commit is contained in:
Sebastian Dröge 2011-09-19 11:53:02 +02:00
parent e574f58e71
commit 936e87cdcf

View file

@ -1379,6 +1379,7 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
GstElementFactory *factory; GstElementFactory *factory;
const gchar *classification; const gchar *classification;
gboolean is_parser_converter = FALSE; gboolean is_parser_converter = FALSE;
gboolean res;
GST_DEBUG_OBJECT (dbin, "Pad %s:%s caps:%" GST_PTR_FORMAT, GST_DEBUG_OBJECT (dbin, "Pad %s:%s caps:%" GST_PTR_FORMAT,
GST_DEBUG_PAD_NAME (pad), caps); 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. */ /* 1.h else continue autoplugging something from the list. */
GST_LOG_OBJECT (pad, "Let's continue discovery on this pad"); 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 /* Need to unref the capsfilter srcpad here if
* we inserted a capsfilter */ * we inserted a capsfilter */
@ -1615,6 +1616,9 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
gst_object_unref (dpad); gst_object_unref (dpad);
g_value_array_free (factories); g_value_array_free (factories);
if (!res)
goto unknown_type;
return; return;
expose_pad: expose_pad: