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

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/v4l/vidioc-query-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/vidioc-query-dv-timings.rst (Architecture ppc) and /Documentation/userspace-api/media/v4l/vidioc-query-dv-timings.rst (Architecture mips)


  1 .. SPDX-License-Identifier: GFDL-1.1-no-invari      1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2 .. c:namespace:: V4L                                2 .. c:namespace:: V4L
  3                                                     3 
  4 .. _VIDIOC_QUERY_DV_TIMINGS:                        4 .. _VIDIOC_QUERY_DV_TIMINGS:
  5                                                     5 
  6 *****************************                       6 *****************************
  7 ioctl VIDIOC_QUERY_DV_TIMINGS                       7 ioctl VIDIOC_QUERY_DV_TIMINGS
  8 *****************************                       8 *****************************
  9                                                     9 
 10 Name                                               10 Name
 11 ====                                               11 ====
 12                                                    12 
 13 VIDIOC_QUERY_DV_TIMINGS - VIDIOC_SUBDEV_QUERY_     13 VIDIOC_QUERY_DV_TIMINGS - VIDIOC_SUBDEV_QUERY_DV_TIMINGS - Sense the DV preset received by the current input
 14                                                    14 
 15 Synopsis                                           15 Synopsis
 16 ========                                           16 ========
 17                                                    17 
 18 .. c:macro:: VIDIOC_QUERY_DV_TIMINGS               18 .. c:macro:: VIDIOC_QUERY_DV_TIMINGS
 19                                                    19 
 20 ``int ioctl(int fd, VIDIOC_QUERY_DV_TIMINGS, s     20 ``int ioctl(int fd, VIDIOC_QUERY_DV_TIMINGS, struct v4l2_dv_timings *argp)``
 21                                                    21 
 22 .. c:macro:: VIDIOC_SUBDEV_QUERY_DV_TIMINGS        22 .. c:macro:: VIDIOC_SUBDEV_QUERY_DV_TIMINGS
 23                                                    23 
 24 ``int ioctl(int fd, VIDIOC_SUBDEV_QUERY_DV_TIM     24 ``int ioctl(int fd, VIDIOC_SUBDEV_QUERY_DV_TIMINGS, struct v4l2_dv_timings *argp)``
 25                                                    25 
 26 Arguments                                          26 Arguments
 27 =========                                          27 =========
 28                                                    28 
 29 ``fd``                                             29 ``fd``
 30     File descriptor returned by :c:func:`open(     30     File descriptor returned by :c:func:`open()`.
 31                                                    31 
 32 ``argp``                                           32 ``argp``
 33     Pointer to struct :c:type:`v4l2_dv_timings     33     Pointer to struct :c:type:`v4l2_dv_timings`.
 34                                                    34 
 35 Description                                        35 Description
 36 ===========                                        36 ===========
 37                                                    37 
 38 The hardware may be able to detect the current     38 The hardware may be able to detect the current DV timings automatically,
 39 similar to sensing the video standard. To do s     39 similar to sensing the video standard. To do so, applications call
 40 :ref:`VIDIOC_QUERY_DV_TIMINGS` with a pointer      40 :ref:`VIDIOC_QUERY_DV_TIMINGS` with a pointer to a struct
 41 :c:type:`v4l2_dv_timings`. Once the hardware d     41 :c:type:`v4l2_dv_timings`. Once the hardware detects
 42 the timings, it will fill in the timings struc     42 the timings, it will fill in the timings structure.
 43                                                    43 
 44 .. note::                                          44 .. note::
 45                                                    45 
 46    Drivers shall *not* switch timings automati     46    Drivers shall *not* switch timings automatically if new
 47    timings are detected. Instead, drivers shou     47    timings are detected. Instead, drivers should send the
 48    ``V4L2_EVENT_SOURCE_CHANGE`` event (if they     48    ``V4L2_EVENT_SOURCE_CHANGE`` event (if they support this) and expect
 49    that userspace will take action by calling      49    that userspace will take action by calling :ref:`VIDIOC_QUERY_DV_TIMINGS`.
 50    The reason is that new timings usually mean     50    The reason is that new timings usually mean different buffer sizes as
 51    well, and you cannot change buffer sizes on     51    well, and you cannot change buffer sizes on the fly. In general,
 52    applications that receive the Source Change     52    applications that receive the Source Change event will have to call
 53    :ref:`VIDIOC_QUERY_DV_TIMINGS`, and if the      53    :ref:`VIDIOC_QUERY_DV_TIMINGS`, and if the detected timings are valid they
 54    will have to stop streaming, set the new ti     54    will have to stop streaming, set the new timings, allocate new buffers
 55    and start streaming again.                      55    and start streaming again.
 56                                                    56 
 57 If the timings could not be detected because t     57 If the timings could not be detected because there was no signal, then
 58 ENOLINK is returned. If a signal was detected,     58 ENOLINK is returned. If a signal was detected, but it was unstable and
 59 the receiver could not lock to the signal, the     59 the receiver could not lock to the signal, then ``ENOLCK`` is returned. If
 60 the receiver could lock to the signal, but the     60 the receiver could lock to the signal, but the format is unsupported
 61 (e.g. because the pixelclock is out of range o     61 (e.g. because the pixelclock is out of range of the hardware
 62 capabilities), then the driver fills in whatev     62 capabilities), then the driver fills in whatever timings it could find
 63 and returns ``ERANGE``. In that case the appli     63 and returns ``ERANGE``. In that case the application can call
 64 :ref:`VIDIOC_DV_TIMINGS_CAP` to compare the        64 :ref:`VIDIOC_DV_TIMINGS_CAP` to compare the
 65 found timings with the hardware's capabilities     65 found timings with the hardware's capabilities in order to give more
 66 precise feedback to the user.                      66 precise feedback to the user.
 67                                                    67 
 68 Return Value                                       68 Return Value
 69 ============                                       69 ============
 70                                                    70 
 71 On success 0 is returned, on error -1 and the      71 On success 0 is returned, on error -1 and the ``errno`` variable is set
 72 appropriately. The generic error codes are des     72 appropriately. The generic error codes are described at the
 73 :ref:`Generic Error Codes <gen-errors>` chapte     73 :ref:`Generic Error Codes <gen-errors>` chapter.
 74                                                    74 
 75 ENODATA                                            75 ENODATA
 76     Digital video timings are not supported fo     76     Digital video timings are not supported for this input or output.
 77                                                    77 
 78 ENOLINK                                            78 ENOLINK
 79     No timings could be detected because no si     79     No timings could be detected because no signal was found.
 80                                                    80 
 81 ENOLCK                                             81 ENOLCK
 82     The signal was unstable and the hardware c     82     The signal was unstable and the hardware could not lock on to it.
 83                                                    83 
 84 ERANGE                                             84 ERANGE
 85     Timings were found, but they are out of ra     85     Timings were found, but they are out of range of the hardware
 86     capabilities.                                  86     capabilities.
                                                      

~ [ 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