From baa03a951b40fa7c34cf1b28b6e54af7e6299d06 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 12 Jul 2011 18:29:35 +0100 Subject: [PATCH] v4l: handle object out of the normal flow --- sys/v4l2/gstv4l2object.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c index 345e9d9..ee8ad9c 100644 --- a/sys/v4l2/gstv4l2object.c +++ b/sys/v4l2/gstv4l2object.c @@ -2189,24 +2189,36 @@ gboolean gst_v4l2_object_start_streaming (GstV4l2Object * v4l2object) { if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_STREAMON, - &(v4l2object->type)) < 0) { + &(v4l2object->type)) < 0) + goto start_failed; + + return TRUE; + + /* ERRORS */ +start_failed: + { GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, OPEN_READ, (_("Error starting streaming on device '%s'."), v4l2object->videodev), GST_ERROR_SYSTEM); return FALSE; } - return TRUE; } gboolean gst_v4l2_object_stop_streaming (GstV4l2Object * v4l2object) { if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_STREAMOFF, - &(v4l2object->type)) < 0) { + &(v4l2object->type)) < 0) + goto stop_failed; + + return FALSE; + + /* ERRORS */ +stop_failed: + { GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, OPEN_READ, (_("Error stopping streaming on device '%s'."), v4l2object->videodev), GST_ERROR_SYSTEM); return FALSE; } - return TRUE; } -- 2.7.4