Commit b796fb6e authored by Jean-François Moine's avatar Jean-François Moine Committed by Mauro Carvalho Chehab

[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: default avatarJean-François Moine <moinejf@free.fr>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 480992b3
...@@ -499,19 +499,6 @@ void gspca_frame_add(struct gspca_dev *gspca_dev, ...@@ -499,19 +499,6 @@ void gspca_frame_add(struct gspca_dev *gspca_dev,
} }
EXPORT_SYMBOL(gspca_frame_add); 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, static int frame_alloc(struct gspca_dev *gspca_dev, struct file *file,
enum v4l2_memory memory, unsigned int count) enum v4l2_memory memory, unsigned int count)
{ {
...@@ -1049,7 +1036,9 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, ...@@ -1049,7 +1036,9 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
return -EINVAL; /* no more format */ return -EINVAL; /* no more format */
fmtdesc->pixelformat = fmt_tb[index]; 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->flags = V4L2_FMT_FLAG_COMPRESSED;
fmtdesc->description[0] = fmtdesc->pixelformat & 0xff; fmtdesc->description[0] = fmtdesc->pixelformat & 0xff;
fmtdesc->description[1] = (fmtdesc->pixelformat >> 8) & 0xff; fmtdesc->description[1] = (fmtdesc->pixelformat >> 8) & 0xff;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment