summaryrefslogtreecommitdiff
path: root/gst-libs/gst/basecamerabinsrc
diff options
context:
space:
mode:
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>2011-09-20 13:00:49 -0300
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>2011-09-20 13:02:17 -0300
commit43ec4f46b8b4ebdc5aae2aef0667db5c188621d0 (patch)
tree0aeeb3924d8a1e6a7c88235d4b7a7e598759e7f2 /gst-libs/gst/basecamerabinsrc
parent7d5bd1992ecfab4d511199b8b70ff13169cf2a5f (diff)
downloadgstreamer-plugins-bad-43ec4f46b8b4ebdc5aae2aef0667db5c188621d0.tar.gz
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
Diffstat (limited to 'gst-libs/gst/basecamerabinsrc')
-rw-r--r--gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c6
-rw-r--r--gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c b/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c
index 56bdc6cf6..d5b8ed772 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 5dd82dad1..be42c98dc 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;