From 61e59cd92c779a4684ebfa554feacc0a4e8d3c78 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 27 Dec 2012 00:58:45 +0100 Subject: imgfmt: add more ffmpeg pixel formats Most of these probably don't have much actual use, but at least allow images of these formats to be handed to swscale, should any decoder output them. --- video/img_format.h | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) (limited to 'video/img_format.h') diff --git a/video/img_format.h b/video/img_format.h index 2c99c8363e..6512cbf244 100644 --- a/video/img_format.h +++ b/video/img_format.h @@ -129,13 +129,39 @@ enum mp_imgfmt { IMGFMT_420P9_BE, // Planar YUV with alpha (4th plane) + IMGFMT_444AP, + IMGFMT_422AP, IMGFMT_420AP, + IMGFMT_444AP16_LE, + IMGFMT_444AP16_BE, + IMGFMT_444AP10_LE, + IMGFMT_444AP10_BE, + IMGFMT_444AP9_LE, + IMGFMT_444AP9_BE, + + IMGFMT_422AP16_LE, + IMGFMT_422AP16_BE, + IMGFMT_422AP10_LE, + IMGFMT_422AP10_BE, + IMGFMT_422AP9_LE, + IMGFMT_422AP9_BE, + + IMGFMT_420AP16_LE, + IMGFMT_420AP16_BE, + IMGFMT_420AP10_LE, + IMGFMT_420AP10_BE, + IMGFMT_420AP9_LE, + IMGFMT_420AP9_BE, + // Gray IMGFMT_Y8, IMGFMT_Y16_LE, IMGFMT_Y16_BE, + // Gray with alpha (packed) + IMGFMT_YA8, + // Packed YUV formats (components are byte-accessed) IMGFMT_YUYV, // Y0 U Y1 V IMGFMT_UYVY, // U Y0 V Y1 @@ -148,14 +174,21 @@ enum mp_imgfmt { // Byte accessed (low address to high address) IMGFMT_ARGB, + IMGFMT_0RGB, IMGFMT_BGRA, IMGFMT_BGR0, IMGFMT_ABGR, + IMGFMT_0BGR, IMGFMT_RGBA, + IMGFMT_RGB0, IMGFMT_BGR24, IMGFMT_RGB24, IMGFMT_RGB48_LE, IMGFMT_RGB48_BE, + IMGFMT_RGBA64_LE, + IMGFMT_RGBA64_BE, + IMGFMT_BGRA64_LE, + IMGFMT_BGRA64_BE, // Accessed with bit-shifts (components ordered from LSB to MSB) IMGFMT_RGB8, // r3 g3 b2 @@ -184,6 +217,16 @@ enum mp_imgfmt { // Planar RGB (planes are shuffled: plane 0 is G, etc.) IMGFMT_GBRP, + IMGFMT_GBRP9_LE, + IMGFMT_GBRP9_BE, + IMGFMT_GBRP10_LE, + IMGFMT_GBRP10_BE, + IMGFMT_GBRP12_LE, + IMGFMT_GBRP12_BE, + IMGFMT_GBRP14_LE, + IMGFMT_GBRP14_BE, + IMGFMT_GBRP16_LE, + IMGFMT_GBRP16_BE, // Hardware acclerated formats. Plane data points to special data // structures, instead of pixel data. @@ -218,6 +261,8 @@ enum mp_imgfmt { IMGFMT_BGR15 = MP_SELECT_LE_BE(IMGFMT_BGR15_LE, IMGFMT_BGR15_BE), IMGFMT_BGR16 = MP_SELECT_LE_BE(IMGFMT_BGR16_LE, IMGFMT_BGR16_BE), IMGFMT_RGB48 = MP_SELECT_LE_BE(IMGFMT_RGB48_LE, IMGFMT_RGB48_BE), + IMGFMT_RGBA64 = MP_SELECT_LE_BE(IMGFMT_RGBA64_LE, IMGFMT_RGBA64_BE), + IMGFMT_BGRA64 = MP_SELECT_LE_BE(IMGFMT_BGRA64_LE, IMGFMT_BGRA64_BE), IMGFMT_444P16 = MP_SELECT_LE_BE(IMGFMT_444P16_LE, IMGFMT_444P16_BE), IMGFMT_444P14 = MP_SELECT_LE_BE(IMGFMT_444P14_LE, IMGFMT_444P14_BE), @@ -237,7 +282,25 @@ enum mp_imgfmt { IMGFMT_420P10 = MP_SELECT_LE_BE(IMGFMT_420P10_LE, IMGFMT_420P10_BE), IMGFMT_420P9 = MP_SELECT_LE_BE(IMGFMT_420P9_LE, IMGFMT_420P9_BE), + IMGFMT_444AP16 = MP_SELECT_LE_BE(IMGFMT_444AP16_LE, IMGFMT_444AP16_BE), + IMGFMT_444AP10 = MP_SELECT_LE_BE(IMGFMT_444AP10_LE, IMGFMT_444AP10_BE), + IMGFMT_444AP9 = MP_SELECT_LE_BE(IMGFMT_444AP9_LE, IMGFMT_444AP9_BE), + + IMGFMT_422AP16 = MP_SELECT_LE_BE(IMGFMT_422AP16_LE, IMGFMT_422AP16_BE), + IMGFMT_422AP10 = MP_SELECT_LE_BE(IMGFMT_422AP10_LE, IMGFMT_422AP10_BE), + IMGFMT_422AP9 = MP_SELECT_LE_BE(IMGFMT_422AP9_LE, IMGFMT_422AP9_BE), + + IMGFMT_420AP16 = MP_SELECT_LE_BE(IMGFMT_420AP16_LE, IMGFMT_420AP16_BE), + IMGFMT_420AP10 = MP_SELECT_LE_BE(IMGFMT_420AP10_LE, IMGFMT_420AP10_BE), + IMGFMT_420AP9 = MP_SELECT_LE_BE(IMGFMT_420AP9_LE, IMGFMT_420AP9_BE), + IMGFMT_Y16 = MP_SELECT_LE_BE(IMGFMT_Y16_LE, IMGFMT_Y16_BE), + + IMGFMT_GBRP9 = MP_SELECT_LE_BE(IMGFMT_GBRP9_LE, IMGFMT_GBRP9_BE), + IMGFMT_GBRP10 = MP_SELECT_LE_BE(IMGFMT_GBRP10_LE, IMGFMT_GBRP10_BE), + IMGFMT_GBRP12 = MP_SELECT_LE_BE(IMGFMT_GBRP12_LE, IMGFMT_GBRP12_BE), + IMGFMT_GBRP14 = MP_SELECT_LE_BE(IMGFMT_GBRP14_LE, IMGFMT_GBRP14_BE), + IMGFMT_GBRP16 = MP_SELECT_LE_BE(IMGFMT_GBRP16_LE, IMGFMT_GBRP16_BE), }; static inline bool IMGFMT_IS_RGB(unsigned int fmt) -- cgit v1.2.3