summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2010-02-15 08:26:05 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2010-02-15 08:26:05 +0100
commitcdf53e5e8612d5f2acdaf04ded80497cde894164 (patch)
treec9014ef4b296b318bfe48db9d2e97967cc9bea1b
parent9677ca5037afafe30210da4fb2c31b4588357059 (diff)
decodebin2: First post a missing-plugin message, then emit the unkown-type signal
This makes sure that there *always* is a missing plugin message in the bus before any errors or warning messages.
-rw-r--r--gst/playback/gstdecodebin2.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
index a518d6d9..d05c698d 100644
--- a/gst/playback/gstdecodebin2.c
+++ b/gst/playback/gstdecodebin2.c
@@ -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)) {