xref: /linux/Documentation/userspace-api/media/v4l/vidioc-dv-timings-cap.rst (revision ec8a42e7343234802b9054874fe01810880289ce)
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2.. c:namespace:: V4L
3
4.. _VIDIOC_DV_TIMINGS_CAP:
5
6*********************************************************
7ioctl VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP
8*********************************************************
9
10Name
11====
12
13VIDIOC_DV_TIMINGS_CAP - VIDIOC_SUBDEV_DV_TIMINGS_CAP - The capabilities of the Digital Video receiver/transmitter
14
15Synopsis
16========
17
18.. c:macro:: VIDIOC_DV_TIMINGS_CAP
19
20``int ioctl(int fd, VIDIOC_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp)``
21
22.. c:macro:: VIDIOC_SUBDEV_DV_TIMINGS_CAP
23
24``int ioctl(int fd, VIDIOC_SUBDEV_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp)``
25
26Arguments
27=========
28
29``fd``
30    File descriptor returned by :c:func:`open()`.
31
32``argp``
33    Pointer to struct :c:type:`v4l2_dv_timings_cap`.
34
35Description
36===========
37
38To query the capabilities of the DV receiver/transmitter applications
39initialize 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
42in the structure.
43
44.. note::
45
46   Drivers may return different values after
47   switching the video input or output.
48
49When implemented by the driver DV capabilities of subdevices can be
50queried by calling the ``VIDIOC_SUBDEV_DV_TIMINGS_CAP`` ioctl directly
51on a subdevice node. The capabilities are specific to inputs (for DV
52receivers) or outputs (for DV transmitters), applications must specify
53the desired pad number in the struct
54:c:type:`v4l2_dv_timings_cap` ``pad`` field and
55zero the ``reserved`` array. Attempts to query capabilities on a pad
56that doesn't support them will return an ``EINVAL`` error code.
57
58.. tabularcolumns:: |p{1.2cm}|p{3.0cm}|p{13.3cm}|
59
60.. c:type:: v4l2_bt_timings_cap
61
62.. flat-table:: struct v4l2_bt_timings_cap
63    :header-rows:  0
64    :stub-columns: 0
65    :widths:       1 1 2
66
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.
97
98
99.. tabularcolumns:: |p{1.0cm}|p{4.0cm}|p{3.5cm}|p{9.2cm}|
100
101.. c:type:: v4l2_dv_timings_cap
102
103.. flat-table:: struct v4l2_dv_timings_cap
104    :header-rows:  0
105    :stub-columns: 0
106    :widths:       1 1 2
107
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.
119
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      -
130
131.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
132
133.. _dv-bt-cap-capabilities:
134
135.. flat-table:: DV BT Timing capabilities
136    :header-rows:  0
137    :stub-columns: 0
138
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.
153
154Return Value
155============
156
157On success 0 is returned, on error -1 and the ``errno`` variable is set
158appropriately. The generic error codes are described at the
159:ref:`Generic Error Codes <gen-errors>` chapter.
160