Capture won't work with "I420" or "YV12" (12 bit depth) (planar)
I want to suggest for developers review following patch, which fixes that issue with (for example) saa7134 driver. Similar problem was described in [https://trac.videolan.org/vlc/ticket/8862 #8862 (closed)] Quick workaround without patch is, as was suggested, use :v4l2-chroma=YUYV patch: in file ~/vlc-2.1.2/modules/access/v4l2/demux.c
diff -up demux.c.orig demux.c
--- demux.c.orig 2013-06-25 02:00:38.000000000 +0800
+++ demux.c 2014-01-12 03:41:21.490717476 +0800
@@ -395,7 +395,15 @@ static int InitVideo (demux_t *demux, in
es_fmt.video.i_bmask = selected->blue;
es_fmt.video.i_visible_width = fmt.fmt.pix.width;
if (fmt.fmt.pix.bytesperline != 0 && selected->bpp != 0)
- es_fmt.video.i_width = fmt.fmt.pix.bytesperline / selected->bpp;
+ {
+ if (strncmp((char *)&selected->vlc, "I420", 4) == 0 || strncmp((char *)&selected->vlc, "YV12", 4) == 0)
+ {
+ msg_Dbg (demux, "Setting up es_fmt.video.i_width equals to fmt.fmt.pix.width.");
+ es_fmt.video.i_width = fmt.fmt.pix.width;
+ }
+ else
+ es_fmt.video.i_width = fmt.fmt.pix.bytesperline / selected->bpp;
+ }
else
es_fmt.video.i_width = fmt.fmt.pix.width;
es_fmt.video.i_height = fmt.fmt.pix.height;