~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/v4l/dv-timings.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/userspace-api/media/v4l/dv-timings.rst (Architecture mips) and /Documentation/userspace-api/media/v4l/dv-timings.rst (Architecture sparc64)


  1 .. SPDX-License-Identifier: GFDL-1.1-no-invari      1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2                                                     2 
  3 .. _dv-timings:                                     3 .. _dv-timings:
  4                                                     4 
  5 **************************                          5 **************************
  6 Digital Video (DV) Timings                          6 Digital Video (DV) Timings
  7 **************************                          7 **************************
  8                                                     8 
  9 The video standards discussed so far have been      9 The video standards discussed so far have been dealing with Analog TV
 10 and the corresponding video timings. Today the     10 and the corresponding video timings. Today there are many more different
 11 hardware interfaces such as High Definition TV     11 hardware interfaces such as High Definition TV interfaces (HDMI), VGA,
 12 DVI connectors etc., that carry video signals      12 DVI connectors etc., that carry video signals and there is a need to
 13 extend the API to select the video timings for     13 extend the API to select the video timings for these interfaces. Since
 14 it is not possible to extend the :ref:`v4l2_st     14 it is not possible to extend the :ref:`v4l2_std_id <v4l2-std-id>`
 15 due to the limited bits available, a new set o     15 due to the limited bits available, a new set of ioctls was added to
 16 set/get video timings at the input and output.     16 set/get video timings at the input and output.
 17                                                    17 
 18 These ioctls deal with the detailed digital vi     18 These ioctls deal with the detailed digital video timings that define
 19 each video format. This includes parameters su     19 each video format. This includes parameters such as the active video
 20 width and height, signal polarities, frontporc     20 width and height, signal polarities, frontporches, backporches, sync
 21 widths etc. The ``linux/v4l2-dv-timings.h`` he     21 widths etc. The ``linux/v4l2-dv-timings.h`` header can be used to get
 22 the timings of the formats in the :ref:`cea861     22 the timings of the formats in the :ref:`cea861` and :ref:`vesadmt`
 23 standards.                                         23 standards.
 24                                                    24 
 25 To enumerate and query the attributes of the D     25 To enumerate and query the attributes of the DV timings supported by a
 26 device applications use the                        26 device applications use the
 27 :ref:`VIDIOC_ENUM_DV_TIMINGS` and                  27 :ref:`VIDIOC_ENUM_DV_TIMINGS` and
 28 :ref:`VIDIOC_DV_TIMINGS_CAP` ioctls. To set        28 :ref:`VIDIOC_DV_TIMINGS_CAP` ioctls. To set
 29 DV timings for the device applications use the     29 DV timings for the device applications use the
 30 :ref:`VIDIOC_S_DV_TIMINGS <VIDIOC_G_DV_TIMINGS     30 :ref:`VIDIOC_S_DV_TIMINGS <VIDIOC_G_DV_TIMINGS>` ioctl and to get
 31 current DV timings they use the                    31 current DV timings they use the
 32 :ref:`VIDIOC_G_DV_TIMINGS <VIDIOC_G_DV_TIMINGS     32 :ref:`VIDIOC_G_DV_TIMINGS <VIDIOC_G_DV_TIMINGS>` ioctl. To detect
 33 the DV timings as seen by the video receiver a     33 the DV timings as seen by the video receiver applications use the
 34 :ref:`VIDIOC_QUERY_DV_TIMINGS` ioctl.              34 :ref:`VIDIOC_QUERY_DV_TIMINGS` ioctl.
 35                                                    35 
 36 When the hardware detects a video source chang     36 When the hardware detects a video source change (e.g. the video
 37 signal appears or disappears, or the video res     37 signal appears or disappears, or the video resolution changes), then
 38 it will issue a `V4L2_EVENT_SOURCE_CHANGE` eve     38 it will issue a `V4L2_EVENT_SOURCE_CHANGE` event. Use the
 39 :ref:`ioctl VIDIOC_SUBSCRIBE_EVENT <VIDIOC_SUB     39 :ref:`ioctl VIDIOC_SUBSCRIBE_EVENT <VIDIOC_SUBSCRIBE_EVENT>` and the
 40 :ref:`VIDIOC_DQEVENT` to check if this event w     40 :ref:`VIDIOC_DQEVENT` to check if this event was reported.
 41                                                    41 
 42 If the video signal changed, then the applicat     42 If the video signal changed, then the application has to stop
 43 streaming, free all buffers, and call the :ref     43 streaming, free all buffers, and call the :ref:`VIDIOC_QUERY_DV_TIMINGS`
 44 to obtain the new video timings, and if they a     44 to obtain the new video timings, and if they are valid, it can set
 45 those by calling the :ref:`ioctl VIDIOC_S_DV_T     45 those by calling the :ref:`ioctl VIDIOC_S_DV_TIMINGS <VIDIOC_G_DV_TIMINGS>`.
 46 This will also update the format, so use the :     46 This will also update the format, so use the :ref:`ioctl VIDIOC_G_FMT <VIDIOC_G_FMT>`
 47 to obtain the new format. Now the application      47 to obtain the new format. Now the application can allocate new buffers
 48 and start streaming again.                         48 and start streaming again.
 49                                                    49 
 50 The :ref:`VIDIOC_QUERY_DV_TIMINGS` will just r     50 The :ref:`VIDIOC_QUERY_DV_TIMINGS` will just report what the
 51 hardware detects, it will never change the con     51 hardware detects, it will never change the configuration. If the
 52 currently set timings and the actually detecte     52 currently set timings and the actually detected timings differ, then
 53 typically this will mean that you will not be      53 typically this will mean that you will not be able to capture any
 54 video. The correct approach is to rely on the      54 video. The correct approach is to rely on the `V4L2_EVENT_SOURCE_CHANGE`
 55 event so you know when something changed.          55 event so you know when something changed.
 56                                                    56 
 57 Applications can make use of the :ref:`input-c     57 Applications can make use of the :ref:`input-capabilities` and
 58 :ref:`output-capabilities` flags to determine      58 :ref:`output-capabilities` flags to determine whether the digital
 59 video ioctls can be used with the given input      59 video ioctls can be used with the given input or output.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php