V4L/DVB (10717): zoran: TRY_FMT and S_FMT now do the same parameter checks.
authorHans Verkuil <hverkuil@xs4all.nl>
Wed, 18 Feb 2009 21:34:55 +0000 (18:34 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 30 Mar 2009 15:42:57 +0000 (12:42 -0300)
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/zoran/zoran_driver.c

index a3a6f61187b04e5b84c0c4f4c0af518582a951f6..611fc7f18e16e0008f245025a946ab58a39fdf16 100644 (file)
@@ -2131,8 +2131,6 @@ static int zoran_try_fmt_vid_out(struct file *file, void *__fh,
        if (fmt->fmt.pix.pixelformat != V4L2_PIX_FMT_MJPEG)
                return -EINVAL;
 
-       fmt->fmt.pix.bytesperline = 0;
-
        mutex_lock(&zr->resource_lock);
        settings = fh->jpg_settings;
 
@@ -2157,6 +2155,14 @@ static int zoran_try_fmt_vid_out(struct file *file, void *__fh,
        else
                settings.field_per_buff = 1;
 
+       if (settings.HorDcm > 1) {
+               settings.img_x = (BUZ_MAX_WIDTH == 720) ? 8 : 0;
+               settings.img_width = (BUZ_MAX_WIDTH == 720) ? 704 : BUZ_MAX_WIDTH;
+       } else {
+               settings.img_x = 0;
+               settings.img_width = BUZ_MAX_WIDTH;
+       }
+
        /* check */
        res = zoran_check_jpg_settings(zr, &settings, 1);
        if (res)
@@ -2174,6 +2180,8 @@ static int zoran_try_fmt_vid_out(struct file *file, void *__fh,
                                V4L2_FIELD_TOP : V4L2_FIELD_BOTTOM);
 
        fmt->fmt.pix.sizeimage = zoran_v4l2_calc_bufsize(&settings);
+       fmt->fmt.pix.bytesperline = 0;
+       fmt->fmt.pix.colorspace = V4L2_COLORSPACE_SMPTE170M;
 tryfmt_unlock_and_return:
        mutex_unlock(&zr->resource_lock);
        return res;