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

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/v4l/planar-apis.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/planar-apis.rst (Version linux-6.12-rc7) and /Documentation/userspace-api/media/v4l/planar-apis.rst (Version linux-6.10.14)


  1 .. SPDX-License-Identifier: GFDL-1.1-no-invari      1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2                                                     2 
  3 .. _planar-apis:                                    3 .. _planar-apis:
  4                                                     4 
  5 *****************************                       5 *****************************
  6 Single- and multi-planar APIs                       6 Single- and multi-planar APIs
  7 *****************************                       7 *****************************
  8                                                     8 
  9 Some devices require data for each input or ou      9 Some devices require data for each input or output video frame to be
 10 placed in discontiguous memory buffers. In suc     10 placed in discontiguous memory buffers. In such cases, one video frame
 11 has to be addressed using more than one memory     11 has to be addressed using more than one memory address, i.e. one pointer
 12 per "plane". A plane is a sub-buffer of the cu     12 per "plane". A plane is a sub-buffer of the current frame. For examples
 13 of such formats see :ref:`pixfmt`.                 13 of such formats see :ref:`pixfmt`.
 14                                                    14 
 15 Initially, V4L2 API did not support multi-plan     15 Initially, V4L2 API did not support multi-planar buffers and a set of
 16 extensions has been introduced to handle them.     16 extensions has been introduced to handle them. Those extensions
 17 constitute what is being referred to as the "m     17 constitute what is being referred to as the "multi-planar API".
 18                                                    18 
 19 Some of the V4L2 API calls and structures are      19 Some of the V4L2 API calls and structures are interpreted differently,
 20 depending on whether single- or multi-planar A     20 depending on whether single- or multi-planar API is being used. An
 21 application can choose whether to use one or t     21 application can choose whether to use one or the other by passing a
 22 corresponding buffer type to its ioctl calls.      22 corresponding buffer type to its ioctl calls. Multi-planar versions of
 23 buffer types are suffixed with an ``_MPLANE``      23 buffer types are suffixed with an ``_MPLANE`` string. For a list of
 24 available multi-planar buffer types see enum       24 available multi-planar buffer types see enum
 25 :c:type:`v4l2_buf_type`.                           25 :c:type:`v4l2_buf_type`.
 26                                                    26 
 27                                                    27 
 28 Multi-planar formats                               28 Multi-planar formats
 29 ====================                               29 ====================
 30                                                    30 
 31 Multi-planar API introduces new multi-planar f     31 Multi-planar API introduces new multi-planar formats. Those formats use
 32 a separate set of FourCC codes. It is importan     32 a separate set of FourCC codes. It is important to distinguish between
 33 the multi-planar API and a multi-planar format     33 the multi-planar API and a multi-planar format. Multi-planar API calls
 34 can handle all single-planar formats as well (     34 can handle all single-planar formats as well (as long as they are passed
 35 in multi-planar API structures), while the sin     35 in multi-planar API structures), while the single-planar API cannot
 36 handle multi-planar formats.                       36 handle multi-planar formats.
 37                                                    37 
 38                                                    38 
 39 Calls that distinguish between single and mult     39 Calls that distinguish between single and multi-planar APIs
 40 ==============================================     40 ===========================================================
 41                                                    41 
 42 :ref:`VIDIOC_QUERYCAP <VIDIOC_QUERYCAP>`           42 :ref:`VIDIOC_QUERYCAP <VIDIOC_QUERYCAP>`
 43     Two additional multi-planar capabilities a     43     Two additional multi-planar capabilities are added. They can be set
 44     together with non-multi-planar ones for de     44     together with non-multi-planar ones for devices that handle both
 45     single- and multi-planar formats.              45     single- and multi-planar formats.
 46                                                    46 
 47 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDI     47 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`, :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`
 48     New structures for describing multi-planar     48     New structures for describing multi-planar formats are added: struct
 49     :c:type:`v4l2_pix_format_mplane` and           49     :c:type:`v4l2_pix_format_mplane` and
 50     struct :c:type:`v4l2_plane_pix_format`.        50     struct :c:type:`v4l2_plane_pix_format`.
 51     Drivers may define new multi-planar format     51     Drivers may define new multi-planar formats, which have distinct
 52     FourCC codes from the existing single-plan     52     FourCC codes from the existing single-planar ones.
 53                                                    53 
 54 :ref:`VIDIOC_QBUF <VIDIOC_QBUF>`, :ref:`VIDIOC     54 :ref:`VIDIOC_QBUF <VIDIOC_QBUF>`, :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>`, :ref:`VIDIOC_QUERYBUF <VIDIOC_QUERYBUF>`
 55     A new struct :c:type:`v4l2_plane` structur     55     A new struct :c:type:`v4l2_plane` structure for
 56     describing planes is added. Arrays of this     56     describing planes is added. Arrays of this structure are passed in
 57     the new ``m.planes`` field of struct           57     the new ``m.planes`` field of struct
 58     :c:type:`v4l2_buffer`.                         58     :c:type:`v4l2_buffer`.
 59                                                    59 
 60 :ref:`VIDIOC_REQBUFS <VIDIOC_REQBUFS>`             60 :ref:`VIDIOC_REQBUFS <VIDIOC_REQBUFS>`
 61     Will allocate multi-planar buffers as requ     61     Will allocate multi-planar buffers as requested.
                                                      

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