Index: media/base/yuv_convert.cc |
diff --git a/media/base/yuv_convert.cc b/media/base/yuv_convert.cc |
index f9a6076830acc4d4a3393a3532c2921298f09f58..094fe79410cd834ffb2b078cd99b0098e2d8814e 100644 |
--- a/media/base/yuv_convert.cc |
+++ b/media/base/yuv_convert.cc |
@@ -17,10 +17,10 @@ |
#include "media/base/yuv_convert.h" |
+#include "base/cpu.h" |
#include "base/logging.h" |
#include "base/memory/scoped_ptr.h" |
#include "build/build_config.h" |
-#include "media/base/cpu_features.h" |
#include "media/base/simd/convert_rgb_to_yuv.h" |
#include "media/base/simd/convert_yuv_to_rgb.h" |
#include "media/base/simd/filter_yuv.h" |
@@ -37,9 +37,10 @@ namespace media { |
static FilterYUVRowsProc ChooseFilterYUVRowsProc() { |
#if defined(ARCH_CPU_X86_FAMILY) |
- if (hasSSE2()) |
+ base::CPU cpu; |
+ if (cpu.has_sse2()) |
return &FilterYUVRows_SSE2; |
- if (hasMMX()) |
+ if (cpu.has_mmx()) |
return &FilterYUVRows_MMX; |
#endif |
return &FilterYUVRows_C; |
@@ -47,9 +48,10 @@ static FilterYUVRowsProc ChooseFilterYUVRowsProc() { |
static ConvertYUVToRGB32RowProc ChooseConvertYUVToRGB32RowProc() { |
#if defined(ARCH_CPU_X86_FAMILY) |
- if (hasSSE()) |
+ base::CPU cpu; |
+ if (cpu.has_sse()) |
return &ConvertYUVToRGB32Row_SSE; |
- if (hasMMX()) |
+ if (cpu.has_mmx()) |
return &ConvertYUVToRGB32Row_MMX; |
#endif |
return &ConvertYUVToRGB32Row_C; |
@@ -60,10 +62,11 @@ static ScaleYUVToRGB32RowProc ChooseScaleYUVToRGB32RowProc() { |
// Use 64-bits version if possible. |
return &ScaleYUVToRGB32Row_SSE2_X64; |
#elif defined(ARCH_CPU_X86_FAMILY) |
+ base::CPU cpu; |
// Choose the best one on 32-bits system. |
- if (hasSSE()) |
+ if (cpu.has_sse()) |
return &ScaleYUVToRGB32Row_SSE; |
- if (hasMMX()) |
+ if (cpu.has_mmx()) |
return &ScaleYUVToRGB32Row_MMX; |
#endif // defined(ARCH_CPU_X86_64) |
return &ScaleYUVToRGB32Row_C; |
@@ -74,10 +77,11 @@ static ScaleYUVToRGB32RowProc ChooseLinearScaleYUVToRGB32RowProc() { |
// Use 64-bits version if possible. |
return &LinearScaleYUVToRGB32Row_MMX_X64; |
#elif defined(ARCH_CPU_X86_FAMILY) |
+ base::CPU cpu; |
// 32-bits system. |
- if (hasSSE()) |
+ if (cpu.has_sse()) |
return &LinearScaleYUVToRGB32Row_SSE; |
- if (hasMMX()) |
+ if (cpu.has_mmx()) |
return &LinearScaleYUVToRGB32Row_MMX; |
#endif // defined(ARCH_CPU_X86_64) |
return &LinearScaleYUVToRGB32Row_C; |
@@ -89,7 +93,8 @@ void EmptyRegisterState() { |
static bool checked = false; |
static bool has_mmx = false; |
if (!checked) { |
- has_mmx = hasMMX(); |
+ base::CPU cpu; |
+ has_mmx = cpu.has_mmx(); |
checked = true; |
} |
if (has_mmx) |
@@ -445,7 +450,8 @@ void ConvertRGB32ToYUV(const uint8* rgbframe, |
#else |
// TODO(hclam): Switch to SSSE3 version when the cyan problem is solved. |
// See: crbug.com/100462 |
- if (hasSSE2()) |
+ base::CPU cpu; |
+ if (cpu.has_sse2()) |
convert_proc = &ConvertRGB32ToYUV_SSE2; |
else |
convert_proc = &ConvertRGB32ToYUV_C; |
@@ -472,7 +478,8 @@ void ConvertRGB24ToYUV(const uint8* rgbframe, |
static void (*convert_proc)(const uint8*, uint8*, uint8*, uint8*, |
int, int, int, int, int) = NULL; |
if (!convert_proc) { |
- if (hasSSSE3()) |
+ base::CPU cpu; |
+ if (cpu.has_ssse3()) |
convert_proc = &ConvertRGB24ToYUV_SSSE3; |
else |
convert_proc = &ConvertRGB24ToYUV_C; |
@@ -541,9 +548,10 @@ void ConvertYUVToRGB32(const uint8* yplane, |
#else |
static ConvertYUVToRGB32Proc convert_proc = NULL; |
if (!convert_proc) { |
- if (hasSSE()) |
+ base::CPU cpu; |
+ if (cpu.has_sse()) |
convert_proc = &ConvertYUVToRGB32_SSE; |
- else if (hasMMX()) |
+ else if (cpu.has_mmx()) |
convert_proc = &ConvertYUVToRGB32_MMX; |
else |
convert_proc = &ConvertYUVToRGB32_C; |