[0.11] gst-plugins-bad: basecamerasrc: Fail state change if preview pipeline fails creation
Wim Taymans
wtay at kemper.freedesktop.org
Mon Sep 26 13:32:36 PDT 2011
Module: gst-plugins-bad
Branch: 0.11
Commit: 43ec4f46b8b4ebdc5aae2aef0667db5c188621d0
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=43ec4f46b8b4ebdc5aae2aef0667db5c188621d0
Author: Thiago Santos <thiago.sousa.santos at collabora.co.uk>
Date: Tue Sep 20 13:00:49 2011 -0300
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/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 56bdc6c..d5b8ed7 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 5dd82da..be42c98 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;
More information about the gstreamer-commits
mailing list