V4L/DVB (13571): v4l: Adding Digital Video Timings APIs
This adds the above APIs to the v4l2 core. This is based on version v1.2 of the RFC titled "V4L - Support for video timings at the input/output interface" Following new ioctls are added:- - VIDIOC_ENUM_DV_PRESETS - VIDIOC_S_DV_PRESET - VIDIOC_G_DV_PRESET - VIDIOC_QUERY_DV_PRESET - VIDIOC_S_DV_TIMINGS - VIDIOC_G_DV_TIMINGS Please refer to the RFC for the details. This code was tested using vpfe capture driver on TI's DM365. Following is the test configuration used :- Blu-Ray HD DVD source -> TVP7002 -> DM365 (VPFE) ->DDR A draft version of the TVP7002 driver (currently being reviewed in the mailing list) was used that supports V4L2_DV_1080I60 & V4L2_DV_720P60 presets. A loopback video capture application was used for testing these APIs. This calls following IOCTLS :- - verify the new v4l2_input capabilities flag added - Enumerate available presets using VIDIOC_ENUM_DV_PRESETS - Set one of the supported preset using VIDIOC_S_DV_PRESET - Get current preset using VIDIOC_G_DV_PRESET - Detect current preset using VIDIOC_QUERY_DV_PRESET - Using stub functions in tvp7002, verify VIDIOC_S_DV_TIMINGS and VIDIOC_G_DV_TIMINGS ioctls are received at the sub device. - Tested on 64bit platform by Hans Verkuil Signed-off-by: Muralidharan Karicheri <m-karicheri2@ti.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Reviewed-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:

committed by
Mauro Carvalho Chehab

parent
20d15a200d
commit
b6456c0cfe
@@ -217,6 +217,19 @@ struct v4l2_subdev_audio_ops {
|
||||
|
||||
s_routing: see s_routing in audio_ops, except this version is for video
|
||||
devices.
|
||||
|
||||
s_dv_preset: set dv (Digital Video) preset in the sub device. Similar to
|
||||
s_std()
|
||||
|
||||
query_dv_preset: query dv preset in the sub device. This is similar to
|
||||
querystd()
|
||||
|
||||
s_dv_timings(): Set custom dv timings in the sub device. This is used
|
||||
when sub device is capable of setting detailed timing information
|
||||
in the hardware to generate/detect the video signal.
|
||||
|
||||
g_dv_timings(): Get custom dv timings in the sub device.
|
||||
|
||||
*/
|
||||
struct v4l2_subdev_video_ops {
|
||||
int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config);
|
||||
@@ -240,6 +253,14 @@ struct v4l2_subdev_video_ops {
|
||||
int (*s_parm)(struct v4l2_subdev *sd, struct v4l2_streamparm *param);
|
||||
int (*enum_framesizes)(struct v4l2_subdev *sd, struct v4l2_frmsizeenum *fsize);
|
||||
int (*enum_frameintervals)(struct v4l2_subdev *sd, struct v4l2_frmivalenum *fival);
|
||||
int (*s_dv_preset)(struct v4l2_subdev *sd,
|
||||
struct v4l2_dv_preset *preset);
|
||||
int (*query_dv_preset)(struct v4l2_subdev *sd,
|
||||
struct v4l2_dv_preset *preset);
|
||||
int (*s_dv_timings)(struct v4l2_subdev *sd,
|
||||
struct v4l2_dv_timings *timings);
|
||||
int (*g_dv_timings)(struct v4l2_subdev *sd,
|
||||
struct v4l2_dv_timings *timings);
|
||||
};
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user