AVPKit
IPixelFormat.h
1 /*******************************************************************************
2  * Copyright (c) 2024, 2026, Olivier Ayache. All rights reserved.
3  *
4  * This file is part of AVPKit.
5  *
6  * AVPKit is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * AVPKit is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with AVPKit. If not, see <http://www.gnu.org/licenses/>.
18  *******************************************************************************/
19 
20 #ifndef IPIXELFORMAT_H_
21 #define IPIXELFORMAT_H_
22 
23 #include <com/avpkit/ferry/RefCounted.h>
24 #include <com/avpkit/core/AVPKit.h>
25 #include <libavutil/version.h>
26 #include <libavcodec/version.h>
27 
28 
29 #ifndef LIBAVUTIL_VERSION_MAJOR
30 #define LIBAVUTIL_VERSION_MAJOR 55
31 #endif // ! LIBAVUTIL_VERSION_MAJOR
32 
33 namespace com { namespace avpkit { namespace core
34 {
35  // From libavutil Version 49.6.0
36  class IVideoPicture;
37 
45  class VS_API_AVPKIT IPixelFormat : public com::avpkit::ferry::RefCounted {
46  public:
65  typedef enum Type {
66  NONE = -1,
78  PAL8,
84  BGR8,
85  BGR4,
87  RGB8,
88  RGB4,
90  NV12,
91  NV21,
92 
93  ARGB,
94  RGBA,
95  ABGR,
96  BGRA,
97 
105 
110 
115 
116  #if FF_API_VAAPI
119  VAAPI_MOCO,
120  VAAPI_IDCT,
121  VAAPI_VLD,
123  VAAPI = VAAPI_VLD,
124  #else
130  #endif
131 
139 
144  YA8,
145 
146  Y400A = YA8,
147  GRAY8A= YA8,
148 
151 
170  GBR24P = GBRP, // alias for #GBRP
197 
199 
205 
210 
212 
215 
229 
231 
237 
242 
260 
273 
275 
282 
284 
287 
289 
292 
295 
300 
303 
315 
318 
323 
337 
340 
343 
348 
351 
358 
361 
362  NB
363  } Type;
364 
365  typedef enum {
366  YUV_Y=0,
367  YUV_U=1,
368  YUV_V=2,
369  } YUVColorComponent;
370 
383  static unsigned char getYUV420PPixel(IVideoPicture *frame, int x, int y, YUVColorComponent c);
384 
396  static void setYUV420PPixel(IVideoPicture *frame, int x, int y, YUVColorComponent c, unsigned char value);
397 
413  static int getYUV420PPixelOffset(IVideoPicture *frame, int x, int y, YUVColorComponent c);
414  protected:
415  IPixelFormat();
416  virtual ~IPixelFormat();
417 
418  };
419 }}}
420 
421 
422 #endif /*IPIXELFORMAT_H_*/
Information about how video data is formatted in an IVideoPicture object.
Definition: IPixelFormat.h:45
@ YUVA444P16LE
planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian)
Definition: IPixelFormat.h:196
@ YUVA422P
planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples)
Definition: IPixelFormat.h:177
@ NV12
planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (firs...
Definition: IPixelFormat.h:90
@ BAYER_BGGR8
bayer, BGBG..(odd line), GRGR..(even line), 8-bit samples
Definition: IPixelFormat.h:261
@ YUV422P16BE
planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
Definition: IPixelFormat.h:135
@ YUVJ420P
planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of YUV420P and setting color_range
Definition: IPixelFormat.h:79
@ GBRP14BE
planar GBR 4:4:4 42bpp, big-endian
Definition: IPixelFormat.h:257
@ GRAYF32BE
IEEE-754 single precision Y, 32bpp, big-endian.
Definition: IPixelFormat.h:341
@ GRAY10LE
Y , 10bpp, little-endian.
Definition: IPixelFormat.h:299
@ YUVA422P12BE
planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), 12b alpha, big-endian
Definition: IPixelFormat.h:344
@ YUYV422
packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
Definition: IPixelFormat.h:68
@ BGRA64LE
packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is st...
Definition: IPixelFormat.h:209
@ YUV444P10BE
planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
Definition: IPixelFormat.h:165
@ GRAY16LE
Y , 16bpp, little-endian.
Definition: IPixelFormat.h:99
@ GBRP12LE
planar GBR 4:4:4 36bpp, little-endian
Definition: IPixelFormat.h:256
@ YUVJ422P
planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of YUV422P and setting color_range
Definition: IPixelFormat.h:80
@ YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: IPixelFormat.h:67
@ YUV422P
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition: IPixelFormat.h:71
@ OPENCL
Hardware surfaces for OpenCL.
Definition: IPixelFormat.h:336
@ RGB444LE
packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), little-endian, X=unused/undefined
Definition: IPixelFormat.h:140
@ YUV420P10LE
planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
Definition: IPixelFormat.h:160
@ GBRAP16LE
planar GBRA 4:4:4:4 64bpp, little-endian
Definition: IPixelFormat.h:218
@ FMT_0RGB
packed RGB 8:8:8, 32bpp, XRGBXRGB... X=unused/undefined
Definition: IPixelFormat.h:238
@ BGR4
packed RGB 1:2:1 bitstream, 4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in ...
Definition: IPixelFormat.h:85
@ BAYER_RGGB8
bayer, RGRG..(odd line), GBGB..(even line), 8-bit samples
Definition: IPixelFormat.h:262
@ BGR48LE
packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as lit...
Definition: IPixelFormat.h:150
@ YUV440P
planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples)
Definition: IPixelFormat.h:100
@ GRAY12LE
Y , 12bpp, little-endian.
Definition: IPixelFormat.h:297
@ YUVA420P10LE
planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian)
Definition: IPixelFormat.h:186
@ BGR4_BYTE
packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb)
Definition: IPixelFormat.h:86
@ YUV422P14BE
planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
Definition: IPixelFormat.h:249
@ GRAYF32LE
IEEE-754 single precision Y, 32bpp, little-endian.
Definition: IPixelFormat.h:342
@ RGB24
packed RGB 8:8:8, 24bpp, RGBRGB...
Definition: IPixelFormat.h:69
@ RGBA64BE
packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is st...
Definition: IPixelFormat.h:206
@ YUV444P
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: IPixelFormat.h:72
@ BGR444LE
packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), little-endian, X=unused/undefined
Definition: IPixelFormat.h:142
@ VAAPI
Hardware acceleration through VA-API, data[3] contains a VASurfaceID.
Definition: IPixelFormat.h:129
@ DRM_PRIME
DRM-managed buffers exposed through PRIME buffer sharing.
Definition: IPixelFormat.h:329
@ NV21
as above, but U and V bytes are swapped
Definition: IPixelFormat.h:91
@ YUV422P9LE
planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
Definition: IPixelFormat.h:168
@ YUVA444P16BE
planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian)
Definition: IPixelFormat.h:195
@ YUV410P
planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples)
Definition: IPixelFormat.h:73
@ AYUV64BE
packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), big-endian
Definition: IPixelFormat.h:281
@ BAYER_GRBG16BE
bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, big-endian
Definition: IPixelFormat.h:272
@ MONOBLACK
Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb.
Definition: IPixelFormat.h:77
@ XVMC
XVideo Motion Acceleration via common packet passing.
Definition: IPixelFormat.h:274
@ YUV420P12BE
planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
Definition: IPixelFormat.h:243
@ YUV444P16LE
planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
Definition: IPixelFormat.h:136
@ P010BE
like NV12, with 10bpp per component, data in the high bits, zeros in the low bits,...
Definition: IPixelFormat.h:286
@ GRAY9BE
Y , 9bpp, big-endian.
Definition: IPixelFormat.h:316
@ XYZ12BE
packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as big...
Definition: IPixelFormat.h:201
@ RGB4
packed RGB 1:2:1 bitstream, 4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in ...
Definition: IPixelFormat.h:88
@ BAYER_GBRG16BE
bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, big-endian
Definition: IPixelFormat.h:270
@ YUV420P14BE
planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
Definition: IPixelFormat.h:245
@ YUVA420P
planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples)
Definition: IPixelFormat.h:102
@ Y210LE
packed YUV 4:2:2 like YUYV422, 20bpp, data in the high bits, little-endian
Definition: IPixelFormat.h:360
@ YUV440P10LE
planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
Definition: IPixelFormat.h:276
@ YUV420P16BE
planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
Definition: IPixelFormat.h:133
@ GRAY14BE
Y , 14bpp, big-endian.
Definition: IPixelFormat.h:338
@ BAYER_RGGB16LE
bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, little-endian
Definition: IPixelFormat.h:267
@ RGB565BE
packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian
Definition: IPixelFormat.h:106
@ UYYVYY411
packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3
Definition: IPixelFormat.h:83
@ YUVJ444P
planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of YUV444P and setting color_range
Definition: IPixelFormat.h:81
@ UYVY422
packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
Definition: IPixelFormat.h:82
@ YUV444P10LE
planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
Definition: IPixelFormat.h:166
@ YUV444P9LE
planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
Definition: IPixelFormat.h:164
@ RGB444BE
packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), big-endian, X=unused/undefined
Definition: IPixelFormat.h:141
@ YUVA422P12LE
planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), 12b alpha, little-endian
Definition: IPixelFormat.h:345
@ MEDIACODEC
HW decoding through Android MediaCodec
Definition: IPixelFormat.h:288
@ YUV420P9LE
planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
Definition: IPixelFormat.h:158
@ YUVA444P12LE
planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), 12b alpha, little-endian
Definition: IPixelFormat.h:347
@ CUDA
HW acceleration through CUDA.
Definition: IPixelFormat.h:236
@ YUV422P12LE
planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
Definition: IPixelFormat.h:248
@ RGBA64LE
packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is st...
Definition: IPixelFormat.h:207
@ BGR565LE
packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), little-endian
Definition: IPixelFormat.h:112
@ P016BE
like NV12, with 16bpp per component, big-endian
Definition: IPixelFormat.h:302
@ YUVJ440P
planar YUV 4:4:0 full scale (JPEG), deprecated in favor of YUV440P and setting color_range
Definition: IPixelFormat.h:101
@ YA16LE
16 bits gray, 16 bits alpha (little-endian)
Definition: IPixelFormat.h:214
@ GRAY10BE
Y , 10bpp, big-endian.
Definition: IPixelFormat.h:298
@ VIDEOTOOLBOX
hardware decoding through Videotoolbox
Definition: IPixelFormat.h:283
@ BGR444BE
packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), big-endian, X=unused/undefined
Definition: IPixelFormat.h:143
@ ARGB
packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
Definition: IPixelFormat.h:93
@ NV16
interleaved chroma YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition: IPixelFormat.h:202
@ GBRP14LE
planar GBR 4:4:4 42bpp, little-endian
Definition: IPixelFormat.h:258
@ GBRAP12BE
planar GBR 4:4:4:4 48bpp, big-endian
Definition: IPixelFormat.h:290
@ GBRP12BE
planar GBR 4:4:4 36bpp, big-endian
Definition: IPixelFormat.h:255
@ NV20BE
interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
Definition: IPixelFormat.h:204
@ YUV422P12BE
planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
Definition: IPixelFormat.h:247
@ YUV422P10LE
planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
Definition: IPixelFormat.h:162
@ BGR8
packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb)
Definition: IPixelFormat.h:84
@ YUV411P
planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)
Definition: IPixelFormat.h:74
@ BAYER_GRBG16LE
bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, little-endian
Definition: IPixelFormat.h:271
@ YUVA420P9LE
planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), little-endian
Definition: IPixelFormat.h:180
@ YUVA422P16BE
planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian)
Definition: IPixelFormat.h:193
@ GRAY9LE
Y , 9bpp, little-endian.
Definition: IPixelFormat.h:317
@ GBRPF32BE
IEEE-754 single precision planar GBR 4:4:4, 96bpp, big-endian.
Definition: IPixelFormat.h:319
@ YUVA420P9BE
planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), big-endian
Definition: IPixelFormat.h:179
@ RGB8
packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb)
Definition: IPixelFormat.h:87
@ BGR48BE
packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big...
Definition: IPixelFormat.h:149
@ DXVA2_VLD
HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer.
Definition: IPixelFormat.h:138
@ GBRPF32LE
IEEE-754 single precision planar GBR 4:4:4, 96bpp, little-endian.
Definition: IPixelFormat.h:320
@ BAYER_GRBG8
bayer, GRGR..(odd line), BGBG..(even line), 8-bit samples
Definition: IPixelFormat.h:264
@ YUV422P9BE
planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
Definition: IPixelFormat.h:167
@ GRAY16BE
Y , 16bpp, big-endian.
Definition: IPixelFormat.h:98
@ P016LE
like NV12, with 16bpp per component, little-endian
Definition: IPixelFormat.h:301
@ BAYER_BGGR16BE
bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, big-endian
Definition: IPixelFormat.h:266
@ RGBA
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
Definition: IPixelFormat.h:94
@ BGRA
packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
Definition: IPixelFormat.h:96
@ GBRP
planar GBR 4:4:4 24bpp
Definition: IPixelFormat.h:169
@ BAYER_BGGR16LE
bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, little-endian
Definition: IPixelFormat.h:265
@ YUV422P10BE
planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
Definition: IPixelFormat.h:161
@ YUV440P12LE
planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
Definition: IPixelFormat.h:278
@ VULKAN
Vulkan hardware images.
Definition: IPixelFormat.h:357
@ GBRAPF32LE
IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, little-endian.
Definition: IPixelFormat.h:322
@ YUV444P12BE
planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
Definition: IPixelFormat.h:251
@ PAL8
8 bits with RGB32 palette
Definition: IPixelFormat.h:78
@ P010LE
like NV12, with 10bpp per component, data in the high bits, zeros in the low bits,...
Definition: IPixelFormat.h:285
@ YUVA444P9BE
planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), big-endian
Definition: IPixelFormat.h:183
@ YUVA444P10LE
planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian)
Definition: IPixelFormat.h:190
@ GBRAP12LE
planar GBR 4:4:4:4 48bpp, little-endian
Definition: IPixelFormat.h:291
@ NV20LE
interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
Definition: IPixelFormat.h:203
@ YUVA422P10BE
planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian)
Definition: IPixelFormat.h:187
@ YA8
8 bits gray, 8 bits alpha
Definition: IPixelFormat.h:144
@ XYZ12LE
packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as lit...
Definition: IPixelFormat.h:200
@ YUV444P12LE
planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
Definition: IPixelFormat.h:252
@ BGR555BE
packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), big-endian , X=unused/undefined
Definition: IPixelFormat.h:113
@ YUV420P14LE
planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
Definition: IPixelFormat.h:246
@ ABGR
packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
Definition: IPixelFormat.h:95
@ YUVA422P10LE
planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian)
Definition: IPixelFormat.h:188
@ RGB565LE
packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), little-endian
Definition: IPixelFormat.h:107
@ BGR0
packed BGR 8:8:8, 32bpp, BGRXBGRX... X=unused/undefined
Definition: IPixelFormat.h:241
@ Y210BE
packed YUV 4:2:2 like YUYV422, 20bpp, data in the high bits, big-endian
Definition: IPixelFormat.h:359
@ YUVA422P9BE
planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), big-endian
Definition: IPixelFormat.h:181
@ BAYER_GBRG16LE
bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, little-endian
Definition: IPixelFormat.h:269
@ BAYER_GBRG8
bayer, GBGB..(odd line), RGRG..(even line), 8-bit samples
Definition: IPixelFormat.h:263
@ GBRP10LE
planar GBR 4:4:4 30bpp, little-endian
Definition: IPixelFormat.h:174
@ GRAY12BE
Y , 12bpp, big-endian.
Definition: IPixelFormat.h:296
@ D3D11
Hardware surfaces for Direct3D11.
Definition: IPixelFormat.h:314
@ YUV420P10BE
planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
Definition: IPixelFormat.h:159
@ YUV444P16BE
planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
Definition: IPixelFormat.h:137
@ GBRAPF32BE
IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, big-endian.
Definition: IPixelFormat.h:321
@ NV24
planar YUV 4:4:4, 24bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (firs...
Definition: IPixelFormat.h:349
@ GBRAP10LE
planar GBR 4:4:4:4 40bpp, little-endian
Definition: IPixelFormat.h:294
@ GBRP16BE
planar GBR 4:4:4 48bpp, big-endian
Definition: IPixelFormat.h:175
@ YUV422P16LE
planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
Definition: IPixelFormat.h:134
@ YUV444P14LE
planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
Definition: IPixelFormat.h:254
@ YUVA420P10BE
planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian)
Definition: IPixelFormat.h:185
@ GBRAP10BE
planar GBR 4:4:4:4 40bpp, big-endian
Definition: IPixelFormat.h:293
@ YUVJ411P
planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor ...
Definition: IPixelFormat.h:259
@ FMT_0BGR
packed BGR 8:8:8, 32bpp, XBGRXBGR... X=unused/undefined
Definition: IPixelFormat.h:240
@ BGR565BE
packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), big-endian
Definition: IPixelFormat.h:111
@ YUV420P9BE
The following 12 formats have the disadvantage of needing 1 format for each bit depth.
Definition: IPixelFormat.h:157
@ GRAY14LE
Y , 14bpp, little-endian.
Definition: IPixelFormat.h:339
@ YUV444P9BE
planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
Definition: IPixelFormat.h:163
@ RGB555LE
packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), little-endian, X=unused/undefined
Definition: IPixelFormat.h:109
@ YUVA420P16LE
planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian)
Definition: IPixelFormat.h:192
@ MMAL
HW acceleration though MMAL, data[3] contains a pointer to the MMAL_BUFFER_HEADER_T structure.
Definition: IPixelFormat.h:228
@ YUVA444P
planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples)
Definition: IPixelFormat.h:178
@ YVYU422
packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb
Definition: IPixelFormat.h:211
@ GBRP10BE
planar GBR 4:4:4 30bpp, big-endian
Definition: IPixelFormat.h:173
@ YUVA444P10BE
planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian)
Definition: IPixelFormat.h:189
@ YUVA444P9LE
planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), little-endian
Definition: IPixelFormat.h:184
@ GBRP16LE
planar GBR 4:4:4 48bpp, little-endian
Definition: IPixelFormat.h:176
@ YUVA422P9LE
planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), little-endian
Definition: IPixelFormat.h:182
@ GBRP9BE
planar GBR 4:4:4 27bpp, big-endian
Definition: IPixelFormat.h:171
@ YUV444P14BE
planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
Definition: IPixelFormat.h:253
@ RGB555BE
packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), big-endian , X=unused/undefined
Definition: IPixelFormat.h:108
@ YUV440P12BE
planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
Definition: IPixelFormat.h:279
@ VDPAU
HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface.
Definition: IPixelFormat.h:198
@ RGB48BE
packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big...
Definition: IPixelFormat.h:103
@ YUV420P12LE
planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
Definition: IPixelFormat.h:244
@ YUVA444P12BE
planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), 12b alpha, big-endian
Definition: IPixelFormat.h:346
@ GBRAP16BE
planar GBRA 4:4:4:4 64bpp, big-endian
Definition: IPixelFormat.h:217
@ YUV440P10BE
planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
Definition: IPixelFormat.h:277
@ RGB4_BYTE
packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb)
Definition: IPixelFormat.h:89
@ AYUV64LE
packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), little-endian
Definition: IPixelFormat.h:280
@ YUV422P14LE
planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
Definition: IPixelFormat.h:250
@ BGR24
packed RGB 8:8:8, 24bpp, BGRBGR...
Definition: IPixelFormat.h:70
@ BGRA64BE
packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is st...
Definition: IPixelFormat.h:208
@ YUVA422P16LE
planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian)
Definition: IPixelFormat.h:194
@ NV42
as above, but U and V bytes are swapped
Definition: IPixelFormat.h:350
@ BGR555LE
packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), little-endian, X=unused/undefined
Definition: IPixelFormat.h:114
@ D3D11VA_VLD
HW decoding through Direct3D11 via old API, Picture.data[3] contains a ID3D11VideoDecoderOutputView p...
Definition: IPixelFormat.h:230
@ BAYER_RGGB16BE
bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, big-endian
Definition: IPixelFormat.h:268
@ YUV420P16LE
planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
Definition: IPixelFormat.h:132
@ YUVA420P16BE
planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian)
Definition: IPixelFormat.h:191
@ YA16BE
16 bits gray, 16 bits alpha (big-endian)
Definition: IPixelFormat.h:213
@ RGB48LE
packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as lit...
Definition: IPixelFormat.h:104
@ GBRAP
planar GBRA 4:4:4:4 32bpp
Definition: IPixelFormat.h:216
@ QSV
HW acceleration through QSV, data[3] contains a pointer to the mfxFrameSurface1 structure.
Definition: IPixelFormat.h:223
@ RGB0
packed RGB 8:8:8, 32bpp, RGBXRGBX... X=unused/undefined
Definition: IPixelFormat.h:239
@ GBRP9LE
planar GBR 4:4:4 27bpp, little-endian
Definition: IPixelFormat.h:172
@ MONOWHITE
Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb.
Definition: IPixelFormat.h:76
Parent of all Ferry objects – it mains reference counts in native code.
Definition: RefCounted.h:85
WARNING: Do not use logging in this class, and do not set any static file variables to values other t...