From: Tim-Philipp Müller Date: Wed, 16 Mar 2011 10:19:42 +0000 (+0000) Subject: uridecodebin: post proper error message if decodebin2/typefind elements are missing X-Git-Tag: RELEASE-0.10.33~142 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e8f5b3a579aa31ccbcb33a8920004fe8d9bbdeca;p=platform%2Fupstream%2Fgst-plugins-base.git uridecodebin: post proper error message if decodebin2/typefind elements are missing Post better error messages in case typefind/decodebin2 are missing or could not be loaded for some reason (e.g. because they inadvertently got blacklisted). https://bugzilla.gnome.org/show_bug.cgi?id=644892 --- diff --git a/gst/playback/gsturidecodebin.c b/gst/playback/gsturidecodebin.c index f4551e3..bf10583 100644 --- a/gst/playback/gsturidecodebin.c +++ b/gst/playback/gsturidecodebin.c @@ -1539,6 +1539,11 @@ make_decoder (GstURIDecodeBin * decoder) if (!decodebin) goto no_decodebin; + + /* sanity check */ + if (decodebin->numsinkpads == 0) + goto no_typefind; + /* connect signals to proxy */ g_signal_connect (decodebin, "unknown-type", G_CALLBACK (proxy_unknown_type_signal), decoder); @@ -1609,6 +1614,15 @@ make_decoder (GstURIDecodeBin * decoder) no_decodebin: { post_missing_plugin_error (GST_ELEMENT_CAST (decoder), "decodebin2"); + GST_ELEMENT_ERROR (decoder, CORE, MISSING_PLUGIN, (NULL), + ("No decodebin2 element, check your installation")); + return NULL; + } +no_typefind: + { + gst_object_unref (decodebin); + GST_ELEMENT_ERROR (decoder, CORE, MISSING_PLUGIN, (NULL), + ("No typefind element, decodebin2 is unusable, check your installation")); return NULL; } } @@ -1762,6 +1776,8 @@ setup_streaming (GstURIDecodeBin * decoder) no_typefind: { post_missing_plugin_error (GST_ELEMENT_CAST (decoder), "typefind"); + GST_ELEMENT_ERROR (decoder, CORE, MISSING_PLUGIN, (NULL), + ("No typefind element, check your installation")); return FALSE; } could_not_link: