diff options
author | Thiago Santos <thiago.sousa.santos@collabora.co.uk> | 2011-09-20 13:00:49 -0300 |
---|---|---|
committer | Thiago Santos <thiago.sousa.santos@collabora.co.uk> | 2011-09-20 13:02:17 -0300 |
commit | 43ec4f46b8b4ebdc5aae2aef0667db5c188621d0 (patch) | |
tree | 0aeeb3924d8a1e6a7c88235d4b7a7e598759e7f2 /gst-libs/gst/basecamerabinsrc | |
parent | 7d5bd1992ecfab4d511199b8b70ff13169cf2a5f (diff) | |
download | gstreamer-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.c | 6 | ||||
-rw-r--r-- | gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c | 2 |
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; |