[media] em28xx: VIDIOC_ENUM_FRAMESIZES: consider the scaler limits when calculating...
authorFrank Schaefer <fschaefer.oss@googlemail.com>
Sun, 10 Feb 2013 19:05:14 +0000 (16:05 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 4 Mar 2013 17:43:23 +0000 (14:43 -0300)
Output resolutions <=20% of the input resolution exceed the capabilities of the
scaler.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/usb/em28xx/em28xx-video.c

index f745617..86fd907 100644 (file)
@@ -1405,8 +1405,12 @@ static int vidioc_enum_framesizes(struct file *file, void *priv,
 
        /* Report a continuous range */
        fsize->type = V4L2_FRMSIZE_TYPE_STEPWISE;
-       fsize->stepwise.min_width = 48;
-       fsize->stepwise.min_height = 32;
+       scale_to_size(dev, EM28XX_HVSCALE_MAX, EM28XX_HVSCALE_MAX,
+                     &fsize->stepwise.min_width, &fsize->stepwise.min_height);
+       if (fsize->stepwise.min_width < 48)
+               fsize->stepwise.min_width = 48;
+       if (fsize->stepwise.min_height < 38)
+               fsize->stepwise.min_height = 38;
        fsize->stepwise.max_width = maxw;
        fsize->stepwise.max_height = maxh;
        fsize->stepwise.step_width = 1;