forked from Minki/linux
[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: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
45432d41a2
commit
fba11fed8a
@ -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)
|
|||||||
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)
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user