[FFmpeg-cvslog] lavd/v4l2: return meaningful error code from device_init()

Stefano Sabatini git at videolan.org
Tue Jan 15 21:59:54 CET 2013


ffmpeg | branch: master | Stefano Sabatini <stefasab at gmail.com> | Tue Jan 15 12:01:06 2013 +0100| [aa359d3808e3cf935dabcee15e248261539ecd61] | committer: Stefano Sabatini

lavd/v4l2: return meaningful error code from device_init()

In particular, propagate errno value in case of device init failure.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=aa359d3808e3cf935dabcee15e248261539ecd61
---

 libavdevice/v4l2.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 87c041a..60ab924 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -228,7 +228,8 @@ static int device_init(AVFormatContext *ctx, int *width, int *height,
     pix->pixelformat = pix_fmt;
     pix->field = V4L2_FIELD_ANY;
 
-    res = v4l2_ioctl(fd, VIDIOC_S_FMT, &fmt);
+    if (v4l2_ioctl(fd, VIDIOC_S_FMT, &fmt) < 0)
+        res = AVERROR(errno);
 
     if ((*width != fmt.fmt.pix.width) || (*height != fmt.fmt.pix.height)) {
         av_log(ctx, AV_LOG_INFO,
@@ -243,7 +244,7 @@ static int device_init(AVFormatContext *ctx, int *width, int *height,
                "The V4L2 driver changed the pixel format "
                "from 0x%08X to 0x%08X\n",
                pix_fmt, fmt.fmt.pix.pixelformat);
-        res = -1;
+        res = AVERROR(EINVAL);
     }
 
     if (fmt.fmt.pix.field == V4L2_FIELD_INTERLACED) {



More information about the ffmpeg-cvslog mailing list