diff options
Diffstat (limited to 'media/base/yuv_convert.cc')
-rw-r--r-- | media/base/yuv_convert.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/media/base/yuv_convert.cc b/media/base/yuv_convert.cc index 85b0699..1d09a24 100644 --- a/media/base/yuv_convert.cc +++ b/media/base/yuv_convert.cc @@ -603,4 +603,34 @@ void ConvertYUVToRGB32(const uint8* yplane, #endif } +void ConvertYUVAToARGB(const uint8* yplane, + const uint8* uplane, + const uint8* vplane, + const uint8* aplane, + uint8* rgbframe, + int width, + int height, + int ystride, + int uvstride, + int astride, + int rgbstride, + YUVType yuv_type) { +#if defined(ARCH_CPU_ARM_FAMILY) || defined(ARCH_CPU_MIPS_FAMILY) + ConvertYUVAToARGB_C(yplane, uplane, vplane, aplane, rgbframe, + width, height, ystride, uvstride, astride, rgbstride, + yuv_type); +#else + static ConvertYUVAToARGBProc convert_proc = NULL; + if (!convert_proc) { + base::CPU cpu; + if (cpu.has_mmx()) + convert_proc = &ConvertYUVAToARGB_MMX; + else + convert_proc = &ConvertYUVAToARGB_C; + } + convert_proc(yplane, uplane, vplane, aplane, rgbframe, + width, height, ystride, uvstride, astride, rgbstride, yuv_type); +#endif +} + } // namespace media |