FFmpeg  1.2.4
pixfmt.h
Go to the documentation of this file.
1 /*
2  * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
3  *
4  * This file is part of FFmpeg.
5  *
6  * FFmpeg is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * FFmpeg 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 GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with FFmpeg; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  */
20 
21 #ifndef AVUTIL_PIXFMT_H
22 #define AVUTIL_PIXFMT_H
23 
30 #include "libavutil/avconfig.h"
31 #include "libavutil/version.h"
32 
33 #define AVPALETTE_SIZE 1024
34 #define AVPALETTE_COUNT 256
35 
95 
100 
113 
118 
123 
127 
136 
144 
145  //the following 10 formats have the disadvantage of needing 1 format for each bit depth, thus
146  //If you want to support multiple bit depths, then using AV_PIX_FMT_YUV420P16* with the bpp stored separately
147  //is better
161 
162 #ifdef AV_PIX_FMT_ABI_GIT_MASTER
167 #endif
175 
183 
202 
204 
205 #ifndef AV_PIX_FMT_ABI_GIT_MASTER
206  AV_PIX_FMT_RGBA64BE=0x123,
210 #endif
211  AV_PIX_FMT_0RGB=0x123+4,
217 
235 
236 #if FF_API_PIX_FMT
237 #include "old_pix_fmts.h"
238 #endif
239 };
240 
241 #if AV_HAVE_INCOMPATIBLE_FORK_ABI
242 #define AV_PIX_FMT_YUVA422P AV_PIX_FMT_YUVA422P_LIBAV
243 #define AV_PIX_FMT_YUVA444P AV_PIX_FMT_YUVA444P_LIBAV
244 #endif
245 
246 
247 #define AV_PIX_FMT_Y400A AV_PIX_FMT_GRAY8A
248 #define AV_PIX_FMT_GBR24P AV_PIX_FMT_GBRP
249 
250 #if AV_HAVE_BIGENDIAN
251 # define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##be
252 #else
253 # define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##le
254 #endif
255 
256 #define AV_PIX_FMT_RGB32 AV_PIX_FMT_NE(ARGB, BGRA)
257 #define AV_PIX_FMT_RGB32_1 AV_PIX_FMT_NE(RGBA, ABGR)
258 #define AV_PIX_FMT_BGR32 AV_PIX_FMT_NE(ABGR, RGBA)
259 #define AV_PIX_FMT_BGR32_1 AV_PIX_FMT_NE(BGRA, ARGB)
260 #define AV_PIX_FMT_0RGB32 AV_PIX_FMT_NE(0RGB, BGR0)
261 #define AV_PIX_FMT_0BGR32 AV_PIX_FMT_NE(0BGR, RGB0)
262 
263 #define AV_PIX_FMT_GRAY16 AV_PIX_FMT_NE(GRAY16BE, GRAY16LE)
264 #define AV_PIX_FMT_RGB48 AV_PIX_FMT_NE(RGB48BE, RGB48LE)
265 #define AV_PIX_FMT_RGB565 AV_PIX_FMT_NE(RGB565BE, RGB565LE)
266 #define AV_PIX_FMT_RGB555 AV_PIX_FMT_NE(RGB555BE, RGB555LE)
267 #define AV_PIX_FMT_RGB444 AV_PIX_FMT_NE(RGB444BE, RGB444LE)
268 #define AV_PIX_FMT_BGR48 AV_PIX_FMT_NE(BGR48BE, BGR48LE)
269 #define AV_PIX_FMT_BGR565 AV_PIX_FMT_NE(BGR565BE, BGR565LE)
270 #define AV_PIX_FMT_BGR555 AV_PIX_FMT_NE(BGR555BE, BGR555LE)
271 #define AV_PIX_FMT_BGR444 AV_PIX_FMT_NE(BGR444BE, BGR444LE)
272 
273 #define AV_PIX_FMT_YUV420P9 AV_PIX_FMT_NE(YUV420P9BE , YUV420P9LE)
274 #define AV_PIX_FMT_YUV422P9 AV_PIX_FMT_NE(YUV422P9BE , YUV422P9LE)
275 #define AV_PIX_FMT_YUV444P9 AV_PIX_FMT_NE(YUV444P9BE , YUV444P9LE)
276 #define AV_PIX_FMT_YUV420P10 AV_PIX_FMT_NE(YUV420P10BE, YUV420P10LE)
277 #define AV_PIX_FMT_YUV422P10 AV_PIX_FMT_NE(YUV422P10BE, YUV422P10LE)
278 #define AV_PIX_FMT_YUV444P10 AV_PIX_FMT_NE(YUV444P10BE, YUV444P10LE)
279 #define AV_PIX_FMT_YUV420P12 AV_PIX_FMT_NE(YUV420P12BE, YUV420P12LE)
280 #define AV_PIX_FMT_YUV422P12 AV_PIX_FMT_NE(YUV422P12BE, YUV422P12LE)
281 #define AV_PIX_FMT_YUV444P12 AV_PIX_FMT_NE(YUV444P12BE, YUV444P12LE)
282 #define AV_PIX_FMT_YUV420P14 AV_PIX_FMT_NE(YUV420P14BE, YUV420P14LE)
283 #define AV_PIX_FMT_YUV422P14 AV_PIX_FMT_NE(YUV422P14BE, YUV422P14LE)
284 #define AV_PIX_FMT_YUV444P14 AV_PIX_FMT_NE(YUV444P14BE, YUV444P14LE)
285 #define AV_PIX_FMT_YUV420P16 AV_PIX_FMT_NE(YUV420P16BE, YUV420P16LE)
286 #define AV_PIX_FMT_YUV422P16 AV_PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
287 #define AV_PIX_FMT_YUV444P16 AV_PIX_FMT_NE(YUV444P16BE, YUV444P16LE)
288 
289 #define AV_PIX_FMT_RGBA64 AV_PIX_FMT_NE(RGBA64BE, RGBA64LE)
290 #define AV_PIX_FMT_BGRA64 AV_PIX_FMT_NE(BGRA64BE, BGRA64LE)
291 #define AV_PIX_FMT_GBRP9 AV_PIX_FMT_NE(GBRP9BE , GBRP9LE)
292 #define AV_PIX_FMT_GBRP10 AV_PIX_FMT_NE(GBRP10BE, GBRP10LE)
293 #define AV_PIX_FMT_GBRP12 AV_PIX_FMT_NE(GBRP12BE, GBRP12LE)
294 #define AV_PIX_FMT_GBRP14 AV_PIX_FMT_NE(GBRP14BE, GBRP14LE)
295 #define AV_PIX_FMT_GBRP16 AV_PIX_FMT_NE(GBRP16BE, GBRP16LE)
296 
297 #define AV_PIX_FMT_YUVA420P9 AV_PIX_FMT_NE(YUVA420P9BE , YUVA420P9LE)
298 #define AV_PIX_FMT_YUVA422P9 AV_PIX_FMT_NE(YUVA422P9BE , YUVA422P9LE)
299 #define AV_PIX_FMT_YUVA444P9 AV_PIX_FMT_NE(YUVA444P9BE , YUVA444P9LE)
300 #define AV_PIX_FMT_YUVA420P10 AV_PIX_FMT_NE(YUVA420P10BE, YUVA420P10LE)
301 #define AV_PIX_FMT_YUVA422P10 AV_PIX_FMT_NE(YUVA422P10BE, YUVA422P10LE)
302 #define AV_PIX_FMT_YUVA444P10 AV_PIX_FMT_NE(YUVA444P10BE, YUVA444P10LE)
303 #define AV_PIX_FMT_YUVA420P16 AV_PIX_FMT_NE(YUVA420P16BE, YUVA420P16LE)
304 #define AV_PIX_FMT_YUVA422P16 AV_PIX_FMT_NE(YUVA422P16BE, YUVA422P16LE)
305 #define AV_PIX_FMT_YUVA444P16 AV_PIX_FMT_NE(YUVA444P16BE, YUVA444P16LE)
306 
307 #if FF_API_PIX_FMT
308 #define PixelFormat AVPixelFormat
309 
310 #define PIX_FMT_Y400A AV_PIX_FMT_Y400A
311 #define PIX_FMT_GBR24P AV_PIX_FMT_GBR24P
312 
313 #define PIX_FMT_NE(be, le) AV_PIX_FMT_NE(be, le)
314 
315 #define PIX_FMT_RGB32 AV_PIX_FMT_RGB32
316 #define PIX_FMT_RGB32_1 AV_PIX_FMT_RGB32_1
317 #define PIX_FMT_BGR32 AV_PIX_FMT_BGR32
318 #define PIX_FMT_BGR32_1 AV_PIX_FMT_BGR32_1
319 #define PIX_FMT_0RGB32 AV_PIX_FMT_0RGB32
320 #define PIX_FMT_0BGR32 AV_PIX_FMT_0BGR32
321 
322 #define PIX_FMT_GRAY16 AV_PIX_FMT_GRAY16
323 #define PIX_FMT_RGB48 AV_PIX_FMT_RGB48
324 #define PIX_FMT_RGB565 AV_PIX_FMT_RGB565
325 #define PIX_FMT_RGB555 AV_PIX_FMT_RGB555
326 #define PIX_FMT_RGB444 AV_PIX_FMT_RGB444
327 #define PIX_FMT_BGR48 AV_PIX_FMT_BGR48
328 #define PIX_FMT_BGR565 AV_PIX_FMT_BGR565
329 #define PIX_FMT_BGR555 AV_PIX_FMT_BGR555
330 #define PIX_FMT_BGR444 AV_PIX_FMT_BGR444
331 
332 #define PIX_FMT_YUV420P9 AV_PIX_FMT_YUV420P9
333 #define PIX_FMT_YUV422P9 AV_PIX_FMT_YUV422P9
334 #define PIX_FMT_YUV444P9 AV_PIX_FMT_YUV444P9
335 #define PIX_FMT_YUV420P10 AV_PIX_FMT_YUV420P10
336 #define PIX_FMT_YUV422P10 AV_PIX_FMT_YUV422P10
337 #define PIX_FMT_YUV444P10 AV_PIX_FMT_YUV444P10
338 #define PIX_FMT_YUV420P12 AV_PIX_FMT_YUV420P12
339 #define PIX_FMT_YUV422P12 AV_PIX_FMT_YUV422P12
340 #define PIX_FMT_YUV444P12 AV_PIX_FMT_YUV444P12
341 #define PIX_FMT_YUV420P14 AV_PIX_FMT_YUV420P14
342 #define PIX_FMT_YUV422P14 AV_PIX_FMT_YUV422P14
343 #define PIX_FMT_YUV444P14 AV_PIX_FMT_YUV444P14
344 #define PIX_FMT_YUV420P16 AV_PIX_FMT_YUV420P16
345 #define PIX_FMT_YUV422P16 AV_PIX_FMT_YUV422P16
346 #define PIX_FMT_YUV444P16 AV_PIX_FMT_YUV444P16
347 
348 #define PIX_FMT_RGBA64 AV_PIX_FMT_RGBA64
349 #define PIX_FMT_BGRA64 AV_PIX_FMT_BGRA64
350 #define PIX_FMT_GBRP9 AV_PIX_FMT_GBRP9
351 #define PIX_FMT_GBRP10 AV_PIX_FMT_GBRP10
352 #define PIX_FMT_GBRP12 AV_PIX_FMT_GBRP12
353 #define PIX_FMT_GBRP14 AV_PIX_FMT_GBRP14
354 #define PIX_FMT_GBRP16 AV_PIX_FMT_GBRP16
355 #endif
356 
357 #endif /* AVUTIL_PIXFMT_H */