^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) .. c:namespace:: V4L
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) .. _VIDIOC_G_DV_TIMINGS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) **********************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) ioctl VIDIOC_G_DV_TIMINGS, VIDIOC_S_DV_TIMINGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) **********************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) ====
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) VIDIOC_G_DV_TIMINGS - VIDIOC_S_DV_TIMINGS - VIDIOC_SUBDEV_G_DV_TIMINGS - VIDIOC_SUBDEV_S_DV_TIMINGS - Get or set DV timings for input or output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) Synopsis
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) ========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) .. c:macro:: VIDIOC_G_DV_TIMINGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) ``int ioctl(int fd, VIDIOC_G_DV_TIMINGS, struct v4l2_dv_timings *argp)``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) .. c:macro:: VIDIOC_S_DV_TIMINGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) ``int ioctl(int fd, VIDIOC_S_DV_TIMINGS, struct v4l2_dv_timings *argp)``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) .. c:macro:: VIDIOC_SUBDEV_G_DV_TIMINGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) ``int ioctl(int fd, VIDIOC_SUBDEV_G_DV_TIMINGS, struct v4l2_dv_timings *argp)``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) .. c:macro:: VIDIOC_SUBDEV_S_DV_TIMINGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) ``int ioctl(int fd, VIDIOC_SUBDEV_S_DV_TIMINGS, struct v4l2_dv_timings *argp)``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) Arguments
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) ``fd``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) File descriptor returned by :c:func:`open()`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) ``argp``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) Pointer to struct :c:type:`v4l2_dv_timings`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) ===========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) To set DV timings for the input or output, applications use the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) :ref:`VIDIOC_S_DV_TIMINGS <VIDIOC_G_DV_TIMINGS>` ioctl and to get the current timings,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) applications use the :ref:`VIDIOC_G_DV_TIMINGS <VIDIOC_G_DV_TIMINGS>` ioctl. The detailed timing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) information is filled in using the structure struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) :c:type:`v4l2_dv_timings`. These ioctls take a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) pointer to the struct :c:type:`v4l2_dv_timings`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) structure as argument. If the ioctl is not supported or the timing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) values are not correct, the driver returns ``EINVAL`` error code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) Calling ``VIDIOC_SUBDEV_S_DV_TIMINGS`` on a subdev device node that has been
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) registered in read-only mode is not allowed. An error is returned and the errno
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) variable is set to ``-EPERM``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) The ``linux/v4l2-dv-timings.h`` header can be used to get the timings of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) the formats in the :ref:`cea861` and :ref:`vesadmt` standards. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) the current input or output does not support DV timings (e.g. if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) :ref:`VIDIOC_ENUMINPUT` does not set the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) ``V4L2_IN_CAP_DV_TIMINGS`` flag), then ``ENODATA`` error code is returned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) Return Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) On success 0 is returned, on error -1 and the ``errno`` variable is set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) appropriately. The generic error codes are described at the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) :ref:`Generic Error Codes <gen-errors>` chapter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) EINVAL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) This ioctl is not supported, or the :ref:`VIDIOC_S_DV_TIMINGS <VIDIOC_G_DV_TIMINGS>`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) parameter was unsuitable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) ENODATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) Digital video timings are not supported for this input or output.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) EBUSY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) The device is busy and therefore can not change the timings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) EPERM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) ``VIDIOC_SUBDEV_S_DV_TIMINGS`` has been called on a read-only subdevice.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) .. c:type:: v4l2_bt_timings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) .. flat-table:: struct v4l2_bt_timings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) :header-rows: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) :widths: 1 1 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) - ``width``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) - Width of the active video in pixels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) - ``height``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) - Height of the active video frame in lines. So for interlaced
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) formats the height of the active video in each field is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) ``height``/2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) - ``interlaced``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) - Progressive (``V4L2_DV_PROGRESSIVE``) or interlaced (``V4L2_DV_INTERLACED``).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) - ``polarities``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) - This is a bit mask that defines polarities of sync signals. bit 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) (``V4L2_DV_VSYNC_POS_POL``) is for vertical sync polarity and bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 1 (``V4L2_DV_HSYNC_POS_POL``) is for horizontal sync polarity. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) the bit is set (1) it is positive polarity and if is cleared (0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) it is negative polarity.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) * - __u64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) - ``pixelclock``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) - Pixel clock in Hz. Ex. 74.25MHz->74250000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) - ``hfrontporch``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) - Horizontal front porch in pixels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) - ``hsync``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) - Horizontal sync length in pixels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) - ``hbackporch``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) - Horizontal back porch in pixels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) - ``vfrontporch``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) - Vertical front porch in lines. For interlaced formats this refers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) to the odd field (aka field 1).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) - ``vsync``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) - Vertical sync length in lines. For interlaced formats this refers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) to the odd field (aka field 1).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) - ``vbackporch``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) - Vertical back porch in lines. For interlaced formats this refers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) to the odd field (aka field 1).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) - ``il_vfrontporch``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) - Vertical front porch in lines for the even field (aka field 2) of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) interlaced field formats. Must be 0 for progressive formats.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) - ``il_vsync``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) - Vertical sync length in lines for the even field (aka field 2) of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) interlaced field formats. Must be 0 for progressive formats.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) - ``il_vbackporch``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) - Vertical back porch in lines for the even field (aka field 2) of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) interlaced field formats. Must be 0 for progressive formats.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) - ``standards``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) - The video standard(s) this format belongs to. This will be filled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) in by the driver. Applications must set this to 0. See
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) :ref:`dv-bt-standards` for a list of standards.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) - ``flags``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) - Several flags giving more information about the format. See
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) :ref:`dv-bt-flags` for a description of the flags.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) * - struct :c:type:`v4l2_fract`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) - ``picture_aspect``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) - The picture aspect if the pixels are not square. Only valid if the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) ``V4L2_DV_FL_HAS_PICTURE_ASPECT`` flag is set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) * - __u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) - ``cea861_vic``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) - The Video Identification Code according to the CEA-861 standard.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) Only valid if the ``V4L2_DV_FL_HAS_CEA861_VIC`` flag is set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) * - __u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) - ``hdmi_vic``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) - The Video Identification Code according to the HDMI standard.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) Only valid if the ``V4L2_DV_FL_HAS_HDMI_VIC`` flag is set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) * - __u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) - ``reserved[46]``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) - Reserved for future extensions. Drivers and applications must set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) the array to zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) .. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{7.0cm}|p{3.5cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) .. c:type:: v4l2_dv_timings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) .. flat-table:: struct v4l2_dv_timings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) :header-rows: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) :widths: 1 1 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) - ``type``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) - Type of DV timings as listed in :ref:`dv-timing-types`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) * - union {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) - (anonymous)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) * - struct :c:type:`v4l2_bt_timings`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) - ``bt``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) - Timings defined by BT.656/1120 specifications
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) - ``reserved``\ [32]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) * - }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) .. _dv-timing-types:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) .. flat-table:: DV Timing types
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) :header-rows: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) :widths: 1 1 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) * - Timing type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) - value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) * - ``V4L2_DV_BT_656_1120``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) - 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) - BT.656/1120 timings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) .. tabularcolumns:: |p{4.5cm}|p{12.8cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) .. _dv-bt-standards:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) .. flat-table:: DV BT Timing standards
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) :header-rows: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) * - Timing standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) * - ``V4L2_DV_BT_STD_CEA861``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) - The timings follow the CEA-861 Digital TV Profile standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) * - ``V4L2_DV_BT_STD_DMT``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) - The timings follow the VESA Discrete Monitor Timings standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) * - ``V4L2_DV_BT_STD_CVT``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) - The timings follow the VESA Coordinated Video Timings standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) * - ``V4L2_DV_BT_STD_GTF``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) - The timings follow the VESA Generalized Timings Formula standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) * - ``V4L2_DV_BT_STD_SDI``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) - The timings follow the SDI Timings standard.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) There are no horizontal syncs/porches at all in this format.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) Total blanking timings must be set in hsync or vsync fields only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) .. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) .. _dv-bt-flags:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) .. flat-table:: DV BT Timing flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) :header-rows: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) * - Flag
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) * - ``V4L2_DV_FL_REDUCED_BLANKING``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) - CVT/GTF specific: the timings use reduced blanking (CVT) or the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 'Secondary GTF' curve (GTF). In both cases the horizontal and/or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) vertical blanking intervals are reduced, allowing a higher
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) resolution over the same bandwidth. This is a read-only flag,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) applications must not set this.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) * - ``V4L2_DV_FL_CAN_REDUCE_FPS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) - CEA-861 specific: set for CEA-861 formats with a framerate that is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) a multiple of six. These formats can be optionally played at 1 /
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 1.001 speed to be compatible with 60 Hz based standards such as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) NTSC and PAL-M that use a framerate of 29.97 frames per second. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) the transmitter can't generate such frequencies, then the flag
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) will also be cleared. This is a read-only flag, applications must
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) not set this.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) * - ``V4L2_DV_FL_REDUCED_FPS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) - CEA-861 specific: only valid for video transmitters or video
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) receivers that have the ``V4L2_DV_FL_CAN_DETECT_REDUCED_FPS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) set. This flag is cleared otherwise. It is also only valid for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) formats with the ``V4L2_DV_FL_CAN_REDUCE_FPS`` flag set, for other
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) formats the flag will be cleared by the driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) If the application sets this flag for a transmitter, then the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) pixelclock used to set up the transmitter is divided by 1.001 to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) make it compatible with NTSC framerates. If the transmitter can't
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) generate such frequencies, then the flag will be cleared.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) If a video receiver detects that the format uses a reduced framerate,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) then it will set this flag to signal this to the application.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) * - ``V4L2_DV_FL_HALF_LINE``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) - Specific to interlaced formats: if set, then the vertical
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) frontporch of field 1 (aka the odd field) is really one half-line
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) longer and the vertical backporch of field 2 (aka the even field)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) is really one half-line shorter, so each field has exactly the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) same number of half-lines. Whether half-lines can be detected or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) used depends on the hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) * - ``V4L2_DV_FL_IS_CE_VIDEO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) - If set, then this is a Consumer Electronics (CE) video format.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) Such formats differ from other formats (commonly called IT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) formats) in that if R'G'B' encoding is used then by default the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) R'G'B' values use limited range (i.e. 16-235) as opposed to full
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) range (i.e. 0-255). All formats defined in CEA-861 except for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) 640x480p59.94 format are CE formats.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) * - ``V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) - Some formats like SMPTE-125M have an interlaced signal with a odd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) total height. For these formats, if this flag is set, the first
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) field has the extra line. Else, it is the second field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) * - ``V4L2_DV_FL_HAS_PICTURE_ASPECT``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) - If set, then the picture_aspect field is valid. Otherwise assume that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) the pixels are square, so the picture aspect ratio is the same as the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) width to height ratio.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) * - ``V4L2_DV_FL_HAS_CEA861_VIC``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) - If set, then the cea861_vic field is valid and contains the Video
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) Identification Code as per the CEA-861 standard.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) * - ``V4L2_DV_FL_HAS_HDMI_VIC``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) - If set, then the hdmi_vic field is valid and contains the Video
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) Identification Code as per the HDMI standard (HDMI Vendor Specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) InfoFrame).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) * - ``V4L2_DV_FL_CAN_DETECT_REDUCED_FPS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) - CEA-861 specific: only valid for video receivers, the flag is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) cleared by transmitters.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) If set, then the hardware can detect the difference between
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) regular framerates and framerates reduced by 1000/1001. E.g.:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) 60 vs 59.94 Hz, 30 vs 29.97 Hz or 24 vs 23.976 Hz.