From 0540242452ef06b1d35ed4843ac6a2355843a56d Mon Sep 17 00:00:00 2001 From: jackychen Date: Tue, 15 Mar 2016 10:57:28 -0700 Subject: [PATCH] Add more conditions for CPU detection in denoiser filter. Add WEBRTC_HAS_NEON and __SSE2__, otherwise, CPU detection fails in some cases. Review URL: https://codereview.webrtc.org/1784323005 Cr-Commit-Position: refs/heads/master@{#12001} --- webrtc/modules/video_processing/util/denoiser_filter.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/webrtc/modules/video_processing/util/denoiser_filter.cc b/webrtc/modules/video_processing/util/denoiser_filter.cc index 120f8f89fa..a9c6f005d9 100644 --- a/webrtc/modules/video_processing/util/denoiser_filter.cc +++ b/webrtc/modules/video_processing/util/denoiser_filter.cc @@ -28,12 +28,18 @@ std::unique_ptr DenoiserFilter::Create( if (runtime_cpu_detection) { // If we know the minimum architecture at compile time, avoid CPU detection. #if defined(WEBRTC_ARCH_X86_FAMILY) +#if defined(__SSE2__) + filter.reset(new DenoiserFilterSSE2()); +#else // x86 CPU detection required. if (WebRtc_GetCPUInfo(kSSE2)) { filter.reset(new DenoiserFilterSSE2()); } else { filter.reset(new DenoiserFilterC()); } +#endif +#elif defined(WEBRTC_HAS_NEON) + filter.reset(new DenoiserFilterNEON()); #elif defined(WEBRTC_DETECT_NEON) if (WebRtc_GetCPUFeaturesARM() & kCPUFeatureNEON) { filter.reset(new DenoiserFilterNEON());