Added utility function colorspace_to_pixfmt().

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34926 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2010-01-07 01:10:28 +00:00
parent ead6198972
commit 2a0cb284c4
2 changed files with 67 additions and 18 deletions
@@ -248,6 +248,54 @@ pixfmt_to_colorspace(int p)
} }
PixelFormat
colorspace_to_pixfmt(color_space format)
{
switch(format) {
default:
case B_NO_COLOR_SPACE:
return PIX_FMT_NONE;
// NOTE: See pixfmt_to_colorspace() for what these are.
case B_YUV420:
return PIX_FMT_YUV420P;
case B_YUV422:
return PIX_FMT_YUV422P;
case B_RGB24_BIG:
return PIX_FMT_RGB24;
case B_RGB24:
return PIX_FMT_BGR24;
case B_YUV444:
return PIX_FMT_YUV444P;
case B_RGBA32_BIG:
case B_RGB32_BIG:
return PIX_FMT_BGR32;
case B_YUV9:
return PIX_FMT_YUV410P;
case B_YUV12:
return PIX_FMT_YUV411P;
// TODO: YCbCr color spaces! These are not the same as YUV!
case B_RGB16_BIG:
return PIX_FMT_RGB565;
case B_RGB15_BIG:
return PIX_FMT_RGB555;
case B_GRAY8:
return PIX_FMT_GRAY8;
case B_GRAY1:
return PIX_FMT_MONOBLACK;
case B_CMAP8:
return PIX_FMT_PAL8;
case B_RGBA32:
case B_RGB32:
return PIX_FMT_RGB32;
case B_RGB16:
return PIX_FMT_BGR565;
case B_RGB15:
return PIX_FMT_BGR555;
}
}
#define BEGIN_TAG "\033[31m" #define BEGIN_TAG "\033[31m"
#define END_TAG "\033[0m" #define END_TAG "\033[0m"
+3 -2
View File
@@ -34,9 +34,10 @@ typedef void (*gfx_convert_func) (AVFrame *in, AVFrame *out, int width, int heig
// the Media Kit sides. // the Media Kit sides.
gfx_convert_func resolve_colorspace(color_space cs, PixelFormat pixelFormat); gfx_convert_func resolve_colorspace(color_space cs, PixelFormat pixelFormat);
const char *pixfmt_to_string(int p); const char *pixfmt_to_string(int format);
color_space pixfmt_to_colorspace(int p); color_space pixfmt_to_colorspace(int format);
PixelFormat colorspace_to_pixfmt(color_space format);
void dump_ffframe(AVFrame *frame, const char *name); void dump_ffframe(AVFrame *frame, const char *name);