V4L/DVB (9876): gspca - main: Allow subdrivers to handle v4l2_streamparm requests.
Add get_streamparm and set_streamparm operations so subdrivers can get/set stream parameters such as framerate. Signed-off-by: Jim Paris <jim@jtan.com> Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
c06eb61941
commit
627a5ef789
2 changed files with 26 additions and 0 deletions
|
@ -1327,6 +1327,17 @@ static int vidioc_g_parm(struct file *filp, void *priv,
|
|||
memset(parm, 0, sizeof *parm);
|
||||
parm->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
parm->parm.capture.readbuffers = gspca_dev->nbufread;
|
||||
|
||||
if (gspca_dev->sd_desc->get_streamparm) {
|
||||
int ret;
|
||||
|
||||
if (mutex_lock_interruptible(&gspca_dev->usb_lock))
|
||||
return -ERESTARTSYS;
|
||||
ret = gspca_dev->sd_desc->get_streamparm(gspca_dev, parm);
|
||||
mutex_unlock(&gspca_dev->usb_lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1341,6 +1352,17 @@ static int vidioc_s_parm(struct file *filp, void *priv,
|
|||
parm->parm.capture.readbuffers = gspca_dev->nbufread;
|
||||
else
|
||||
gspca_dev->nbufread = n;
|
||||
|
||||
if (gspca_dev->sd_desc->set_streamparm) {
|
||||
int ret;
|
||||
|
||||
if (mutex_lock_interruptible(&gspca_dev->usb_lock))
|
||||
return -ERESTARTSYS;
|
||||
ret = gspca_dev->sd_desc->set_streamparm(gspca_dev, parm);
|
||||
mutex_unlock(&gspca_dev->usb_lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -74,6 +74,8 @@ typedef void (*cam_v_op) (struct gspca_dev *);
|
|||
typedef int (*cam_cf_op) (struct gspca_dev *, const struct usb_device_id *);
|
||||
typedef int (*cam_jpg_op) (struct gspca_dev *,
|
||||
struct v4l2_jpegcompression *);
|
||||
typedef int (*cam_streamparm_op) (struct gspca_dev *,
|
||||
struct v4l2_streamparm *);
|
||||
typedef int (*cam_qmnu_op) (struct gspca_dev *,
|
||||
struct v4l2_querymenu *);
|
||||
typedef void (*cam_pkt_op) (struct gspca_dev *gspca_dev,
|
||||
|
@ -106,6 +108,8 @@ struct sd_desc {
|
|||
cam_jpg_op get_jcomp;
|
||||
cam_jpg_op set_jcomp;
|
||||
cam_qmnu_op querymenu;
|
||||
cam_streamparm_op get_streamparm;
|
||||
cam_streamparm_op set_streamparm;
|
||||
};
|
||||
|
||||
/* packet types when moving from iso buf to frame buf */
|
||||
|
|
Loading…
Add table
Reference in a new issue