26
26
* pixel format definitions
28
* @warning This file has to be considered an internal but installed
29
* header, so it should not be directly included in your projects.
32
30
#include "libavutil/avconfig.h"
35
* Pixel format. Notes:
37
36
* PIX_FMT_RGB32 is handled in an endian-specific manner. An RGBA
38
37
* color is put together as:
39
38
* (A << 24) | (R << 16) | (G << 8) | B
40
39
* This is stored as BGRA on little-endian CPU architectures and ARGB on
43
43
* When the pixel format is palettized RGB (PIX_FMT_PAL8), the palettized
44
44
* image data is stored in AVFrame.data[0]. The palette is transported in
45
45
* AVFrame.data[1], is 1024 bytes long (256 4-byte entries) and is
49
49
* This is important as many custom PAL8 video codecs that were designed
50
50
* to run on the IBM VGA graphics adapter use 6-bit palette components.
52
53
* For all the 8bit per pixel formats, an RGB32 palette is in data[1] like
53
54
* for pal8. This palette is filled in automatically by the function
54
55
* allocating the picture.
56
* Note, make sure that all newly added big endian formats have pix_fmt&1==1
57
* and that all newly added little endian formats have pix_fmt&1==0
58
* this allows simpler detection of big vs little endian.
58
* make sure that all newly added big endian formats have pix_fmt&1==1
59
* and that all newly added little endian formats have pix_fmt&1==0
60
* this allows simpler detection of big vs little endian.
139
141
PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
140
142
PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
141
143
PIX_FMT_YUV420P10LE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
142
PIX_FMT_YUV422P10BE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
143
PIX_FMT_YUV422P10LE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
144
PIX_FMT_YUV444P9BE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
145
PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
146
PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
147
PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
144
PIX_FMT_YUV422P10BE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
145
PIX_FMT_YUV422P10LE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
146
PIX_FMT_YUV444P9BE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
147
PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
148
PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
149
PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
150
PIX_FMT_YUV422P9BE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
151
PIX_FMT_YUV422P9LE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
152
PIX_FMT_VDA_VLD, ///< hardware decoding through VDA
153
PIX_FMT_GBRP, ///< planar GBR 4:4:4 24bpp
154
PIX_FMT_GBRP9BE, ///< planar GBR 4:4:4 27bpp, big endian
155
PIX_FMT_GBRP9LE, ///< planar GBR 4:4:4 27bpp, little endian
156
PIX_FMT_GBRP10BE, ///< planar GBR 4:4:4 30bpp, big endian
157
PIX_FMT_GBRP10LE, ///< planar GBR 4:4:4 30bpp, little endian
158
PIX_FMT_GBRP16BE, ///< planar GBR 4:4:4 48bpp, big endian
159
PIX_FMT_GBRP16LE, ///< planar GBR 4:4:4 48bpp, little endian
148
160
PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions