summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 34565d8)
raw | patch | inline | side by side (parent: 34565d8)
author | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | |
Mon, 18 Jun 2012 14:18:35 +0000 (14:18 +0000) | ||
committer | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | |
Tue, 26 Jun 2012 13:10:38 +0000 (13:10 +0000) |
This should allow playbin2 to try other codecs, if available.
src/gstducatividdec.c | patch | blob | history |
diff --git a/src/gstducatividdec.c b/src/gstducatividdec.c
index d63eb924cb1a72bb17c0272df25efefe338e076e..a82e4110f061872277ad24c8b1664026a58b36c6 100644 (file)
--- a/src/gstducatividdec.c
+++ b/src/gstducatividdec.c
@@ -1151,6 +1151,7 @@ gst_ducati_viddec_change_state (GstElement * element, GstStateChange transition)
{
GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
GstDucatiVidDec *self = GST_DUCATIVIDDEC (element);
+ gboolean supported;
GST_DEBUG_OBJECT (self, "begin: changing state %s -> %s",
gst_element_state_get_name (GST_STATE_TRANSITION_CURRENT (transition)),
@@ -1162,6 +1163,16 @@ gst_ducati_viddec_change_state (GstElement * element, GstStateChange transition)
GST_ERROR_OBJECT (self, "could not open");
return GST_STATE_CHANGE_FAILURE;
}
+ /* try to create/destroy the codec here, it may not be supported */
+ supported = codec_create (self);
+ codec_delete (self);
+ self->codec = NULL;
+ if (!supported) {
+ GST_ERROR_OBJECT (element, "Failed to create codec %s, not supported",
+ GST_DUCATIVIDDEC_GET_CLASS (self)->codec_name);
+ engine_close (self);
+ return GST_STATE_CHANGE_FAILURE;
+ }
break;
default:
break;