xref: /linux/Documentation/userspace-api/media/v4l/pixfmt-v4l2-mplane.rst (revision 778b8ebe5192e7a7f00563a7456517dfa63e1d90)
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2.. c:namespace:: V4L
3
4******************************
5Multi-planar format structures
6******************************
7
8The struct :c:type:`v4l2_plane_pix_format` structures define size
9and layout for each of the planes in a multi-planar format. The
10struct :c:type:`v4l2_pix_format_mplane` structure contains
11information common to all planes (such as image width and height) and an
12array of struct :c:type:`v4l2_plane_pix_format` structures,
13describing all planes of that format.
14
15
16
17.. tabularcolumns:: |p{1.4cm}|p{4.0cm}|p{11.9cm}|
18
19.. c:type:: v4l2_plane_pix_format
20
21.. flat-table:: struct v4l2_plane_pix_format
22    :header-rows:  0
23    :stub-columns: 0
24    :widths:       1 1 2
25
26    * - __u32
27      - ``sizeimage``
28      - Maximum size in bytes required for image data in this plane,
29	set by the driver. When the image consists of variable length
30	compressed data this is the number of bytes required by the
31	codec to support the worst-case compression scenario.
32
33	The driver will set the value for uncompressed images.
34
35	Clients are allowed to set the sizeimage field for variable length
36	compressed data flagged with ``V4L2_FMT_FLAG_COMPRESSED`` at
37	:ref:`VIDIOC_ENUM_FMT`, but the driver may ignore it and set the
38	value itself, or it may modify the provided value based on
39	alignment requirements or minimum/maximum size requirements.
40	If the client wants to leave this to the driver, then it should
41	set sizeimage to 0.
42    * - __u32
43      - ``bytesperline``
44      - Distance in bytes between the leftmost pixels in two adjacent
45	lines. See struct :c:type:`v4l2_pix_format`.
46    * - __u16
47      - ``reserved[6]``
48      - Reserved for future extensions. Should be zeroed by drivers and
49	applications.
50
51
52.. raw:: latex
53
54    \small
55
56.. tabularcolumns:: |p{4.4cm}|p{5.6cm}|p{7.3cm}|
57
58.. c:type:: v4l2_pix_format_mplane
59
60.. flat-table:: struct v4l2_pix_format_mplane
61    :header-rows:  0
62    :stub-columns: 0
63    :widths:       1 1 2
64
65    * - __u32
66      - ``width``
67      - Image width in pixels. See struct
68	:c:type:`v4l2_pix_format`.
69    * - __u32
70      - ``height``
71      - Image height in pixels. See struct
72	:c:type:`v4l2_pix_format`.
73    * - __u32
74      - ``pixelformat``
75      - The pixel format. Both single- and multi-planar four character
76	codes can be used.
77    * - __u32
78      - ``field``
79      - Field order, from enum :c:type:`v4l2_field`.
80        See struct :c:type:`v4l2_pix_format`.
81    * - __u32
82      - ``colorspace``
83      - Colorspace encoding, from enum :c:type:`v4l2_colorspace`.
84        See struct :c:type:`v4l2_pix_format`.
85    * - struct :c:type:`v4l2_plane_pix_format`
86      - ``plane_fmt[VIDEO_MAX_PLANES]``
87      - An array of structures describing format of each plane this pixel
88	format consists of. The number of valid entries in this array has
89	to be put in the ``num_planes`` field.
90    * - __u8
91      - ``num_planes``
92      - Number of planes (i.e. separate memory buffers) for this format
93	and the number of valid entries in the ``plane_fmt`` array.
94    * - __u8
95      - ``flags``
96      - Flags set by the application or driver, see :ref:`format-flags`.
97    * - union {
98      - (anonymous)
99    * - __u8
100      - ``ycbcr_enc``
101      - Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`.
102	See struct :c:type:`v4l2_pix_format`.
103    * - __u8
104      - ``hsv_enc``
105      - HSV encoding, from enum :c:type:`v4l2_hsv_encoding`.
106	See struct :c:type:`v4l2_pix_format`.
107    * - }
108      -
109    * - __u8
110      - ``quantization``
111      - Quantization range, from enum :c:type:`v4l2_quantization`.
112	See struct :c:type:`v4l2_pix_format`.
113    * - __u8
114      - ``xfer_func``
115      - Transfer function, from enum :c:type:`v4l2_xfer_func`.
116	See struct :c:type:`v4l2_pix_format`.
117    * - __u8
118      - ``reserved[7]``
119      - Reserved for future extensions. Should be zeroed by drivers and
120	applications.
121
122.. raw:: latex
123
124    \normalsize
125