basecamerabinsrc: Check if set preview caps are the same

Checks if the new received preview-caps are equal to what is
already in use, skips the preview-caps setting logic in case
new caps are same as current ones.
This commit is contained in:
Lauri Lehtinen 2011-03-22 08:32:48 -03:00 committed by Thiago Santos
parent 19429aa797
commit 2da37d966d

View file

@ -343,11 +343,16 @@ gst_base_camera_src_set_property (GObject * object,
case PROP_POST_PREVIEW: case PROP_POST_PREVIEW:
self->post_preview = g_value_get_boolean (value); self->post_preview = g_value_get_boolean (value);
break; break;
case PROP_PREVIEW_CAPS: case PROP_PREVIEW_CAPS:{
gst_caps_replace (&self->preview_caps, GstCaps *new_caps = NULL;
(GstCaps *) gst_value_get_caps (value)); new_caps = (GstCaps *) gst_value_get_caps (value);
gst_base_camera_src_setup_preview (self, if (!gst_caps_is_equal (self->preview_caps, new_caps)) {
(GstCaps *) gst_value_get_caps (value)); gst_caps_replace (&self->preview_caps, new_caps);
gst_base_camera_src_setup_preview (self, new_caps);
} else {
GST_DEBUG_OBJECT (self, "New preview caps equal current preview caps");
}
}
break; break;
case PROP_PREVIEW_FILTER: case PROP_PREVIEW_FILTER:
if (self->preview_filter) if (self->preview_filter)