sys/v4l2/v4l2src_calls.c: Readd GST_ELEMENT_ERROR if we can't reenque buffers after...
authorStefan Kost <ensonic@users.sourceforge.net>
Mon, 19 Feb 2007 12:22:43 +0000 (12:22 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Mon, 19 Feb 2007 12:22:43 +0000 (12:22 +0000)
Original commit message from CVS:
* 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

ChangeLog
sys/v4l2/v4l2src_calls.c

index 65c1fe5ad2f5569b874424c0923b7b002cb911b3..ee7ba4b1ddfce204d973827dc18eb3b3d2e7481f 100644 (file)
--- 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:
index fd956aeb4dc2036bce3dca9c18431d369896f7ae..7eef5471cbdcc0afb60d6f32a141e5bb11ff4855 100644 (file)
@@ -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;
+  }
 }