From 43ec4f46b8b4ebdc5aae2aef0667db5c188621d0 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Tue, 20 Sep 2011 13:00:49 -0300 Subject: [PATCH] basecamerasrc: Fail state change if preview pipeline fails creation If the preview pipeline fails creation, for any reason, we should fail basecamerasrc state change. Also adds a missing g_return_if_fail check to preview pipeline functions --- gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c | 6 +++++- gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c b/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c index 56bdc6cf68..d5b8ed7728 100644 --- a/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c +++ b/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c @@ -445,7 +445,11 @@ gst_base_camera_src_change_state (GstElement * element, gst_camerabin_create_preview_pipeline (GST_ELEMENT_CAST (self), self->preview_filter); - g_assert (self->preview_pipeline != NULL); + if (self->preview_pipeline == NULL) { + /* failed to create preview pipeline, fail state change */ + return GST_STATE_CHANGE_FAILURE; + } + self->preview_filter_changed = FALSE; if (self->preview_caps) { GST_DEBUG_OBJECT (self, diff --git a/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c b/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c index 5dd82dad16..be42c98dc1 100644 --- a/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c +++ b/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c @@ -231,6 +231,8 @@ void gst_camerabin_destroy_preview_pipeline (GstCameraBinPreviewPipelineData * preview) { + g_return_if_fail (preview != NULL); + if (preview->processing_lock) { g_mutex_free (preview->processing_lock); preview->processing_lock = NULL;