[media] gspca_vc032x: Fix wrong bytesperline
authorLuca Bonissi <lucabon@scarsita.it>
Mon, 26 Jan 2015 10:38:17 +0000 (07:38 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Thu, 29 Jan 2015 20:28:46 +0000 (18:28 -0200)
I found a problem on vc032x gspca usb webcam subdriver: "bytesperline"
property is wrong for YUYV and YVYU formats.
With recent v4l-utils library (>=0.9.1), that uses "bytesperline" for
pixel format conversion, the result is a wrong jerky image.

Patch tested on my laptop (USB webcam Logitech Orbicam 046d:0892).

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=91181
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/usb/gspca/vc032x.c

index c00ac57de5106e605c41fcc4590b73c083557fef..b4efb2fb36fa3b875e96e5a668d2f349289e8bad 100644 (file)
@@ -68,12 +68,12 @@ enum sensors {
 
 static const struct v4l2_pix_format vc0321_mode[] = {
        {320, 240, V4L2_PIX_FMT_YVYU, V4L2_FIELD_NONE,
-               .bytesperline = 320,
+               .bytesperline = 320 * 2,
                .sizeimage = 320 * 240 * 2,
                .colorspace = V4L2_COLORSPACE_SRGB,
                .priv = 1},
        {640, 480, V4L2_PIX_FMT_YVYU, V4L2_FIELD_NONE,
-               .bytesperline = 640,
+               .bytesperline = 640 * 2,
                .sizeimage = 640 * 480 * 2,
                .colorspace = V4L2_COLORSPACE_SRGB,
                .priv = 0},
@@ -97,17 +97,17 @@ static const struct v4l2_pix_format vc0323_mode[] = {
 };
 static const struct v4l2_pix_format bi_mode[] = {
        {320, 240, V4L2_PIX_FMT_YUYV, V4L2_FIELD_NONE,
-               .bytesperline = 320,
+               .bytesperline = 320 * 2,
                .sizeimage = 320 * 240 * 2,
                .colorspace = V4L2_COLORSPACE_SRGB,
                .priv = 2},
        {640, 480, V4L2_PIX_FMT_YUYV, V4L2_FIELD_NONE,
-               .bytesperline = 640,
+               .bytesperline = 640 * 2,
                .sizeimage = 640 * 480 * 2,
                .colorspace = V4L2_COLORSPACE_SRGB,
                .priv = 1},
        {1280, 1024, V4L2_PIX_FMT_YUYV, V4L2_FIELD_NONE,
-               .bytesperline = 1280,
+               .bytesperline = 1280 * 2,
                .sizeimage = 1280 * 1024 * 2,
                .colorspace = V4L2_COLORSPACE_SRGB,
                .priv = 0},