18c2ecf20Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 28c2ecf20Sopenharmony_ci.. c:namespace:: V4L 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci.. _VIDIOC_G_DV_TIMINGS: 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci********************************************** 78c2ecf20Sopenharmony_ciioctl VIDIOC_G_DV_TIMINGS, VIDIOC_S_DV_TIMINGS 88c2ecf20Sopenharmony_ci********************************************** 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciName 118c2ecf20Sopenharmony_ci==== 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciVIDIOC_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 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciSynopsis 168c2ecf20Sopenharmony_ci======== 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci.. c:macro:: VIDIOC_G_DV_TIMINGS 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci``int ioctl(int fd, VIDIOC_G_DV_TIMINGS, struct v4l2_dv_timings *argp)`` 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci.. c:macro:: VIDIOC_S_DV_TIMINGS 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci``int ioctl(int fd, VIDIOC_S_DV_TIMINGS, struct v4l2_dv_timings *argp)`` 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci.. c:macro:: VIDIOC_SUBDEV_G_DV_TIMINGS 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci``int ioctl(int fd, VIDIOC_SUBDEV_G_DV_TIMINGS, struct v4l2_dv_timings *argp)`` 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci.. c:macro:: VIDIOC_SUBDEV_S_DV_TIMINGS 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci``int ioctl(int fd, VIDIOC_SUBDEV_S_DV_TIMINGS, struct v4l2_dv_timings *argp)`` 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ciArguments 358c2ecf20Sopenharmony_ci========= 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci``fd`` 388c2ecf20Sopenharmony_ci File descriptor returned by :c:func:`open()`. 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci``argp`` 418c2ecf20Sopenharmony_ci Pointer to struct :c:type:`v4l2_dv_timings`. 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ciDescription 448c2ecf20Sopenharmony_ci=========== 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ciTo set DV timings for the input or output, applications use the 478c2ecf20Sopenharmony_ci:ref:`VIDIOC_S_DV_TIMINGS <VIDIOC_G_DV_TIMINGS>` ioctl and to get the current timings, 488c2ecf20Sopenharmony_ciapplications use the :ref:`VIDIOC_G_DV_TIMINGS <VIDIOC_G_DV_TIMINGS>` ioctl. The detailed timing 498c2ecf20Sopenharmony_ciinformation is filled in using the structure struct 508c2ecf20Sopenharmony_ci:c:type:`v4l2_dv_timings`. These ioctls take a 518c2ecf20Sopenharmony_cipointer to the struct :c:type:`v4l2_dv_timings` 528c2ecf20Sopenharmony_cistructure as argument. If the ioctl is not supported or the timing 538c2ecf20Sopenharmony_civalues are not correct, the driver returns ``EINVAL`` error code. 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ciCalling ``VIDIOC_SUBDEV_S_DV_TIMINGS`` on a subdev device node that has been 568c2ecf20Sopenharmony_ciregistered in read-only mode is not allowed. An error is returned and the errno 578c2ecf20Sopenharmony_civariable is set to ``-EPERM``. 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ciThe ``linux/v4l2-dv-timings.h`` header can be used to get the timings of 608c2ecf20Sopenharmony_cithe formats in the :ref:`cea861` and :ref:`vesadmt` standards. If 618c2ecf20Sopenharmony_cithe current input or output does not support DV timings (e.g. if 628c2ecf20Sopenharmony_ci:ref:`VIDIOC_ENUMINPUT` does not set the 638c2ecf20Sopenharmony_ci``V4L2_IN_CAP_DV_TIMINGS`` flag), then ``ENODATA`` error code is returned. 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ciReturn Value 668c2ecf20Sopenharmony_ci============ 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ciOn success 0 is returned, on error -1 and the ``errno`` variable is set 698c2ecf20Sopenharmony_ciappropriately. The generic error codes are described at the 708c2ecf20Sopenharmony_ci:ref:`Generic Error Codes <gen-errors>` chapter. 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ciEINVAL 738c2ecf20Sopenharmony_ci This ioctl is not supported, or the :ref:`VIDIOC_S_DV_TIMINGS <VIDIOC_G_DV_TIMINGS>` 748c2ecf20Sopenharmony_ci parameter was unsuitable. 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciENODATA 778c2ecf20Sopenharmony_ci Digital video timings are not supported for this input or output. 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ciEBUSY 808c2ecf20Sopenharmony_ci The device is busy and therefore can not change the timings. 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ciEPERM 838c2ecf20Sopenharmony_ci ``VIDIOC_SUBDEV_S_DV_TIMINGS`` has been called on a read-only subdevice. 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci.. c:type:: v4l2_bt_timings 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci.. flat-table:: struct v4l2_bt_timings 908c2ecf20Sopenharmony_ci :header-rows: 0 918c2ecf20Sopenharmony_ci :stub-columns: 0 928c2ecf20Sopenharmony_ci :widths: 1 1 2 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci * - __u32 958c2ecf20Sopenharmony_ci - ``width`` 968c2ecf20Sopenharmony_ci - Width of the active video in pixels. 978c2ecf20Sopenharmony_ci * - __u32 988c2ecf20Sopenharmony_ci - ``height`` 998c2ecf20Sopenharmony_ci - Height of the active video frame in lines. So for interlaced 1008c2ecf20Sopenharmony_ci formats the height of the active video in each field is 1018c2ecf20Sopenharmony_ci ``height``/2. 1028c2ecf20Sopenharmony_ci * - __u32 1038c2ecf20Sopenharmony_ci - ``interlaced`` 1048c2ecf20Sopenharmony_ci - Progressive (``V4L2_DV_PROGRESSIVE``) or interlaced (``V4L2_DV_INTERLACED``). 1058c2ecf20Sopenharmony_ci * - __u32 1068c2ecf20Sopenharmony_ci - ``polarities`` 1078c2ecf20Sopenharmony_ci - This is a bit mask that defines polarities of sync signals. bit 0 1088c2ecf20Sopenharmony_ci (``V4L2_DV_VSYNC_POS_POL``) is for vertical sync polarity and bit 1098c2ecf20Sopenharmony_ci 1 (``V4L2_DV_HSYNC_POS_POL``) is for horizontal sync polarity. If 1108c2ecf20Sopenharmony_ci the bit is set (1) it is positive polarity and if is cleared (0), 1118c2ecf20Sopenharmony_ci it is negative polarity. 1128c2ecf20Sopenharmony_ci * - __u64 1138c2ecf20Sopenharmony_ci - ``pixelclock`` 1148c2ecf20Sopenharmony_ci - Pixel clock in Hz. Ex. 74.25MHz->74250000 1158c2ecf20Sopenharmony_ci * - __u32 1168c2ecf20Sopenharmony_ci - ``hfrontporch`` 1178c2ecf20Sopenharmony_ci - Horizontal front porch in pixels 1188c2ecf20Sopenharmony_ci * - __u32 1198c2ecf20Sopenharmony_ci - ``hsync`` 1208c2ecf20Sopenharmony_ci - Horizontal sync length in pixels 1218c2ecf20Sopenharmony_ci * - __u32 1228c2ecf20Sopenharmony_ci - ``hbackporch`` 1238c2ecf20Sopenharmony_ci - Horizontal back porch in pixels 1248c2ecf20Sopenharmony_ci * - __u32 1258c2ecf20Sopenharmony_ci - ``vfrontporch`` 1268c2ecf20Sopenharmony_ci - Vertical front porch in lines. For interlaced formats this refers 1278c2ecf20Sopenharmony_ci to the odd field (aka field 1). 1288c2ecf20Sopenharmony_ci * - __u32 1298c2ecf20Sopenharmony_ci - ``vsync`` 1308c2ecf20Sopenharmony_ci - Vertical sync length in lines. For interlaced formats this refers 1318c2ecf20Sopenharmony_ci to the odd field (aka field 1). 1328c2ecf20Sopenharmony_ci * - __u32 1338c2ecf20Sopenharmony_ci - ``vbackporch`` 1348c2ecf20Sopenharmony_ci - Vertical back porch in lines. For interlaced formats this refers 1358c2ecf20Sopenharmony_ci to the odd field (aka field 1). 1368c2ecf20Sopenharmony_ci * - __u32 1378c2ecf20Sopenharmony_ci - ``il_vfrontporch`` 1388c2ecf20Sopenharmony_ci - Vertical front porch in lines for the even field (aka field 2) of 1398c2ecf20Sopenharmony_ci interlaced field formats. Must be 0 for progressive formats. 1408c2ecf20Sopenharmony_ci * - __u32 1418c2ecf20Sopenharmony_ci - ``il_vsync`` 1428c2ecf20Sopenharmony_ci - Vertical sync length in lines for the even field (aka field 2) of 1438c2ecf20Sopenharmony_ci interlaced field formats. Must be 0 for progressive formats. 1448c2ecf20Sopenharmony_ci * - __u32 1458c2ecf20Sopenharmony_ci - ``il_vbackporch`` 1468c2ecf20Sopenharmony_ci - Vertical back porch in lines for the even field (aka field 2) of 1478c2ecf20Sopenharmony_ci interlaced field formats. Must be 0 for progressive formats. 1488c2ecf20Sopenharmony_ci * - __u32 1498c2ecf20Sopenharmony_ci - ``standards`` 1508c2ecf20Sopenharmony_ci - The video standard(s) this format belongs to. This will be filled 1518c2ecf20Sopenharmony_ci in by the driver. Applications must set this to 0. See 1528c2ecf20Sopenharmony_ci :ref:`dv-bt-standards` for a list of standards. 1538c2ecf20Sopenharmony_ci * - __u32 1548c2ecf20Sopenharmony_ci - ``flags`` 1558c2ecf20Sopenharmony_ci - Several flags giving more information about the format. See 1568c2ecf20Sopenharmony_ci :ref:`dv-bt-flags` for a description of the flags. 1578c2ecf20Sopenharmony_ci * - struct :c:type:`v4l2_fract` 1588c2ecf20Sopenharmony_ci - ``picture_aspect`` 1598c2ecf20Sopenharmony_ci - The picture aspect if the pixels are not square. Only valid if the 1608c2ecf20Sopenharmony_ci ``V4L2_DV_FL_HAS_PICTURE_ASPECT`` flag is set. 1618c2ecf20Sopenharmony_ci * - __u8 1628c2ecf20Sopenharmony_ci - ``cea861_vic`` 1638c2ecf20Sopenharmony_ci - The Video Identification Code according to the CEA-861 standard. 1648c2ecf20Sopenharmony_ci Only valid if the ``V4L2_DV_FL_HAS_CEA861_VIC`` flag is set. 1658c2ecf20Sopenharmony_ci * - __u8 1668c2ecf20Sopenharmony_ci - ``hdmi_vic`` 1678c2ecf20Sopenharmony_ci - The Video Identification Code according to the HDMI standard. 1688c2ecf20Sopenharmony_ci Only valid if the ``V4L2_DV_FL_HAS_HDMI_VIC`` flag is set. 1698c2ecf20Sopenharmony_ci * - __u8 1708c2ecf20Sopenharmony_ci - ``reserved[46]`` 1718c2ecf20Sopenharmony_ci - Reserved for future extensions. Drivers and applications must set 1728c2ecf20Sopenharmony_ci the array to zero. 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci.. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{7.0cm}|p{3.5cm}| 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci.. c:type:: v4l2_dv_timings 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci.. flat-table:: struct v4l2_dv_timings 1798c2ecf20Sopenharmony_ci :header-rows: 0 1808c2ecf20Sopenharmony_ci :stub-columns: 0 1818c2ecf20Sopenharmony_ci :widths: 1 1 2 1828c2ecf20Sopenharmony_ci 1838c2ecf20Sopenharmony_ci * - __u32 1848c2ecf20Sopenharmony_ci - ``type`` 1858c2ecf20Sopenharmony_ci - Type of DV timings as listed in :ref:`dv-timing-types`. 1868c2ecf20Sopenharmony_ci * - union { 1878c2ecf20Sopenharmony_ci - (anonymous) 1888c2ecf20Sopenharmony_ci * - struct :c:type:`v4l2_bt_timings` 1898c2ecf20Sopenharmony_ci - ``bt`` 1908c2ecf20Sopenharmony_ci - Timings defined by BT.656/1120 specifications 1918c2ecf20Sopenharmony_ci * - __u32 1928c2ecf20Sopenharmony_ci - ``reserved``\ [32] 1938c2ecf20Sopenharmony_ci - 1948c2ecf20Sopenharmony_ci * - } 1958c2ecf20Sopenharmony_ci - 1968c2ecf20Sopenharmony_ci 1978c2ecf20Sopenharmony_ci.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci.. _dv-timing-types: 2008c2ecf20Sopenharmony_ci 2018c2ecf20Sopenharmony_ci.. flat-table:: DV Timing types 2028c2ecf20Sopenharmony_ci :header-rows: 0 2038c2ecf20Sopenharmony_ci :stub-columns: 0 2048c2ecf20Sopenharmony_ci :widths: 1 1 2 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ci * - Timing type 2078c2ecf20Sopenharmony_ci - value 2088c2ecf20Sopenharmony_ci - Description 2098c2ecf20Sopenharmony_ci * - 2108c2ecf20Sopenharmony_ci - 2118c2ecf20Sopenharmony_ci - 2128c2ecf20Sopenharmony_ci * - ``V4L2_DV_BT_656_1120`` 2138c2ecf20Sopenharmony_ci - 0 2148c2ecf20Sopenharmony_ci - BT.656/1120 timings 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ci.. tabularcolumns:: |p{4.5cm}|p{12.8cm}| 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_ci.. _dv-bt-standards: 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci.. flat-table:: DV BT Timing standards 2218c2ecf20Sopenharmony_ci :header-rows: 0 2228c2ecf20Sopenharmony_ci :stub-columns: 0 2238c2ecf20Sopenharmony_ci 2248c2ecf20Sopenharmony_ci * - Timing standard 2258c2ecf20Sopenharmony_ci - Description 2268c2ecf20Sopenharmony_ci * - ``V4L2_DV_BT_STD_CEA861`` 2278c2ecf20Sopenharmony_ci - The timings follow the CEA-861 Digital TV Profile standard 2288c2ecf20Sopenharmony_ci * - ``V4L2_DV_BT_STD_DMT`` 2298c2ecf20Sopenharmony_ci - The timings follow the VESA Discrete Monitor Timings standard 2308c2ecf20Sopenharmony_ci * - ``V4L2_DV_BT_STD_CVT`` 2318c2ecf20Sopenharmony_ci - The timings follow the VESA Coordinated Video Timings standard 2328c2ecf20Sopenharmony_ci * - ``V4L2_DV_BT_STD_GTF`` 2338c2ecf20Sopenharmony_ci - The timings follow the VESA Generalized Timings Formula standard 2348c2ecf20Sopenharmony_ci * - ``V4L2_DV_BT_STD_SDI`` 2358c2ecf20Sopenharmony_ci - The timings follow the SDI Timings standard. 2368c2ecf20Sopenharmony_ci There are no horizontal syncs/porches at all in this format. 2378c2ecf20Sopenharmony_ci Total blanking timings must be set in hsync or vsync fields only. 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci.. tabularcolumns:: |p{7.0cm}|p{10.5cm}| 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_ci.. _dv-bt-flags: 2428c2ecf20Sopenharmony_ci 2438c2ecf20Sopenharmony_ci.. flat-table:: DV BT Timing flags 2448c2ecf20Sopenharmony_ci :header-rows: 0 2458c2ecf20Sopenharmony_ci :stub-columns: 0 2468c2ecf20Sopenharmony_ci 2478c2ecf20Sopenharmony_ci * - Flag 2488c2ecf20Sopenharmony_ci - Description 2498c2ecf20Sopenharmony_ci * - ``V4L2_DV_FL_REDUCED_BLANKING`` 2508c2ecf20Sopenharmony_ci - CVT/GTF specific: the timings use reduced blanking (CVT) or the 2518c2ecf20Sopenharmony_ci 'Secondary GTF' curve (GTF). In both cases the horizontal and/or 2528c2ecf20Sopenharmony_ci vertical blanking intervals are reduced, allowing a higher 2538c2ecf20Sopenharmony_ci resolution over the same bandwidth. This is a read-only flag, 2548c2ecf20Sopenharmony_ci applications must not set this. 2558c2ecf20Sopenharmony_ci * - ``V4L2_DV_FL_CAN_REDUCE_FPS`` 2568c2ecf20Sopenharmony_ci - CEA-861 specific: set for CEA-861 formats with a framerate that is 2578c2ecf20Sopenharmony_ci a multiple of six. These formats can be optionally played at 1 / 2588c2ecf20Sopenharmony_ci 1.001 speed to be compatible with 60 Hz based standards such as 2598c2ecf20Sopenharmony_ci NTSC and PAL-M that use a framerate of 29.97 frames per second. If 2608c2ecf20Sopenharmony_ci the transmitter can't generate such frequencies, then the flag 2618c2ecf20Sopenharmony_ci will also be cleared. This is a read-only flag, applications must 2628c2ecf20Sopenharmony_ci not set this. 2638c2ecf20Sopenharmony_ci * - ``V4L2_DV_FL_REDUCED_FPS`` 2648c2ecf20Sopenharmony_ci - CEA-861 specific: only valid for video transmitters or video 2658c2ecf20Sopenharmony_ci receivers that have the ``V4L2_DV_FL_CAN_DETECT_REDUCED_FPS`` 2668c2ecf20Sopenharmony_ci set. This flag is cleared otherwise. It is also only valid for 2678c2ecf20Sopenharmony_ci formats with the ``V4L2_DV_FL_CAN_REDUCE_FPS`` flag set, for other 2688c2ecf20Sopenharmony_ci formats the flag will be cleared by the driver. 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ci If the application sets this flag for a transmitter, then the 2718c2ecf20Sopenharmony_ci pixelclock used to set up the transmitter is divided by 1.001 to 2728c2ecf20Sopenharmony_ci make it compatible with NTSC framerates. If the transmitter can't 2738c2ecf20Sopenharmony_ci generate such frequencies, then the flag will be cleared. 2748c2ecf20Sopenharmony_ci 2758c2ecf20Sopenharmony_ci If a video receiver detects that the format uses a reduced framerate, 2768c2ecf20Sopenharmony_ci then it will set this flag to signal this to the application. 2778c2ecf20Sopenharmony_ci * - ``V4L2_DV_FL_HALF_LINE`` 2788c2ecf20Sopenharmony_ci - Specific to interlaced formats: if set, then the vertical 2798c2ecf20Sopenharmony_ci frontporch of field 1 (aka the odd field) is really one half-line 2808c2ecf20Sopenharmony_ci longer and the vertical backporch of field 2 (aka the even field) 2818c2ecf20Sopenharmony_ci is really one half-line shorter, so each field has exactly the 2828c2ecf20Sopenharmony_ci same number of half-lines. Whether half-lines can be detected or 2838c2ecf20Sopenharmony_ci used depends on the hardware. 2848c2ecf20Sopenharmony_ci * - ``V4L2_DV_FL_IS_CE_VIDEO`` 2858c2ecf20Sopenharmony_ci - If set, then this is a Consumer Electronics (CE) video format. 2868c2ecf20Sopenharmony_ci Such formats differ from other formats (commonly called IT 2878c2ecf20Sopenharmony_ci formats) in that if R'G'B' encoding is used then by default the 2888c2ecf20Sopenharmony_ci R'G'B' values use limited range (i.e. 16-235) as opposed to full 2898c2ecf20Sopenharmony_ci range (i.e. 0-255). All formats defined in CEA-861 except for the 2908c2ecf20Sopenharmony_ci 640x480p59.94 format are CE formats. 2918c2ecf20Sopenharmony_ci * - ``V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE`` 2928c2ecf20Sopenharmony_ci - Some formats like SMPTE-125M have an interlaced signal with a odd 2938c2ecf20Sopenharmony_ci total height. For these formats, if this flag is set, the first 2948c2ecf20Sopenharmony_ci field has the extra line. Else, it is the second field. 2958c2ecf20Sopenharmony_ci * - ``V4L2_DV_FL_HAS_PICTURE_ASPECT`` 2968c2ecf20Sopenharmony_ci - If set, then the picture_aspect field is valid. Otherwise assume that 2978c2ecf20Sopenharmony_ci the pixels are square, so the picture aspect ratio is the same as the 2988c2ecf20Sopenharmony_ci width to height ratio. 2998c2ecf20Sopenharmony_ci * - ``V4L2_DV_FL_HAS_CEA861_VIC`` 3008c2ecf20Sopenharmony_ci - If set, then the cea861_vic field is valid and contains the Video 3018c2ecf20Sopenharmony_ci Identification Code as per the CEA-861 standard. 3028c2ecf20Sopenharmony_ci * - ``V4L2_DV_FL_HAS_HDMI_VIC`` 3038c2ecf20Sopenharmony_ci - If set, then the hdmi_vic field is valid and contains the Video 3048c2ecf20Sopenharmony_ci Identification Code as per the HDMI standard (HDMI Vendor Specific 3058c2ecf20Sopenharmony_ci InfoFrame). 3068c2ecf20Sopenharmony_ci * - ``V4L2_DV_FL_CAN_DETECT_REDUCED_FPS`` 3078c2ecf20Sopenharmony_ci - CEA-861 specific: only valid for video receivers, the flag is 3088c2ecf20Sopenharmony_ci cleared by transmitters. 3098c2ecf20Sopenharmony_ci If set, then the hardware can detect the difference between 3108c2ecf20Sopenharmony_ci regular framerates and framerates reduced by 1000/1001. E.g.: 3118c2ecf20Sopenharmony_ci 60 vs 59.94 Hz, 30 vs 29.97 Hz or 24 vs 23.976 Hz. 312