WIP FPC-III support
[linux/fpc-iii.git] / Documentation / userspace-api / media / v4l / vidioc-dv-timings-cap.rst
blob27bd6a83e42c302e482b7f6290b11e6acfb42fdf
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2 .. c:namespace:: V4L
4 .. _VIDIOC_DV_TIMINGS_CAP:
6 *********************************************************
7 ioctl VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP
8 *********************************************************
10 Name
11 ====
13 VIDIOC_DV_TIMINGS_CAP - VIDIOC_SUBDEV_DV_TIMINGS_CAP - The capabilities of the Digital Video receiver/transmitter
15 Synopsis
16 ========
18 .. c:macro:: VIDIOC_DV_TIMINGS_CAP
20 ``int ioctl(int fd, VIDIOC_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp)``
22 .. c:macro:: VIDIOC_SUBDEV_DV_TIMINGS_CAP
24 ``int ioctl(int fd, VIDIOC_SUBDEV_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp)``
26 Arguments
27 =========
29 ``fd``
30     File descriptor returned by :c:func:`open()`.
32 ``argp``
33     Pointer to struct :c:type:`v4l2_dv_timings_cap`.
35 Description
36 ===========
38 To query the capabilities of the DV receiver/transmitter applications
39 initialize the ``pad`` field to 0, zero the reserved array of struct
40 :c:type:`v4l2_dv_timings_cap` and call the
41 ``VIDIOC_DV_TIMINGS_CAP`` ioctl on a video node and the driver will fill
42 in the structure.
44 .. note::
46    Drivers may return different values after
47    switching the video input or output.
49 When implemented by the driver DV capabilities of subdevices can be
50 queried by calling the ``VIDIOC_SUBDEV_DV_TIMINGS_CAP`` ioctl directly
51 on a subdevice node. The capabilities are specific to inputs (for DV
52 receivers) or outputs (for DV transmitters), applications must specify
53 the desired pad number in the struct
54 :c:type:`v4l2_dv_timings_cap` ``pad`` field and
55 zero the ``reserved`` array. Attempts to query capabilities on a pad
56 that doesn't support them will return an ``EINVAL`` error code.
58 .. tabularcolumns:: |p{1.2cm}|p{3.0cm}|p{13.3cm}|
60 .. c:type:: v4l2_bt_timings_cap
62 .. flat-table:: struct v4l2_bt_timings_cap
63     :header-rows:  0
64     :stub-columns: 0
65     :widths:       1 1 2
67     * - __u32
68       - ``min_width``
69       - Minimum width of the active video in pixels.
70     * - __u32
71       - ``max_width``
72       - Maximum width of the active video in pixels.
73     * - __u32
74       - ``min_height``
75       - Minimum height of the active video in lines.
76     * - __u32
77       - ``max_height``
78       - Maximum height of the active video in lines.
79     * - __u64
80       - ``min_pixelclock``
81       - Minimum pixelclock frequency in Hz.
82     * - __u64
83       - ``max_pixelclock``
84       - Maximum pixelclock frequency in Hz.
85     * - __u32
86       - ``standards``
87       - The video standard(s) supported by the hardware. See
88         :ref:`dv-bt-standards` for a list of standards.
89     * - __u32
90       - ``capabilities``
91       - Several flags giving more information about the capabilities. See
92         :ref:`dv-bt-cap-capabilities` for a description of the flags.
93     * - __u32
94       - ``reserved``\ [16]
95       - Reserved for future extensions.
96         Drivers must set the array to zero.
99 .. tabularcolumns:: |p{1.0cm}|p{4.0cm}|p{3.5cm}|p{9.2cm}|
101 .. c:type:: v4l2_dv_timings_cap
103 .. flat-table:: struct v4l2_dv_timings_cap
104     :header-rows:  0
105     :stub-columns: 0
106     :widths:       1 1 2
108     * - __u32
109       - ``type``
110       - Type of DV timings as listed in :ref:`dv-timing-types`.
111     * - __u32
112       - ``pad``
113       - Pad number as reported by the media controller API. This field is
114         only used when operating on a subdevice node. When operating on a
115         video node applications must set this field to zero.
116     * - __u32
117       - ``reserved``\ [2]
118       - Reserved for future extensions.
120         Drivers and applications must set the array to zero.
121     * - union {
122       - (anonymous)
123     * - struct :c:type:`v4l2_bt_timings_cap`
124       - ``bt``
125       - BT.656/1120 timings capabilities of the hardware.
126     * - __u32
127       - ``raw_data``\ [32]
128     * - }
129       -
131 .. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
133 .. _dv-bt-cap-capabilities:
135 .. flat-table:: DV BT Timing capabilities
136     :header-rows:  0
137     :stub-columns: 0
139     * - Flag
140       - Description
141     * -
142       -
143     * - ``V4L2_DV_BT_CAP_INTERLACED``
144       - Interlaced formats are supported.
145     * - ``V4L2_DV_BT_CAP_PROGRESSIVE``
146       - Progressive formats are supported.
147     * - ``V4L2_DV_BT_CAP_REDUCED_BLANKING``
148       - CVT/GTF specific: the timings can make use of reduced blanking
149         (CVT) or the 'Secondary GTF' curve (GTF).
150     * - ``V4L2_DV_BT_CAP_CUSTOM``
151       - Can support non-standard timings, i.e. timings not belonging to
152         the standards set in the ``standards`` field.
154 Return Value
155 ============
157 On success 0 is returned, on error -1 and the ``errno`` variable is set
158 appropriately. The generic error codes are described at the
159 :ref:`Generic Error Codes <gen-errors>` chapter.