aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca
diff options
context:
space:
mode:
authorJean-François Moine <moinejf@free.fr>2011-08-10 07:32:57 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-09-11 09:27:41 -0300
commitb796fb6ed032b0ccdb769b3b3bce5fb2b186a8f8 (patch)
tree55add7d2625d411797d72de40d2fab9601e787f6 /drivers/media/video/gspca
parent480992b357d153b8417ba242fc43e96d90cff94c (diff)
downloadkernel_samsung_smdk4412-b796fb6ed032b0ccdb769b3b3bce5fb2b186a8f8.zip
kernel_samsung_smdk4412-b796fb6ed032b0ccdb769b3b3bce5fb2b186a8f8.tar.gz
kernel_samsung_smdk4412-b796fb6ed032b0ccdb769b3b3bce5fb2b186a8f8.tar.bz2
[media] gspca - main: Better values for V4L2_FMT_FLAG_COMPRESSED
In vidioc_enum_fmt_vid_cap, the 'compressed' flag was set from the pixelformat, and all pixelformats were not treated. Now, images are told as compressed when the image size is smaller than its number of pixels. Signed-off-by: Jean-François Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/gspca')
-rw-r--r--drivers/media/video/gspca/gspca.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index 85d2469..3ff26ba 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -499,19 +499,6 @@ void gspca_frame_add(struct gspca_dev *gspca_dev,
}
EXPORT_SYMBOL(gspca_frame_add);
-static int gspca_is_compressed(__u32 format)
-{
- switch (format) {
- case V4L2_PIX_FMT_MJPEG:
- case V4L2_PIX_FMT_JPEG:
- case V4L2_PIX_FMT_SPCA561:
- case V4L2_PIX_FMT_PAC207:
- case V4L2_PIX_FMT_MR97310A:
- return 1;
- }
- return 0;
-}
-
static int frame_alloc(struct gspca_dev *gspca_dev, struct file *file,
enum v4l2_memory memory, unsigned int count)
{
@@ -1049,7 +1036,9 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
return -EINVAL; /* no more format */
fmtdesc->pixelformat = fmt_tb[index];
- if (gspca_is_compressed(fmt_tb[index]))
+ if (gspca_dev->cam.cam_mode[i].sizeimage <
+ gspca_dev->cam.cam_mode[i].width *
+ gspca_dev->cam.cam_mode[i].height)
fmtdesc->flags = V4L2_FMT_FLAG_COMPRESSED;
fmtdesc->description[0] = fmtdesc->pixelformat & 0xff;
fmtdesc->description[1] = (fmtdesc->pixelformat >> 8) & 0xff;