Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[sfrench/cifs-2.6.git] / Documentation / media / uapi / v4l / pixfmt-v4l2-mplane.rst
1 .. Permission is granted to copy, distribute and/or modify this
2 .. document under the terms of the GNU Free Documentation License,
3 .. Version 1.1 or any later version published by the Free Software
4 .. Foundation, with no Invariant Sections, no Front-Cover Texts
5 .. and no Back-Cover Texts. A copy of the license is included at
6 .. Documentation/media/uapi/fdl-appendix.rst.
7 ..
8 .. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
9
10 ******************************
11 Multi-planar format structures
12 ******************************
13
14 The struct :c:type:`v4l2_plane_pix_format` structures define size
15 and layout for each of the planes in a multi-planar format. The
16 struct :c:type:`v4l2_pix_format_mplane` structure contains
17 information common to all planes (such as image width and height) and an
18 array of struct :c:type:`v4l2_plane_pix_format` structures,
19 describing all planes of that format.
20
21
22
23 .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
24
25 .. c:type:: v4l2_plane_pix_format
26
27 .. flat-table:: struct v4l2_plane_pix_format
28     :header-rows:  0
29     :stub-columns: 0
30     :widths:       1 1 2
31
32     * - __u32
33       - ``sizeimage``
34       - Maximum size in bytes required for image data in this plane.
35     * - __u32
36       - ``bytesperline``
37       - Distance in bytes between the leftmost pixels in two adjacent
38         lines. See struct :c:type:`v4l2_pix_format`.
39     * - __u16
40       - ``reserved[6]``
41       - Reserved for future extensions. Should be zeroed by drivers and
42         applications.
43
44
45 .. raw:: latex
46
47     \small
48
49 .. tabularcolumns:: |p{4.4cm}|p{5.6cm}|p{7.5cm}|
50
51 .. c:type:: v4l2_pix_format_mplane
52
53 .. flat-table:: struct v4l2_pix_format_mplane
54     :header-rows:  0
55     :stub-columns: 0
56     :widths:       1 1 2
57
58     * - __u32
59       - ``width``
60       - Image width in pixels. See struct
61         :c:type:`v4l2_pix_format`.
62     * - __u32
63       - ``height``
64       - Image height in pixels. See struct
65         :c:type:`v4l2_pix_format`.
66     * - __u32
67       - ``pixelformat``
68       - The pixel format. Both single- and multi-planar four character
69         codes can be used.
70     * - __u32
71       - ``field``
72       - Field order, from enum :c:type:`v4l2_field`.
73         See struct :c:type:`v4l2_pix_format`.
74     * - __u32
75       - ``colorspace``
76       - Colorspace encoding, from enum :c:type:`v4l2_colorspace`.
77         See struct :c:type:`v4l2_pix_format`.
78     * - struct :c:type:`v4l2_plane_pix_format`
79       - ``plane_fmt[VIDEO_MAX_PLANES]``
80       - An array of structures describing format of each plane this pixel
81         format consists of. The number of valid entries in this array has
82         to be put in the ``num_planes`` field.
83     * - __u8
84       - ``num_planes``
85       - Number of planes (i.e. separate memory buffers) for this format
86         and the number of valid entries in the ``plane_fmt`` array.
87     * - __u8
88       - ``flags``
89       - Flags set by the application or driver, see :ref:`format-flags`.
90     * - :cspan:`2` union { (anonymous)
91     * - __u8
92       - ``ycbcr_enc``
93       - Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`.
94         This information supplements the ``colorspace`` and must be set by
95         the driver for capture streams and by the application for output
96         streams, see :ref:`colorspaces`.
97     * - __u8
98       - ``hsv_enc``
99       - HSV encoding, from enum :c:type:`v4l2_hsv_encoding`.
100         This information supplements the ``colorspace`` and must be set by
101         the driver for capture streams and by the application for output
102         streams, see :ref:`colorspaces`.
103     * - :cspan:`2` }
104     * - __u8
105       - ``quantization``
106       - Quantization range, from enum :c:type:`v4l2_quantization`.
107         This information supplements the ``colorspace`` and must be set by
108         the driver for capture streams and by the application for output
109         streams, see :ref:`colorspaces`.
110     * - __u8
111       - ``xfer_func``
112       - Transfer function, from enum :c:type:`v4l2_xfer_func`.
113         This information supplements the ``colorspace`` and must be set by
114         the driver for capture streams and by the application for output
115         streams, see :ref:`colorspaces`.
116     * - __u8
117       - ``reserved[7]``
118       - Reserved for future extensions. Should be zeroed by drivers and
119         applications.
120
121 .. raw:: latex
122
123     \normalsize