Commit 77de018f authored by stefano's avatar stefano

Make the pixel formats which were defined as macros:

PIX_FMT_ARGB
PIX_FMT_RGBA
PIX_FMT_ABGR
PIX_FMT_BGRA

defined as enum PixelFormat values, and viceversa make:
PIX_FMT_RGB32
PIX_FMT_RGB32_1
PIX_FMT_BGR32  
PIX_FMT_BGR32_1

defined as macros, also resort accordingly the enum PixelFormat
list.
Also make avcodec_get_pix_fmt() recognize the "rgb32" and "bgr32"
aliases, in order to make ffmpeg pass regressions test.

This change breaks ABI backward compatibility.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18163 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent f8dcc693
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
#define LIBAVCODEC_VERSION_MAJOR 52 #define LIBAVCODEC_VERSION_MAJOR 52
#define LIBAVCODEC_VERSION_MINOR 22 #define LIBAVCODEC_VERSION_MINOR 22
#define LIBAVCODEC_VERSION_MICRO 2 #define LIBAVCODEC_VERSION_MICRO 3
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \ LIBAVCODEC_VERSION_MINOR, \
......
...@@ -192,8 +192,8 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { ...@@ -192,8 +192,8 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = {
.depth = 8, .depth = 8,
.x_chroma_shift = 0, .y_chroma_shift = 0, .x_chroma_shift = 0, .y_chroma_shift = 0,
}, },
[PIX_FMT_RGB32] = { [PIX_FMT_ARGB] = {
.name = "rgb32", .name = "argb",
.nb_channels = 4, .is_alpha = 1, .nb_channels = 4, .is_alpha = 1,
.color_type = FF_COLOR_RGB, .color_type = FF_COLOR_RGB,
.pixel_type = FF_PIXEL_PACKED, .pixel_type = FF_PIXEL_PACKED,
...@@ -335,8 +335,8 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { ...@@ -335,8 +335,8 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = {
.depth = 8, .depth = 8,
.x_chroma_shift = 2, .y_chroma_shift = 0, .x_chroma_shift = 2, .y_chroma_shift = 0,
}, },
[PIX_FMT_BGR32] = { [PIX_FMT_ABGR] = {
.name = "bgr32", .name = "abgr",
.nb_channels = 4, .is_alpha = 1, .nb_channels = 4, .is_alpha = 1,
.color_type = FF_COLOR_RGB, .color_type = FF_COLOR_RGB,
.pixel_type = FF_PIXEL_PACKED, .pixel_type = FF_PIXEL_PACKED,
...@@ -440,16 +440,16 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { ...@@ -440,16 +440,16 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = {
.x_chroma_shift = 1, .y_chroma_shift = 1, .x_chroma_shift = 1, .y_chroma_shift = 1,
}, },
[PIX_FMT_BGR32_1] = { [PIX_FMT_BGRA] = {
.name = "bgr32_1", .name = "bgra",
.nb_channels = 4, .is_alpha = 1, .nb_channels = 4, .is_alpha = 1,
.color_type = FF_COLOR_RGB, .color_type = FF_COLOR_RGB,
.pixel_type = FF_PIXEL_PACKED, .pixel_type = FF_PIXEL_PACKED,
.depth = 8, .depth = 8,
.x_chroma_shift = 0, .y_chroma_shift = 0, .x_chroma_shift = 0, .y_chroma_shift = 0,
}, },
[PIX_FMT_RGB32_1] = { [PIX_FMT_RGBA] = {
.name = "rgb32_1", .name = "rgba",
.nb_channels = 4, .is_alpha = 1, .nb_channels = 4, .is_alpha = 1,
.color_type = FF_COLOR_RGB, .color_type = FF_COLOR_RGB,
.pixel_type = FF_PIXEL_PACKED, .pixel_type = FF_PIXEL_PACKED,
...@@ -507,8 +507,14 @@ static enum PixelFormat avcodec_get_pix_fmt_internal(const char *name) ...@@ -507,8 +507,14 @@ static enum PixelFormat avcodec_get_pix_fmt_internal(const char *name)
enum PixelFormat avcodec_get_pix_fmt(const char *name) enum PixelFormat avcodec_get_pix_fmt(const char *name)
{ {
enum PixelFormat pix_fmt = avcodec_get_pix_fmt_internal(name); enum PixelFormat pix_fmt;
if (!strcmp(name, "rgb32"))
name = X_NE("argb", "bgra");
else if (!strcmp(name, "bgr32"))
name = X_NE("abgr", "rgba");
pix_fmt = avcodec_get_pix_fmt_internal(name);
if (pix_fmt == PIX_FMT_NONE) { if (pix_fmt == PIX_FMT_NONE) {
char name2[32]; char name2[32];
snprintf(name2, sizeof(name2), "%s%s", name, X_NE("be", "le")); snprintf(name2, sizeof(name2), "%s%s", name, X_NE("be", "le"));
...@@ -624,10 +630,10 @@ int ff_fill_linesize(AVPicture *picture, enum PixelFormat pix_fmt, int width) ...@@ -624,10 +630,10 @@ int ff_fill_linesize(AVPicture *picture, enum PixelFormat pix_fmt, int width)
case PIX_FMT_BGR24: case PIX_FMT_BGR24:
picture->linesize[0] = width * 3; picture->linesize[0] = width * 3;
break; break;
case PIX_FMT_RGB32: case PIX_FMT_ARGB:
case PIX_FMT_BGR32: case PIX_FMT_ABGR:
case PIX_FMT_RGB32_1: case PIX_FMT_RGBA:
case PIX_FMT_BGR32_1: case PIX_FMT_BGRA:
picture->linesize[0] = width * 4; picture->linesize[0] = width * 4;
break; break;
case PIX_FMT_RGB48BE: case PIX_FMT_RGB48BE:
...@@ -716,10 +722,10 @@ int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, enum PixelFormat pix_fmt, ...@@ -716,10 +722,10 @@ int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, enum PixelFormat pix_fmt,
return size + 2 * size2; return size + 2 * size2;
case PIX_FMT_RGB24: case PIX_FMT_RGB24:
case PIX_FMT_BGR24: case PIX_FMT_BGR24:
case PIX_FMT_RGB32: case PIX_FMT_ARGB:
case PIX_FMT_BGR32: case PIX_FMT_ABGR:
case PIX_FMT_RGB32_1: case PIX_FMT_RGBA:
case PIX_FMT_BGR32_1: case PIX_FMT_BGRA:
case PIX_FMT_RGB48BE: case PIX_FMT_RGB48BE:
case PIX_FMT_RGB48LE: case PIX_FMT_RGB48LE:
case PIX_FMT_GRAY16BE: case PIX_FMT_GRAY16BE:
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
#define LIBAVUTIL_VERSION_MAJOR 50 #define LIBAVUTIL_VERSION_MAJOR 50
#define LIBAVUTIL_VERSION_MINOR 1 #define LIBAVUTIL_VERSION_MINOR 2
#define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
......
...@@ -63,7 +63,6 @@ enum PixelFormat { ...@@ -63,7 +63,6 @@ enum PixelFormat {
PIX_FMT_BGR24, ///< packed RGB 8:8:8, 24bpp, BGRBGR... PIX_FMT_BGR24, ///< packed RGB 8:8:8, 24bpp, BGRBGR...
PIX_FMT_YUV422P, ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples) PIX_FMT_YUV422P, ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
PIX_FMT_YUV444P, ///< planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples) PIX_FMT_YUV444P, ///< planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
PIX_FMT_RGB32, ///< packed RGB 8:8:8, 32bpp, (msb)8A 8R 8G 8B(lsb), in CPU endianness
PIX_FMT_YUV410P, ///< planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples) PIX_FMT_YUV410P, ///< planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples)
PIX_FMT_YUV411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) PIX_FMT_YUV411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)
PIX_FMT_GRAY8, ///< Y , 8bpp PIX_FMT_GRAY8, ///< Y , 8bpp
...@@ -77,7 +76,6 @@ enum PixelFormat { ...@@ -77,7 +76,6 @@ enum PixelFormat {
PIX_FMT_XVMC_MPEG2_IDCT, PIX_FMT_XVMC_MPEG2_IDCT,
PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3 PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3
PIX_FMT_BGR32, ///< packed RGB 8:8:8, 32bpp, (msb)8A 8B 8G 8R(lsb), in CPU endianness
PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb) PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb)
PIX_FMT_BGR4, ///< packed RGB 1:2:1, 4bpp, (msb)1B 2G 1R(lsb) PIX_FMT_BGR4, ///< packed RGB 1:2:1, 4bpp, (msb)1B 2G 1R(lsb)
PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb) PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb)
...@@ -87,8 +85,10 @@ enum PixelFormat { ...@@ -87,8 +85,10 @@ enum PixelFormat {
PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 for UV PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 for UV
PIX_FMT_NV21, ///< as above, but U and V bytes are swapped PIX_FMT_NV21, ///< as above, but U and V bytes are swapped
PIX_FMT_RGB32_1, ///< packed RGB 8:8:8, 32bpp, (msb)8R 8G 8B 8A(lsb), in CPU endianness PIX_FMT_ARGB, ///< packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
PIX_FMT_BGR32_1, ///< packed RGB 8:8:8, 32bpp, (msb)8B 8G 8R 8A(lsb), in CPU endianness PIX_FMT_RGBA, ///< packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
PIX_FMT_ABGR, ///< packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
PIX_FMT_BGRA, ///< packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian
PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian
...@@ -126,15 +126,15 @@ enum PixelFormat { ...@@ -126,15 +126,15 @@ enum PixelFormat {
#endif #endif
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
#define PIX_FMT_RGBA PIX_FMT_RGB32_1 #define PIX_FMT_RGB32 PIX_FMT_ARGB
#define PIX_FMT_BGRA PIX_FMT_BGR32_1 #define PIX_FMT_RGB32_1 PIX_FMT_RGBA
#define PIX_FMT_ARGB PIX_FMT_RGB32 #define PIX_FMT_BGR32 PIX_FMT_ABGR
#define PIX_FMT_ABGR PIX_FMT_BGR32 #define PIX_FMT_BGR32_1 PIX_FMT_BGRA
#else #else
#define PIX_FMT_RGBA PIX_FMT_BGR32 #define PIX_FMT_RGB32 PIX_FMT_BGRA
#define PIX_FMT_BGRA PIX_FMT_RGB32 #define PIX_FMT_RGB32_1 PIX_FMT_ABGR
#define PIX_FMT_ARGB PIX_FMT_BGR32_1 #define PIX_FMT_BGR32 PIX_FMT_RGBA
#define PIX_FMT_ABGR PIX_FMT_RGB32_1 #define PIX_FMT_BGR32_1 PIX_FMT_ARGB
#endif #endif
#define PIX_FMT_GRAY16 PIX_FMT_NE(GRAY16) #define PIX_FMT_GRAY16 PIX_FMT_NE(GRAY16)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment