From e8f5b3a579aa31ccbcb33a8920004fe8d9bbdeca Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Wed, 16 Mar 2011 10:19:42 +0000 Subject: [PATCH] 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 --- gst/playback/gsturidecodebin.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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: -- 2.7.4