Commit fba11fed authored by Hans de Goede's avatar Hans de Goede Committed by Mauro Carvalho Chehab

[media] gspca_zc3xx: Fix setting of jpeg quality while streaming

When the user changes the JPEG quality while the camera is streaming, the
driver should not only change the JPEG headers send to userspace, but also
actually tell the camera to use a different quantization table.
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 45432d41
...@@ -5923,6 +5923,8 @@ static void setquality(struct gspca_dev *gspca_dev) ...@@ -5923,6 +5923,8 @@ static void setquality(struct gspca_dev *gspca_dev)
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
s8 reg07; s8 reg07;
jpeg_set_qual(sd->jpeg_hdr, jpeg_qual[sd->reg08]);
reg07 = 0; reg07 = 0;
switch (sd->sensor) { switch (sd->sensor) {
case SENSOR_OV7620: case SENSOR_OV7620:
...@@ -6886,7 +6888,6 @@ static int sd_start(struct gspca_dev *gspca_dev) ...@@ -6886,7 +6888,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
break; break;
} }
setquality(gspca_dev); setquality(gspca_dev);
jpeg_set_qual(sd->jpeg_hdr, jpeg_qual[sd->reg08]);
setlightfreq(gspca_dev); setlightfreq(gspca_dev);
switch (sd->sensor) { switch (sd->sensor) {
...@@ -7042,7 +7043,7 @@ static int sd_setquality(struct gspca_dev *gspca_dev, __s32 val) ...@@ -7042,7 +7043,7 @@ static int sd_setquality(struct gspca_dev *gspca_dev, __s32 val)
sd->reg08 = i; sd->reg08 = i;
sd->ctrls[QUALITY].val = jpeg_qual[i]; sd->ctrls[QUALITY].val = jpeg_qual[i];
if (gspca_dev->streaming) if (gspca_dev->streaming)
jpeg_set_qual(sd->jpeg_hdr, sd->ctrls[QUALITY].val); setquality(gspca_dev);
return gspca_dev->usb_err; return gspca_dev->usb_err;
} }
......
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