summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--sys/v4l2/v4l2src_calls.c13
2 files changed, 18 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 65c1fe5a..ee7ba4b1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-02-19 Stefan Kost <ensonic@users.sf.net>
+
+ * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
+ (gst_v4l2src_grab_frame), (gst_v4l2src_set_capture),
+ (gst_v4l2src_capture_init):
+ Readd GST_ELEMENT_ERROR if we can't reenque buffers after EIO,
+ fixes #407369
+
2007-02-18 Wim Taymans <wim@fluendo.com>
* gst/rtp/Makefile.am:
diff --git a/sys/v4l2/v4l2src_calls.c b/sys/v4l2/v4l2src_calls.c
index fd956aeb..7eef5471 100644
--- a/sys/v4l2/v4l2src_calls.c
+++ b/sys/v4l2/v4l2src_calls.c
@@ -194,9 +194,7 @@ gst_v4l2src_grab_frame (GstV4l2Src * v4l2src)
*/
GST_DEBUG_OBJECT (v4l2src, "reenqueing buffer");
if (ioctl (v4l2src->v4l2object->video_fd, VIDIOC_QBUF, &buffer) < 0) {
- GST_WARNING_OBJECT (v4l2src,
- "Error queueing buffer on device %s. system error: %s",
- v4l2src->v4l2object->videodev, g_strerror (errno));
+ goto qbuf_failed;
}
/*} */
}
@@ -255,6 +253,15 @@ too_many_trials:
NUM_TRIALS, v4l2src->v4l2object->videodev, g_strerror (errno)));
return -1;
}
+qbuf_failed:
+ {
+ GST_ELEMENT_ERROR (v4l2src, RESOURCE, WRITE,
+ (_("Could not exchange data with device '%s'."),
+ v4l2src->v4l2object->videodev),
+ ("Error queueing buffer on device %s. system error: %s",
+ v4l2src->v4l2object->videodev, g_strerror (errno)));
+ return -1;
+ }
}