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

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/v4l/dev-output.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/dev-output.rst (Architecture ppc) and /Documentation/userspace-api/media/v4l/dev-output.rst (Architecture sparc)


  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 .. _output:                                         4 .. _output:
  5                                                     5 
  6 **********************                              6 **********************
  7 Video Output Interface                              7 Video Output Interface
  8 **********************                              8 **********************
  9                                                     9 
 10 Video output devices encode stills or image se     10 Video output devices encode stills or image sequences as analog video
 11 signal. With this interface applications can c     11 signal. With this interface applications can control the encoding
 12 process and move images from user space to the     12 process and move images from user space to the driver.
 13                                                    13 
 14 Conventionally V4L2 video output devices are a     14 Conventionally V4L2 video output devices are accessed through character
 15 device special files named ``/dev/video`` and      15 device special files named ``/dev/video`` and ``/dev/video0`` to
 16 ``/dev/video63`` with major number 81 and mino     16 ``/dev/video63`` with major number 81 and minor numbers 0 to 63.
 17 ``/dev/video`` is typically a symbolic link to     17 ``/dev/video`` is typically a symbolic link to the preferred video
 18 device.                                            18 device.
 19                                                    19 
 20 .. note:: The same device file names are used      20 .. note:: The same device file names are used also for video capture devices.
 21                                                    21 
 22 Querying Capabilities                              22 Querying Capabilities
 23 =====================                              23 =====================
 24                                                    24 
 25 Devices supporting the video output interface      25 Devices supporting the video output interface set the
 26 ``V4L2_CAP_VIDEO_OUTPUT`` or ``V4L2_CAP_VIDEO_     26 ``V4L2_CAP_VIDEO_OUTPUT`` or ``V4L2_CAP_VIDEO_OUTPUT_MPLANE`` flag in
 27 the ``capabilities`` field of struct               27 the ``capabilities`` field of struct
 28 :c:type:`v4l2_capability` returned by the          28 :c:type:`v4l2_capability` returned by the
 29 :ref:`VIDIOC_QUERYCAP` ioctl. As secondary dev     29 :ref:`VIDIOC_QUERYCAP` ioctl. As secondary device
 30 functions they may also support the :ref:`raw      30 functions they may also support the :ref:`raw VBI output <raw-vbi>`
 31 (``V4L2_CAP_VBI_OUTPUT``) interface. At least      31 (``V4L2_CAP_VBI_OUTPUT``) interface. At least one of the read/write or
 32 streaming I/O methods must be supported. Modul     32 streaming I/O methods must be supported. Modulators and audio outputs
 33 are optional.                                      33 are optional.
 34                                                    34 
 35 Supplemental Functions                             35 Supplemental Functions
 36 ======================                             36 ======================
 37                                                    37 
 38 Video output devices shall support :ref:`audio     38 Video output devices shall support :ref:`audio output <audio>`,
 39 :ref:`modulator <tuner>`, :ref:`controls <cont     39 :ref:`modulator <tuner>`, :ref:`controls <control>`,
 40 :ref:`cropping and scaling <crop>` and             40 :ref:`cropping and scaling <crop>` and
 41 :ref:`streaming parameter <streaming-par>` ioc     41 :ref:`streaming parameter <streaming-par>` ioctls as needed. The
 42 :ref:`video output <video>` ioctls must be sup     42 :ref:`video output <video>` ioctls must be supported by all video
 43 output devices.                                    43 output devices.
 44                                                    44 
 45 Image Format Negotiation                           45 Image Format Negotiation
 46 ========================                           46 ========================
 47                                                    47 
 48 The output is determined by cropping and image     48 The output is determined by cropping and image format parameters. The
 49 former select an area of the video picture whe     49 former select an area of the video picture where the image will appear,
 50 the latter how images are stored in memory, i.     50 the latter how images are stored in memory, i. e. in RGB or YUV format,
 51 the number of bits per pixel or width and heig     51 the number of bits per pixel or width and height. Together they also
 52 define how images are scaled in the process.       52 define how images are scaled in the process.
 53                                                    53 
 54 As usual these parameters are *not* reset at :     54 As usual these parameters are *not* reset at :c:func:`open()`
 55 time to permit Unix tool chains, programming a     55 time to permit Unix tool chains, programming a device and then writing
 56 to it as if it was a plain file. Well written      56 to it as if it was a plain file. Well written V4L2 applications ensure
 57 they really get what they want, including crop     57 they really get what they want, including cropping and scaling.
 58                                                    58 
 59 Cropping initialization at minimum requires to     59 Cropping initialization at minimum requires to reset the parameters to
 60 defaults. An example is given in :ref:`crop`.      60 defaults. An example is given in :ref:`crop`.
 61                                                    61 
 62 To query the current image format applications     62 To query the current image format applications set the ``type`` field of
 63 a struct :c:type:`v4l2_format` to                  63 a struct :c:type:`v4l2_format` to
 64 ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` or ``V4L2_BUF_T     64 ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` or ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``
 65 and call the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>     65 and call the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer
 66 to this structure. Drivers fill the struct         66 to this structure. Drivers fill the struct
 67 :c:type:`v4l2_pix_format` ``pix`` or the struc     67 :c:type:`v4l2_pix_format` ``pix`` or the struct
 68 :c:type:`v4l2_pix_format_mplane` ``pix_mp``        68 :c:type:`v4l2_pix_format_mplane` ``pix_mp``
 69 member of the ``fmt`` union.                       69 member of the ``fmt`` union.
 70                                                    70 
 71 To request different parameters applications s     71 To request different parameters applications set the ``type`` field of a
 72 struct :c:type:`v4l2_format` as above and init     72 struct :c:type:`v4l2_format` as above and initialize all
 73 fields of the struct :c:type:`v4l2_pix_format`     73 fields of the struct :c:type:`v4l2_pix_format`
 74 ``vbi`` member of the ``fmt`` union, or better     74 ``vbi`` member of the ``fmt`` union, or better just modify the results
 75 of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and cal     75 of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`
 76 ioctl with a pointer to this structure. Driver     76 ioctl with a pointer to this structure. Drivers may adjust the
 77 parameters and finally return the actual param     77 parameters and finally return the actual parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`
 78 does.                                              78 does.
 79                                                    79 
 80 Like :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` the :r     80 Like :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` the :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctl
 81 can be used to learn about hardware limitation     81 can be used to learn about hardware limitations without disabling I/O or
 82 possibly time consuming hardware preparations.     82 possibly time consuming hardware preparations.
 83                                                    83 
 84 The contents of struct :c:type:`v4l2_pix_forma     84 The contents of struct :c:type:`v4l2_pix_format` and
 85 struct :c:type:`v4l2_pix_format_mplane` are        85 struct :c:type:`v4l2_pix_format_mplane` are
 86 discussed in :ref:`pixfmt`. See also the speci     86 discussed in :ref:`pixfmt`. See also the specification of the
 87 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDI     87 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` and :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctls for
 88 details. Video output devices must implement b     88 details. Video output devices must implement both the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`
 89 and :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl,      89 and :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, even if :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ignores all
 90 requests and always returns default parameters     90 requests and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does.
 91 :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` is option     91 :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` is optional.
 92                                                    92 
 93 Writing Images                                     93 Writing Images
 94 ==============                                     94 ==============
 95                                                    95 
 96 A video output device may support the :ref:`wr     96 A video output device may support the :ref:`write() function <rw>`
 97 and/or streaming (:ref:`memory mapping <mmap>`     97 and/or streaming (:ref:`memory mapping <mmap>` or
 98 :ref:`user pointer <userp>`) I/O. See :ref:`io     98 :ref:`user pointer <userp>`) I/O. See :ref:`io` for details.
                                                      

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