media: Documentation/media/uapi: more readable unions
[linux-block.git] / Documentation / media / uapi / v4l / vidioc-dv-timings-cap.rst
CommitLineData
82559ac0
MCC
1.. Permission is granted to copy, distribute and/or modify this
2.. document under the terms of the GNU Free Documentation License,
3.. Version 1.1 or any later version published by the Free Software
4.. Foundation, with no Invariant Sections, no Front-Cover Texts
5.. and no Back-Cover Texts. A copy of the license is included at
6.. Documentation/media/uapi/fdl-appendix.rst.
7..
8.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
9
af4a4d0d 10.. _VIDIOC_DV_TIMINGS_CAP:
5377d91f
MH
11
12*********************************************************
13ioctl VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP
14*********************************************************
15
15e7d615 16Name
586027ce 17====
5377d91f 18
586027ce 19VIDIOC_DV_TIMINGS_CAP - VIDIOC_SUBDEV_DV_TIMINGS_CAP - The capabilities of the Digital Video receiver/transmitter
5377d91f 20
15e7d615
MCC
21
22Synopsis
5377d91f
MH
23========
24
41d80465
MCC
25.. c:function:: int ioctl( int fd, VIDIOC_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp )
26 :name: VIDIOC_DV_TIMINGS_CAP
27
28.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp )
29 :name: VIDIOC_SUBDEV_DV_TIMINGS_CAP
5377d91f 30
586027ce 31
15e7d615 32Arguments
5377d91f
MH
33=========
34
35``fd``
36 File descriptor returned by :ref:`open() <func-open>`.
37
5377d91f 38``argp``
1473c75e 39 Pointer to struct :c:type:`v4l2_dv_timings_cap`.
5377d91f
MH
40
41
15e7d615 42Description
5377d91f
MH
43===========
44
45To query the capabilities of the DV receiver/transmitter applications
46initialize the ``pad`` field to 0, zero the reserved array of struct
e8be7e97 47:c:type:`v4l2_dv_timings_cap` and call the
5377d91f 48``VIDIOC_DV_TIMINGS_CAP`` ioctl on a video node and the driver will fill
706f8a99
MCC
49in the structure.
50
b6b6e678
MCC
51.. note::
52
53 Drivers may return different values after
706f8a99 54 switching the video input or output.
5377d91f
MH
55
56When implemented by the driver DV capabilities of subdevices can be
57queried by calling the ``VIDIOC_SUBDEV_DV_TIMINGS_CAP`` ioctl directly
58on a subdevice node. The capabilities are specific to inputs (for DV
59receivers) or outputs (for DV transmitters), applications must specify
60the desired pad number in the struct
e8be7e97 61:c:type:`v4l2_dv_timings_cap` ``pad`` field and
5377d91f 62zero the ``reserved`` array. Attempts to query capabilities on a pad
cdb4af0f 63that doesn't support them will return an ``EINVAL`` error code.
5377d91f
MH
64
65
64f6838a 66.. tabularcolumns:: |p{1.2cm}|p{3.0cm}|p{13.3cm}|
5bd4bb78 67
e8be7e97 68.. c:type:: v4l2_bt_timings_cap
fa92b04d 69
5377d91f
MH
70.. flat-table:: struct v4l2_bt_timings_cap
71 :header-rows: 0
72 :stub-columns: 0
73 :widths: 1 1 2
74
c2b66caf
LP
75 * - __u32
76 - ``min_width``
77 - Minimum width of the active video in pixels.
78 * - __u32
79 - ``max_width``
80 - Maximum width of the active video in pixels.
81 * - __u32
82 - ``min_height``
83 - Minimum height of the active video in lines.
84 * - __u32
85 - ``max_height``
86 - Maximum height of the active video in lines.
87 * - __u64
88 - ``min_pixelclock``
89 - Minimum pixelclock frequency in Hz.
90 * - __u64
91 - ``max_pixelclock``
92 - Maximum pixelclock frequency in Hz.
93 * - __u32
94 - ``standards``
95 - The video standard(s) supported by the hardware. See
96 :ref:`dv-bt-standards` for a list of standards.
97 * - __u32
98 - ``capabilities``
99 - Several flags giving more information about the capabilities. See
100 :ref:`dv-bt-cap-capabilities` for a description of the flags.
101 * - __u32
102 - ``reserved``\ [16]
103 - Reserved for future extensions.
104 Drivers must set the array to zero.
5377d91f
MH
105
106
107
70b074df 108.. tabularcolumns:: |p{1.0cm}|p{4.0cm}|p{3.5cm}|p{9.2cm}|
5bd4bb78 109
e8be7e97 110.. c:type:: v4l2_dv_timings_cap
fa92b04d 111
5377d91f
MH
112.. flat-table:: struct v4l2_dv_timings_cap
113 :header-rows: 0
114 :stub-columns: 0
218fc9f2 115 :widths: 1 1 2
5377d91f 116
c2b66caf
LP
117 * - __u32
118 - ``type``
119 - Type of DV timings as listed in :ref:`dv-timing-types`.
120 * - __u32
121 - ``pad``
122 - Pad number as reported by the media controller API. This field is
123 only used when operating on a subdevice node. When operating on a
124 video node applications must set this field to zero.
125 * - __u32
126 - ``reserved``\ [2]
127 - Reserved for future extensions.
128
129 Drivers and applications must set the array to zero.
218fc9f2
HV
130 * - union {
131 - (anonymous)
132 * - struct :c:type:`v4l2_bt_timings_cap`
c2b66caf
LP
133 - ``bt``
134 - BT.656/1120 timings capabilities of the hardware.
218fc9f2 135 * - __u32
c2b66caf 136 - ``raw_data``\ [32]
218fc9f2 137 * - }
c2b66caf 138 -
5377d91f 139
64f6838a 140.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
5377d91f 141
5377d91f
MH
142.. _dv-bt-cap-capabilities:
143
144.. flat-table:: DV BT Timing capabilities
145 :header-rows: 0
146 :stub-columns: 0
147
c2b66caf
LP
148 * - Flag
149 - Description
150 * -
151 -
152 * - ``V4L2_DV_BT_CAP_INTERLACED``
153 - Interlaced formats are supported.
154 * - ``V4L2_DV_BT_CAP_PROGRESSIVE``
155 - Progressive formats are supported.
156 * - ``V4L2_DV_BT_CAP_REDUCED_BLANKING``
157 - CVT/GTF specific: the timings can make use of reduced blanking
158 (CVT) or the 'Secondary GTF' curve (GTF).
159 * - ``V4L2_DV_BT_CAP_CUSTOM``
160 - Can support non-standard timings, i.e. timings not belonging to
161 the standards set in the ``standards`` field.
5377d91f
MH
162
163
15e7d615 164Return Value
5377d91f
MH
165============
166
167On success 0 is returned, on error -1 and the ``errno`` variable is set
168appropriately. The generic error codes are described at the
169:ref:`Generic Error Codes <gen-errors>` chapter.