From b14a2381f8882f21369bd4680dc17ae7db81e886 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 28 Nov 2011 02:44:05 +0100 Subject: [PATCH] pixfmt: Add 32bit rgb without alpha formats Signed-off-by: Michael Niedermayer --- libavutil/pixdesc.c | 50 +++++++++++++++++++++++++++++++++++++++++++++ libavutil/pixfmt.h | 6 ++++++ 2 files changed, 56 insertions(+) diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 1d3cfdfedc..b89b11e0a2 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -464,6 +464,56 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { }, .flags = PIX_FMT_RGB, }, + [PIX_FMT_0RGB] = { + .name = "0rgb", + .nb_components= 3, + .log2_chroma_w= 0, + .log2_chroma_h= 0, + .comp = { + {0,3,2,0,7}, /* R */ + {0,3,3,0,7}, /* G */ + {0,3,4,0,7}, /* B */ + }, + .flags = PIX_FMT_RGB, + }, + [PIX_FMT_RGB0] = { + .name = "rgb0", + .nb_components= 3, + .log2_chroma_w= 0, + .log2_chroma_h= 0, + .comp = { + {0,3,1,0,7}, /* R */ + {0,3,2,0,7}, /* G */ + {0,3,3,0,7}, /* B */ + {0,3,4,0,7}, /* A */ + }, + .flags = PIX_FMT_RGB, + }, + [PIX_FMT_0BGR] = { + .name = "0bgr", + .nb_components= 3, + .log2_chroma_w= 0, + .log2_chroma_h= 0, + .comp = { + {0,3,2,0,7}, /* B */ + {0,3,3,0,7}, /* G */ + {0,3,4,0,7}, /* R */ + }, + .flags = PIX_FMT_RGB, + }, + [PIX_FMT_BGR0] = { + .name = "bgr0", + .nb_components= 3, + .log2_chroma_w= 0, + .log2_chroma_h= 0, + .comp = { + {0,3,1,0,7}, /* B */ + {0,3,2,0,7}, /* G */ + {0,3,3,0,7}, /* R */ + {0,3,4,0,7}, /* A */ + }, + .flags = PIX_FMT_RGB, + }, [PIX_FMT_GRAY16BE] = { .name = "gray16be", .nb_components= 1, diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h index 2930a9b681..f0d9c019af 100644 --- a/libavutil/pixfmt.h +++ b/libavutil/pixfmt.h @@ -175,6 +175,10 @@ enum PixelFormat { PIX_FMT_BGRA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian PIX_FMT_BGRA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian #endif + PIX_FMT_0RGB=0x123+4, ///< packed RGB 8:8:8, 32bpp, 0RGB0RGB... + PIX_FMT_RGB0, ///< packed RGB 8:8:8, 32bpp, RGB0RGB0... + PIX_FMT_0BGR, ///< packed BGR 8:8:8, 32bpp, 0BGR0BGR... + PIX_FMT_BGR0, ///< packed BGR 8:8:8, 32bpp, BGR0BGR0... 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 }; @@ -191,6 +195,8 @@ enum PixelFormat { #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_0RGB32 PIX_FMT_NE(0RGB, BGR0) +#define PIX_FMT_0BGR32 PIX_FMT_NE(0BGR, RGB0) #define PIX_FMT_GRAY16 PIX_FMT_NE(GRAY16BE, GRAY16LE) #define PIX_FMT_RGB48 PIX_FMT_NE(RGB48BE, RGB48LE)