The video standards discussed so far have been dealing with Analog TV and the corresponding video timings. Today there are many more different hardware interfaces such as High Definition TV interfaces (HDMI), VGA, DVI connectors etc., that carry video signals and there is a need to extend the API to select the video timings for these interfaces. Since it is not possible to extend the v4l2_std_id due to the limited bits available, a new set of IOCTLs was added to set/get video timings at the input and output:
DV Timings: This will allow applications to define detailed
video timings for the interface. This includes parameters such as width, height,
polarities, frontporch, backporch etc. The linux/v4l2-dv-timings.h
header can be used to get the timings of the formats in the [CEA-861-E] and
[VESA DMT] standards.
DV Presets: Digital Video (DV) presets (deprecated). These are IDs representing a video timing at the input/output. Presets are pre-defined timings implemented by the hardware according to video standards. A __u32 data type is used to represent a preset unlike the bit mask that is used in v4l2_std_id allowing future extensions to support as many different presets as needed. This API is deprecated in favor of the DV Timings API.
To enumerate and query the attributes of the DV timings supported by a device,
applications use the VIDIOC_ENUM_DV_TIMINGS
and VIDIOC_DV_TIMINGS_CAP
ioctls.
To set DV timings for the device, applications use the
VIDIOC_S_DV_TIMINGS
ioctl and to get current DV timings they use the
VIDIOC_G_DV_TIMINGS
ioctl. To detect the DV timings as seen by the video receiver applications
use the VIDIOC_QUERY_DV_TIMINGS
ioctl.
To enumerate and query the attributes of DV presets supported by a device,
applications use the VIDIOC_ENUM_DV_PRESETS
ioctl. To get the current DV preset,
applications use the VIDIOC_G_DV_PRESET
ioctl and to set a preset they use the
VIDIOC_S_DV_PRESET
ioctl. To detect the preset as seen by the video receiver applications
use the VIDIOC_QUERY_DV_PRESET
ioctl.
Applications can make use of the Table A.39, “Input capabilities” and Table A.42, “Output capabilities” flags to decide what ioctls are available to set the video timings for the device.