Merge branch 'thorsten' into docs-next
[sfrench/cifs-2.6.git] / Documentation / media / uapi / v4l / vidioc-dv-timings-cap.rst
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
10 .. _VIDIOC_DV_TIMINGS_CAP:
11
12 *********************************************************
13 ioctl VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP
14 *********************************************************
15
16 Name
17 ====
18
19 VIDIOC_DV_TIMINGS_CAP - VIDIOC_SUBDEV_DV_TIMINGS_CAP - The capabilities of the Digital Video receiver/transmitter
20
21
22 Synopsis
23 ========
24
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
30
31
32 Arguments
33 =========
34
35 ``fd``
36     File descriptor returned by :ref:`open() <func-open>`.
37
38 ``argp``
39     Pointer to struct :c:type:`v4l2_dv_timings_cap`.
40
41
42 Description
43 ===========
44
45 To query the capabilities of the DV receiver/transmitter applications
46 initialize the ``pad`` field to 0, zero the reserved array of struct
47 :c:type:`v4l2_dv_timings_cap` and call the
48 ``VIDIOC_DV_TIMINGS_CAP`` ioctl on a video node and the driver will fill
49 in the structure.
50
51 .. note::
52
53    Drivers may return different values after
54    switching the video input or output.
55
56 When implemented by the driver DV capabilities of subdevices can be
57 queried by calling the ``VIDIOC_SUBDEV_DV_TIMINGS_CAP`` ioctl directly
58 on a subdevice node. The capabilities are specific to inputs (for DV
59 receivers) or outputs (for DV transmitters), applications must specify
60 the desired pad number in the struct
61 :c:type:`v4l2_dv_timings_cap` ``pad`` field and
62 zero the ``reserved`` array. Attempts to query capabilities on a pad
63 that doesn't support them will return an ``EINVAL`` error code.
64
65
66 .. tabularcolumns:: |p{1.2cm}|p{3.0cm}|p{13.3cm}|
67
68 .. c:type:: v4l2_bt_timings_cap
69
70 .. flat-table:: struct v4l2_bt_timings_cap
71     :header-rows:  0
72     :stub-columns: 0
73     :widths:       1 1 2
74
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.
105
106
107
108 .. tabularcolumns:: |p{1.0cm}|p{4.0cm}|p{3.5cm}|p{9.2cm}|
109
110 .. c:type:: v4l2_dv_timings_cap
111
112 .. flat-table:: struct v4l2_dv_timings_cap
113     :header-rows:  0
114     :stub-columns: 0
115     :widths:       1 1 2 1
116
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.
130     * - union
131       -
132       -
133     * -
134       - struct :c:type:`v4l2_bt_timings_cap`
135       - ``bt``
136       - BT.656/1120 timings capabilities of the hardware.
137     * -
138       - __u32
139       - ``raw_data``\ [32]
140       -
141
142 .. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
143
144 .. _dv-bt-cap-capabilities:
145
146 .. flat-table:: DV BT Timing capabilities
147     :header-rows:  0
148     :stub-columns: 0
149
150     * - Flag
151       - Description
152     * -
153       -
154     * - ``V4L2_DV_BT_CAP_INTERLACED``
155       - Interlaced formats are supported.
156     * - ``V4L2_DV_BT_CAP_PROGRESSIVE``
157       - Progressive formats are supported.
158     * - ``V4L2_DV_BT_CAP_REDUCED_BLANKING``
159       - CVT/GTF specific: the timings can make use of reduced blanking
160         (CVT) or the 'Secondary GTF' curve (GTF).
161     * - ``V4L2_DV_BT_CAP_CUSTOM``
162       - Can support non-standard timings, i.e. timings not belonging to
163         the standards set in the ``standards`` field.
164
165
166 Return Value
167 ============
168
169 On success 0 is returned, on error -1 and the ``errno`` variable is set
170 appropriately. The generic error codes are described at the
171 :ref:`Generic Error Codes <gen-errors>` chapter.