uvch264: Prevent temporary elements from going to playing

This commit is contained in:
Olivier Crête 2013-01-16 14:48:46 -05:00
parent c9fbf274f4
commit e82e434730

View file

@ -2189,7 +2189,7 @@ _transform_caps (GstUvcH264Src * self, GstCaps * caps, const gchar * name)
GstPad *sink; GstPad *sink;
GstCaps *out_caps = NULL; GstCaps *out_caps = NULL;
if (!el || !cf || !fs || !gst_bin_add (GST_BIN (self), el)) { if (!el || !cf || !fs) {
if (el) if (el)
gst_object_unref (el); gst_object_unref (el);
if (cf) if (cf)
@ -2198,6 +2198,17 @@ _transform_caps (GstUvcH264Src * self, GstCaps * caps, const gchar * name)
gst_object_unref (fs); gst_object_unref (fs);
goto done; goto done;
} }
gst_element_set_locked_state (el, TRUE);
gst_element_set_locked_state (cf, TRUE);
gst_element_set_locked_state (fs, TRUE);
if (!gst_bin_add (GST_BIN (self), el)) {
gst_object_unref (el);
gst_object_unref (cf);
gst_object_unref (fs);
goto done;
}
if (!gst_bin_add (GST_BIN (self), cf)) { if (!gst_bin_add (GST_BIN (self), cf)) {
gst_object_unref (cf); gst_object_unref (cf);
gst_object_unref (fs); gst_object_unref (fs);