0001 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
0002 .. c:namespace:: V4L
0003
0004 .. _VIDIOC_DV_TIMINGS_CAP:
0005
0006 *********************************************************
0007 ioctl VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP
0008 *********************************************************
0009
0010 Name
0011 ====
0012
0013 VIDIOC_DV_TIMINGS_CAP - VIDIOC_SUBDEV_DV_TIMINGS_CAP - The capabilities of the Digital Video receiver/transmitter
0014
0015 Synopsis
0016 ========
0017
0018 .. c:macro:: VIDIOC_DV_TIMINGS_CAP
0019
0020 ``int ioctl(int fd, VIDIOC_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp)``
0021
0022 .. c:macro:: VIDIOC_SUBDEV_DV_TIMINGS_CAP
0023
0024 ``int ioctl(int fd, VIDIOC_SUBDEV_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp)``
0025
0026 Arguments
0027 =========
0028
0029 ``fd``
0030 File descriptor returned by :c:func:`open()`.
0031
0032 ``argp``
0033 Pointer to struct :c:type:`v4l2_dv_timings_cap`.
0034
0035 Description
0036 ===========
0037
0038 To query the capabilities of the DV receiver/transmitter applications
0039 initialize the ``pad`` field to 0, zero the reserved array of struct
0040 :c:type:`v4l2_dv_timings_cap` and call the
0041 ``VIDIOC_DV_TIMINGS_CAP`` ioctl on a video node and the driver will fill
0042 in the structure.
0043
0044 .. note::
0045
0046 Drivers may return different values after
0047 switching the video input or output.
0048
0049 When implemented by the driver DV capabilities of subdevices can be
0050 queried by calling the ``VIDIOC_SUBDEV_DV_TIMINGS_CAP`` ioctl directly
0051 on a subdevice node. The capabilities are specific to inputs (for DV
0052 receivers) or outputs (for DV transmitters), applications must specify
0053 the desired pad number in the struct
0054 :c:type:`v4l2_dv_timings_cap` ``pad`` field and
0055 zero the ``reserved`` array. Attempts to query capabilities on a pad
0056 that doesn't support them will return an ``EINVAL`` error code.
0057
0058 .. tabularcolumns:: |p{1.2cm}|p{3.2cm}|p{12.9cm}|
0059
0060 .. c:type:: v4l2_bt_timings_cap
0061
0062 .. flat-table:: struct v4l2_bt_timings_cap
0063 :header-rows: 0
0064 :stub-columns: 0
0065 :widths: 1 1 2
0066
0067 * - __u32
0068 - ``min_width``
0069 - Minimum width of the active video in pixels.
0070 * - __u32
0071 - ``max_width``
0072 - Maximum width of the active video in pixels.
0073 * - __u32
0074 - ``min_height``
0075 - Minimum height of the active video in lines.
0076 * - __u32
0077 - ``max_height``
0078 - Maximum height of the active video in lines.
0079 * - __u64
0080 - ``min_pixelclock``
0081 - Minimum pixelclock frequency in Hz.
0082 * - __u64
0083 - ``max_pixelclock``
0084 - Maximum pixelclock frequency in Hz.
0085 * - __u32
0086 - ``standards``
0087 - The video standard(s) supported by the hardware. See
0088 :ref:`dv-bt-standards` for a list of standards.
0089 * - __u32
0090 - ``capabilities``
0091 - Several flags giving more information about the capabilities. See
0092 :ref:`dv-bt-cap-capabilities` for a description of the flags.
0093 * - __u32
0094 - ``reserved``\ [16]
0095 - Reserved for future extensions.
0096 Drivers must set the array to zero.
0097
0098
0099 .. tabularcolumns:: |p{4.4cm}|p{3.6cm}|p{9.3cm}|
0100
0101 .. c:type:: v4l2_dv_timings_cap
0102
0103 .. flat-table:: struct v4l2_dv_timings_cap
0104 :header-rows: 0
0105 :stub-columns: 0
0106 :widths: 1 1 2
0107
0108 * - __u32
0109 - ``type``
0110 - Type of DV timings as listed in :ref:`dv-timing-types`.
0111 * - __u32
0112 - ``pad``
0113 - Pad number as reported by the media controller API. This field is
0114 only used when operating on a subdevice node. When operating on a
0115 video node applications must set this field to zero.
0116 * - __u32
0117 - ``reserved``\ [2]
0118 - Reserved for future extensions.
0119
0120 Drivers and applications must set the array to zero.
0121 * - union {
0122 - (anonymous)
0123 * - struct :c:type:`v4l2_bt_timings_cap`
0124 - ``bt``
0125 - BT.656/1120 timings capabilities of the hardware.
0126 * - __u32
0127 - ``raw_data``\ [32]
0128 * - }
0129 -
0130
0131 .. tabularcolumns:: |p{7.2cm}|p{10.3cm}|
0132
0133 .. _dv-bt-cap-capabilities:
0134
0135 .. flat-table:: DV BT Timing capabilities
0136 :header-rows: 0
0137 :stub-columns: 0
0138
0139 * - Flag
0140 - Description
0141 * -
0142 -
0143 * - ``V4L2_DV_BT_CAP_INTERLACED``
0144 - Interlaced formats are supported.
0145 * - ``V4L2_DV_BT_CAP_PROGRESSIVE``
0146 - Progressive formats are supported.
0147 * - ``V4L2_DV_BT_CAP_REDUCED_BLANKING``
0148 - CVT/GTF specific: the timings can make use of reduced blanking
0149 (CVT) or the 'Secondary GTF' curve (GTF).
0150 * - ``V4L2_DV_BT_CAP_CUSTOM``
0151 - Can support non-standard timings, i.e. timings not belonging to
0152 the standards set in the ``standards`` field.
0153
0154 Return Value
0155 ============
0156
0157 On success 0 is returned, on error -1 and the ``errno`` variable is set
0158 appropriately. The generic error codes are described at the
0159 :ref:`Generic Error Codes <gen-errors>` chapter.