Back to home page

OSCL-LXR

 
 

    


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.