Use avconfig.h in pixfmt.h
[ffmpeg.git] / libavutil / pixfmt.h
index 0a761ee..a18da18 100644 (file)
@@ -29,6 +29,8 @@
  * header, so it should not be directly included in your projects.
  */
 
+#include "libavutil/avconfig.h"
+
 /**
  * Pixel format. Notes:
  *
@@ -116,26 +118,27 @@ enum PixelFormat {
     PIX_FMT_VAAPI_MOCO, ///< HW acceleration through VA API at motion compensation entry-point, Picture.data[3] contains a vaapi_render_state struct which contains macroblocks as well as various fields extracted from headers
     PIX_FMT_VAAPI_IDCT, ///< HW acceleration through VA API at IDCT entry-point, Picture.data[3] contains a vaapi_render_state struct which contains fields extracted from headers
     PIX_FMT_VAAPI_VLD,  ///< HW decoding through VA API, Picture.data[3] contains a vaapi_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
+
+    PIX_FMT_YUV420P16LE,  ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
+    PIX_FMT_YUV420P16BE,  ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
+    PIX_FMT_YUV422P16LE,  ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
+    PIX_FMT_YUV422P16BE,  ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
+    PIX_FMT_YUV444P16LE,  ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
+    PIX_FMT_YUV444P16BE,  ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
+    PIX_FMT_VDPAU_MPEG4,  ///< MPEG4 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
     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
 };
 
-#ifdef WORDS_BIGENDIAN
+#if AV_HAVE_BIGENDIAN
 #   define PIX_FMT_NE(be, le) PIX_FMT_##be
 #else
 #   define PIX_FMT_NE(be, le) PIX_FMT_##le
 #endif
 
-#ifdef WORDS_BIGENDIAN
-#define PIX_FMT_RGB32   PIX_FMT_ARGB
-#define PIX_FMT_RGB32_1 PIX_FMT_RGBA
-#define PIX_FMT_BGR32   PIX_FMT_ABGR
-#define PIX_FMT_BGR32_1 PIX_FMT_BGRA
-#else
-#define PIX_FMT_RGB32   PIX_FMT_BGRA
-#define PIX_FMT_RGB32_1 PIX_FMT_ABGR
-#define PIX_FMT_BGR32   PIX_FMT_RGBA
-#define PIX_FMT_BGR32_1 PIX_FMT_ARGB
-#endif
+#define PIX_FMT_RGB32   PIX_FMT_NE(ARGB, BGRA)
+#define PIX_FMT_RGB32_1 PIX_FMT_NE(RGBA, ABGR)
+#define PIX_FMT_BGR32   PIX_FMT_NE(ABGR, RGBA)
+#define PIX_FMT_BGR32_1 PIX_FMT_NE(BGRA, ARGB)
 
 #define PIX_FMT_GRAY16 PIX_FMT_NE(GRAY16BE, GRAY16LE)
 #define PIX_FMT_RGB48  PIX_FMT_NE(RGB48BE,  RGB48LE)
@@ -144,4 +147,8 @@ enum PixelFormat {
 #define PIX_FMT_BGR565 PIX_FMT_NE(BGR565BE, BGR565LE)
 #define PIX_FMT_BGR555 PIX_FMT_NE(BGR555BE, BGR555LE)
 
+#define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE)
+#define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
+#define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE)
+
 #endif /* AVUTIL_PIXFMT_H */