summaryrefslogtreecommitdiffstats
path: root/media/base/yuv_convert.cc
diff options
context:
space:
mode:
Diffstat (limited to 'media/base/yuv_convert.cc')
-rw-r--r--media/base/yuv_convert.cc30
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