Chromium Code Reviews| Index: webrtc/modules/video_processing/util/denoiser_filter.cc |
| diff --git a/webrtc/modules/video_processing/util/denoiser_filter.cc b/webrtc/modules/video_processing/util/denoiser_filter.cc |
| index 3e36077ea05c5e153c0d0a1ebb10bd59adb48dde..8fead6dd316a08c735eaa45fac578b9011279efb 100644 |
| --- a/webrtc/modules/video_processing/util/denoiser_filter.cc |
| +++ b/webrtc/modules/video_processing/util/denoiser_filter.cc |
| @@ -20,26 +20,30 @@ const int kMotionMagnitudeThreshold = 8 * 3; |
| const int kSumDiffThreshold = 16 * 16 * 2; |
| const int kSumDiffThresholdHigh = 600; |
| -DenoiserFilter* DenoiserFilter::Create() { |
| +DenoiserFilter* DenoiserFilter::Create(bool runtime_cpu_detection) { |
| DenoiserFilter* filter = NULL; |
| + if (runtime_cpu_detection) { |
| // If we know the minimum architecture at compile time, avoid CPU detection. |
| #if defined(WEBRTC_ARCH_X86_FAMILY) |
| - // x86 CPU detection required. |
| - if (WebRtc_GetCPUInfo(kSSE2)) { |
| - filter = new DenoiserFilterSSE2(); |
| - } else { |
| - filter = new DenoiserFilterC(); |
| - } |
| + // x86 CPU detection required. |
| + if (WebRtc_GetCPUInfo(kSSE2)) { |
| + filter = new DenoiserFilterSSE2(); |
| + } else { |
| + filter = new DenoiserFilterC(); |
| + } |
| #elif defined(WEBRTC_DETECT_NEON) |
| - if (WebRtc_GetCPUFeaturesARM() & kCPUFeatureNEON) { |
| - filter = new DenoiserFilterNEON(); |
| + if (WebRtc_GetCPUFeaturesARM() & kCPUFeatureNEON) { |
| + filter = new DenoiserFilterNEON(); |
| + } else { |
| + filter = new DenoiserFilterC(); |
| + } |
| +#else |
| + filter = new DenoiserFilterC(); |
| +#endif |
| } else { |
| filter = new DenoiserFilterC(); |
| } |
| -#else |
| - filter = new DenoiserFilterC(); |
| -#endif |
| return filter; |
|
tommi (sloooow) - chröme
2016/01/12 12:01:21
nit: first RTC_DCHECK(filter)?
jackychen_
2016/01/13 03:07:50
Done.
|
| } |