From aa359d3808e3cf935dabcee15e248261539ecd61 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Tue, 15 Jan 2013 12:01:06 +0100 Subject: [PATCH] lavd/v4l2: return meaningful error code from device_init() In particular, propagate errno value in case of device init failure. --- libavdevice/v4l2.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index 87c041a407..60ab924445 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) {