The v4l2 driver can silently change the pixel format in the
authorJens Rosenboom <jens.rosenboom@eu.panasonic.com>
Tue, 21 Oct 2008 07:59:41 +0000 (07:59 +0000)
committerLuca Abeni <lucabe72@email.it>
Tue, 21 Oct 2008 07:59:41 +0000 (07:59 +0000)
VIDIOC_S_FMT ioctl(). In this case, device_init() should fail so that
a different pixel format is tried.
Patch by Jens Rosenboom (jens DOT rosenboom AT eu DOT panasonic DOT com)

Originally committed as revision 15660 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavdevice/v4l2.c

index 699a982ac2b0b5d31b9f4080bc91e2a765cb2376..d8d58f06bd81499285ef5f5dbbe6dfa7d32ac204 100644 (file)
@@ -193,6 +193,11 @@ static int device_init(AVFormatContext *ctx, int *width, int *height, int pix_fm
         *height = fmt.fmt.pix.height;
     }
 
+    if (pix_fmt != fmt.fmt.pix.pixelformat) {
+        av_log(ctx, AV_LOG_DEBUG, "The V4L2 driver changed the pixel format from 0x%08X to 0x%08X\n", pix_fmt, fmt.fmt.pix.pixelformat);
+        res = -1;
+    }
+
     return res;
 }