diff --git a/src/build/common.gypi b/src/build/common.gypi index b7e018154d..aa72ea5d57 100644 --- a/src/build/common.gypi +++ b/src/build/common.gypi @@ -64,10 +64,6 @@ 'libyuv_dir%': '<(DEPTH)/third_party/libyuv', 'conditions': [ - ['OS=="android"', { - # On Android, we always prefer fixed_point to reduce CPU usage. - 'prefer_fixed_point%': 1, - }], ['build_with_chromium==1', { # Exclude pulse audio on Chromium since its prerequisites don't require # pulse audio. @@ -139,6 +135,7 @@ ], }], ['target_arch=="arm"', { + 'prefer_fixed_point%': 1, 'defines': [ 'WEBRTC_ARCH_ARM', ], @@ -191,6 +188,8 @@ 'msvs_disabled_warnings!': [4189,], }], ['OS=="android"', { + # TODO(kma): Remove prefer_fixed_point for Android. + 'prefer_fixed_point%': 1, 'defines': [ 'WEBRTC_LINUX', 'WEBRTC_ANDROID', diff --git a/src/common_audio/signal_processing/signal_processing.gypi b/src/common_audio/signal_processing/signal_processing.gypi index 5bce3941a4..2edc808927 100644 --- a/src/common_audio/signal_processing/signal_processing.gypi +++ b/src/common_audio/signal_processing/signal_processing.gypi @@ -57,13 +57,23 @@ 'vector_scaling_operations.c', ], 'conditions': [ - ['OS=="android"', { + ['target_arch=="arm"', { 'sources': [ 'spl_sqrt_floor_arm.s', ], 'sources!': [ 'spl_sqrt_floor.c', ], + 'conditions': [ + ['armv7==1', { + 'sources': [ + 'filter_ar_fast_q12_armv7.s', + ], + 'sources!': [ + 'filter_ar_fast_q12.c', + ], + }], + ], }], ], }, # spl diff --git a/src/common_audio/signal_processing/signal_processing_unittest.cc b/src/common_audio/signal_processing/signal_processing_unittest.cc index 970889ff01..a7c69b2009 100644 --- a/src/common_audio/signal_processing/signal_processing_unittest.cc +++ b/src/common_audio/signal_processing/signal_processing_unittest.cc @@ -112,7 +112,7 @@ TEST_F(SplTest, MacroTest) { WEBRTC_SPL_WORD32_MAX)); EXPECT_EQ(1073741824, WEBRTC_SPL_MUL_16_32_RSFT16(WEBRTC_SPL_WORD16_MIN, WEBRTC_SPL_WORD32_MIN)); -#ifdef WEBRTC_ARCH_ARM_V7A +#ifdef WEBRTC_ARCH_ARM_V7 EXPECT_EQ(-1073741824, WEBRTC_SPL_MUL_16_32_RSFT16(WEBRTC_SPL_WORD16_MIN, WEBRTC_SPL_WORD32_MAX)); diff --git a/src/modules/audio_coding/codecs/isac/fix/source/isacfix.gypi b/src/modules/audio_coding/codecs/isac/fix/source/isacfix.gypi index 0255a73eff..739b2e1f32 100644 --- a/src/modules/audio_coding/codecs/isac/fix/source/isacfix.gypi +++ b/src/modules/audio_coding/codecs/isac/fix/source/isacfix.gypi @@ -72,7 +72,7 @@ 'WEBRTC_LINUX', ], }], - ['OS=="android"', { + ['target_arch=="arm" and armv7==1', { 'dependencies': [ 'isac_neon', ], 'sources': [ 'lattice_armv7.S', @@ -87,7 +87,7 @@ }, ], 'conditions': [ - ['OS=="android"', { + ['target_arch=="arm" and armv7==1', { 'targets': [ { 'target_name': 'isac_neon', diff --git a/src/modules/audio_coding/codecs/isac/fix/test/isacfix_unittest.cc b/src/modules/audio_coding/codecs/isac/fix/test/isacfix_unittest.cc index a4765937db..bef71e96f4 100644 --- a/src/modules/audio_coding/codecs/isac/fix/test/isacfix_unittest.cc +++ b/src/modules/audio_coding/codecs/isac/fix/test/isacfix_unittest.cc @@ -73,7 +73,7 @@ TEST_F(IsacUnitTest, HighpassFilterFixDec32Test) { const int kSamples = 20; int16_t in[kSamples]; int32_t state[2] = {12345, 987654}; -#ifdef WEBRTC_ARCH_ARM_V7A +#ifdef WEBRTC_ARCH_ARM_V7 int32_t out[kSamples] = {-1040, -1035, -22875, -1397, -27604, 20018, 7917, -1279, -8552, -14494, -7558, -23537, -27258, -30554, -32768, -3432, -32768, 25215, -27536, 22436}; diff --git a/src/modules/audio_processing/aecm/aecm.gypi b/src/modules/audio_processing/aecm/aecm.gypi index 42b1b7763b..4dfab51f1a 100644 --- a/src/modules/audio_processing/aecm/aecm.gypi +++ b/src/modules/audio_processing/aecm/aecm.gypi @@ -31,14 +31,14 @@ 'aecm_core.h', ], 'conditions': [ - ['OS=="android"', { + ['target_arch=="arm" and armv7==1', { 'dependencies': [ 'aecm_neon', ], }], ], }, ], 'conditions': [ - ['OS=="android"', { + ['target_arch=="arm" and armv7==1', { 'targets': [ { 'target_name': 'aecm_neon', diff --git a/src/modules/audio_processing/ns/ns.gypi b/src/modules/audio_processing/ns/ns.gypi index 16bc0dde76..940e33017f 100644 --- a/src/modules/audio_processing/ns/ns.gypi +++ b/src/modules/audio_processing/ns/ns.gypi @@ -55,14 +55,14 @@ 'nsx_core.h', ], 'conditions': [ - ['OS=="android"', { + ['target_arch=="arm" and armv7==1', { 'dependencies': [ 'ns_neon', ], }], ], }, ], 'conditions': [ - ['OS=="android"', { + ['target_arch=="arm" and armv7==1', { 'targets': [ { 'target_name': 'ns_neon',