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-compressed.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 Compressed Formats
12 ******************
13
14
15 .. _compressed-formats:
16
17 .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
18
19 .. flat-table:: Compressed Image Formats
20     :header-rows:  1
21     :stub-columns: 0
22     :widths:       3 1 4
23
24     * - Identifier
25       - Code
26       - Details
27     * .. _V4L2-PIX-FMT-JPEG:
28
29       - ``V4L2_PIX_FMT_JPEG``
30       - 'JPEG'
31       - TBD. See also :ref:`VIDIOC_G_JPEGCOMP <VIDIOC_G_JPEGCOMP>`,
32         :ref:`VIDIOC_S_JPEGCOMP <VIDIOC_G_JPEGCOMP>`.
33     * .. _V4L2-PIX-FMT-MPEG:
34
35       - ``V4L2_PIX_FMT_MPEG``
36       - 'MPEG'
37       - MPEG multiplexed stream. The actual format is determined by
38         extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see
39         :ref:`mpeg-control-id`.
40     * .. _V4L2-PIX-FMT-H264:
41
42       - ``V4L2_PIX_FMT_H264``
43       - 'H264'
44       - H264 video elementary stream with start codes.
45     * .. _V4L2-PIX-FMT-H264-NO-SC:
46
47       - ``V4L2_PIX_FMT_H264_NO_SC``
48       - 'AVC1'
49       - H264 video elementary stream without start codes.
50     * .. _V4L2-PIX-FMT-H264-MVC:
51
52       - ``V4L2_PIX_FMT_H264_MVC``
53       - 'M264'
54       - H264 MVC video elementary stream.
55     * .. _V4L2-PIX-FMT-H263:
56
57       - ``V4L2_PIX_FMT_H263``
58       - 'H263'
59       - H263 video elementary stream.
60     * .. _V4L2-PIX-FMT-MPEG1:
61
62       - ``V4L2_PIX_FMT_MPEG1``
63       - 'MPG1'
64       - MPEG1 video elementary stream.
65     * .. _V4L2-PIX-FMT-MPEG2:
66
67       - ``V4L2_PIX_FMT_MPEG2``
68       - 'MPG2'
69       - MPEG2 video elementary stream.
70     * .. _V4L2-PIX-FMT-MPEG2-SLICE:
71
72       - ``V4L2_PIX_FMT_MPEG2_SLICE``
73       - 'MG2S'
74       - MPEG-2 parsed slice data, as extracted from the MPEG-2 bitstream.
75         This format is adapted for stateless video decoders that implement a
76         MPEG-2 pipeline (using the :ref:`mem2mem` and :ref:`media-request-api`).
77         Metadata associated with the frame to decode is required to be passed
78         through the ``V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS`` control and
79         quantization matrices can optionally be specified through the
80         ``V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION`` control.
81         See the :ref:`associated Codec Control IDs <v4l2-mpeg-mpeg2>`.
82         Exactly one output and one capture buffer must be provided for use with
83         this pixel format. The output buffer must contain the appropriate number
84         of macroblocks to decode a full corresponding frame to the matching
85         capture buffer.
86     * .. _V4L2-PIX-FMT-MPEG4:
87
88       - ``V4L2_PIX_FMT_MPEG4``
89       - 'MPG4'
90       - MPEG4 video elementary stream.
91     * .. _V4L2-PIX-FMT-XVID:
92
93       - ``V4L2_PIX_FMT_XVID``
94       - 'XVID'
95       - Xvid video elementary stream.
96     * .. _V4L2-PIX-FMT-VC1-ANNEX-G:
97
98       - ``V4L2_PIX_FMT_VC1_ANNEX_G``
99       - 'VC1G'
100       - VC1, SMPTE 421M Annex G compliant stream.
101     * .. _V4L2-PIX-FMT-VC1-ANNEX-L:
102
103       - ``V4L2_PIX_FMT_VC1_ANNEX_L``
104       - 'VC1L'
105       - VC1, SMPTE 421M Annex L compliant stream.
106     * .. _V4L2-PIX-FMT-VP8:
107
108       - ``V4L2_PIX_FMT_VP8``
109       - 'VP80'
110       - VP8 video elementary stream.
111     * .. _V4L2-PIX-FMT-VP9:
112
113       - ``V4L2_PIX_FMT_VP9``
114       - 'VP90'
115       - VP9 video elementary stream.
116     * .. _V4L2-PIX-FMT-HEVC:
117
118       - ``V4L2_PIX_FMT_HEVC``
119       - 'HEVC'
120       - HEVC/H.265 video elementary stream.
121     * .. _V4L2-PIX-FMT-FWHT:
122
123       - ``V4L2_PIX_FMT_FWHT``
124       - 'FWHT'
125       - Video elementary stream using a codec based on the Fast Walsh Hadamard
126         Transform. This codec is implemented by the vicodec ('Virtual Codec')
127         driver. See the codec-fwht.h header for more details.
128     * .. _V4L2-PIX-FMT-FWHT-STATELESS:
129
130       - ``V4L2_PIX_FMT_FWHT_STATELESS``
131       - 'SFWH'
132       - Same format as V4L2_PIX_FMT_FWHT but requires stateless codec implementation.
133         See the :ref:`associated Codec Control IDs <v4l2-mpeg-fwht>`.