decodebin2: First post a missing-plugin message, then emit the unkown-type signal
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 15 Feb 2010 07:26:05 +0000 (08:26 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 15 Feb 2010 07:26:05 +0000 (08:26 +0100)
This makes sure that there *always* is a missing plugin message in the bus
before any errors or warning messages.

gst/playback/gstdecodebin2.c

index a518d6d..d05c698 100644 (file)
@@ -1367,9 +1367,7 @@ expose_pad:
   }
 unknown_type:
   {
-    GST_LOG_OBJECT (pad, "Unknown type, firing signal");
-    g_signal_emit (G_OBJECT (dbin),
-        gst_decode_bin_signals[SIGNAL_UNKNOWN_TYPE], 0, pad, caps);
+    GST_LOG_OBJECT (pad, "Unknown type, posting message and firing signal");
 
     chain->deadend = TRUE;
     chain->endcaps = gst_caps_ref (caps);
@@ -1377,6 +1375,9 @@ unknown_type:
     gst_element_post_message (GST_ELEMENT_CAST (dbin),
         gst_missing_decoder_message_new (GST_ELEMENT_CAST (dbin), caps));
 
+    g_signal_emit (G_OBJECT (dbin),
+        gst_decode_bin_signals[SIGNAL_UNKNOWN_TYPE], 0, pad, caps);
+
     /* Try to expose anything */
     EXPOSE_LOCK (dbin);
     if (gst_decode_chain_is_complete (dbin->decode_chain)) {