The WebRtc source is cloned from the repo: https://webrtc.googlesource.com/src dated Apr 21 2021 license: third_party/webrtc_aec3/LICENSE The abseil's source in src/absl is not part of WebRtc and taken separately from: https://github.com/abseil/abseil-cpp dated Apr 20 2021 abseil's license: src/absl/LICENSE src/third_party's source is obtained from: * rnnoise https://chromium.googlesource.com/chromium/src/+/HEAD/third_party/rnnoise dated Apr 30 2021 license: src/third_party/rnnoise/COPYING * pffft https://bitbucket.org/jpommier/pffft/src/master/ dated Apr 30 2021 license: src/third_party/pffft/README.txt Local changes: 1. Undeclared PR_SET_NAME on Android. diff --git a/third_party/webrtc_aec3/src/rtc_base/platform_thread_types.cc b/third_party/webrtc_aec3/src/rtc_base/platform_thread_types.cc index b0243b41d..fc7a09000 100644 --- a/third_party/webrtc_aec3/src/rtc_base/platform_thread_types.cc +++ b/third_party/webrtc_aec3/src/rtc_base/platform_thread_types.cc @@ -105,7 +105,7 @@ void SetCurrentThreadName(const char* name) { } __except (EXCEPTION_EXECUTE_HANDLER) { // NOLINT } #pragma warning(pop) -#elif defined(WEBRTC_LINUX) || defined(WEBRTC_ANDROID) +#elif defined(WEBRTC_LINUX) // || defined(WEBRTC_ANDROID) prctl(PR_SET_NAME, reinterpret_cast(name)); // NOLINT #elif defined(WEBRTC_MAC) || defined(WEBRTC_IOS) pthread_setname_np(name); 2. Error: 'unique_ptr' is not a member of 'std' on Linux. diff --git a/third_party/webrtc_aec3/src/modules/audio_processing/aec3/reverb_model_estimator.h b/third_party/webrtc_aec3/src/modules/audio_processing/aec3/reverb_model_estimator.h index 3b9971aba..e4e954067 100644 --- a/third_party/webrtc_aec3/src/modules/audio_processing/aec3/reverb_model_estimator.h +++ b/third_party/webrtc_aec3/src/modules/audio_processing/aec3/reverb_model_estimator.h @@ -12,6 +12,7 @@ #define MODULES_AUDIO_PROCESSING_AEC3_REVERB_MODEL_ESTIMATOR_H_ #include +#include #include 3. Visual Studio will choose one implementation from the source code with the same file name. Rename these files: - third_party/webrtc_aec3/src/common_audio/signal_processing/{splitting_filter.c => splitting_filter2.c} - third_party/webrtc_aec3/src/modules/audio_processing/agc2/rnn_vad/{vector_math_avx2.cc => rnn_vector_math_avx2.cc} - third_party/webrtc_aec3/src/system_wrappers/source/{cpu_features.cc => cpu_features2.cc} 4. error C2011: 'sockaddr': 'struct' type redefinition diff --git a/third_party/webrtc_aec3/src/rtc_base/logging.cc b/third_party/webrtc_aec3/src/rtc_base/logging.cc index a333d8397..e0e669b5e 100644 --- a/third_party/webrtc_aec3/src/rtc_base/logging.cc +++ b/third_party/webrtc_aec3/src/rtc_base/logging.cc @@ -15,6 +15,7 @@ #if RTC_LOG_ENABLED() #if defined(WEBRTC_WIN) +#include 5. ARM64 support build for Visual Studio. diff --git a/third_party/webrtc_aec3/src/third_party/pffft/src/pffft.c b/third_party/webrtc_aec3/src/third_party/pffft/src/pffft.c index d76d35167..2d8b1037f 100644 --- a/third_party/webrtc_aec3/src/third_party/pffft/src/pffft.c +++ b/third_party/webrtc_aec3/src/third_party/pffft/src/pffft.c @@ -148,7 +148,7 @@ typedef __m128 v4sf; /* ARM NEON support macros */ -#elif !defined(PFFFT_SIMD_DISABLE) && (defined(__arm__) || defined(__aarch64__) || defined(__arm64__)) +#elif !defined(PFFFT_SIMD_DISABLE) && (defined(__arm__) || defined(__aarch64__) || defined(__arm64__) || defined(_M_ARM64)) # include typedef float32x4_t v4sf; # define SIMD_SZ 4