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