diff --git a/api/audio/audio_processing.h b/api/audio/audio_processing.h index b7882133ff..c379bec7d5 100644 --- a/api/audio/audio_processing.h +++ b/api/audio/audio_processing.h @@ -11,18 +11,11 @@ #ifndef API_AUDIO_AUDIO_PROCESSING_H_ #define API_AUDIO_AUDIO_PROCESSING_H_ -// MSVC++ requires this to be set before any other includes to get M_PI. -#ifndef _USE_MATH_DEFINES -#define _USE_MATH_DEFINES -#endif - -#include -#include // size_t -#include // FILE -#include - #include +#include #include +#include +#include #include #include #include diff --git a/common_audio/resampler/sinc_resampler.cc b/common_audio/resampler/sinc_resampler.cc index f0c380494b..fc64ba6f1d 100644 --- a/common_audio/resampler/sinc_resampler.cc +++ b/common_audio/resampler/sinc_resampler.cc @@ -82,19 +82,17 @@ // Note: we're glossing over how the sub-sample handling works with // `virtual_source_idx_`, etc. -// MSVC++ requires this to be set before any other includes to get M_PI. -#define _USE_MATH_DEFINES - #include "common_audio/resampler/sinc_resampler.h" -#include -#include -#include - +#include +#include +#include #include +#include #include "rtc_base/checks.h" #include "rtc_base/cpu_info.h" +#include "rtc_base/memory/aligned_malloc.h" #include "rtc_base/system/arch.h" namespace webrtc { @@ -210,14 +208,16 @@ void SincResampler::InitializeKernel() { for (size_t i = 0; i < kKernelSize; ++i) { const size_t idx = i + offset_idx * kKernelSize; const float pre_sinc = static_cast( - M_PI * (static_cast(i) - static_cast(kKernelSize / 2) - - subsample_offset)); + std::numbers::pi * + (static_cast(i) - static_cast(kKernelSize / 2) - + subsample_offset)); kernel_pre_sinc_storage_[idx] = pre_sinc; // Compute Blackman window, matching the offset of the sinc(). const float x = (i - subsample_offset) / kKernelSize; - const float window = static_cast(kA0 - kA1 * cos(2.0 * M_PI * x) + - kA2 * cos(4.0 * M_PI * x)); + const float window = + static_cast(kA0 - kA1 * cos(2.0 * std::numbers::pi * x) + + kA2 * cos(4.0 * std::numbers::pi * x)); kernel_window_storage_[idx] = window; // Compute the sinc with offset, then window the sinc() function and store diff --git a/common_audio/resampler/sinc_resampler_unittest.cc b/common_audio/resampler/sinc_resampler_unittest.cc index a35bd6dcf9..01bb883aff 100644 --- a/common_audio/resampler/sinc_resampler_unittest.cc +++ b/common_audio/resampler/sinc_resampler_unittest.cc @@ -11,15 +11,16 @@ // Modified from the Chromium original: // src/media/base/sinc_resampler_unittest.cc -// MSVC++ requires this to be set before any other includes to get M_PI. -#define _USE_MATH_DEFINES - #include "common_audio/resampler/sinc_resampler.h" -#include - #include +#include +#include +#include +#include +#include #include +#include #include #include "common_audio/resampler/sinusoidal_linear_chirp_source.h" @@ -261,7 +262,7 @@ TEST_P(SincResamplerTest, Resample) { std::unique_ptr kernel(new float[SincResampler::kKernelStorageSize]); memcpy(kernel.get(), resampler.get_kernel_for_testing(), SincResampler::kKernelStorageSize); - resampler.SetRatio(M_PI); + resampler.SetRatio(std::numbers::pi_v); ASSERT_NE(0, memcmp(kernel.get(), resampler.get_kernel_for_testing(), SincResampler::kKernelStorageSize)); resampler.SetRatio(io_ratio); diff --git a/common_audio/resampler/sinusoidal_linear_chirp_source.cc b/common_audio/resampler/sinusoidal_linear_chirp_source.cc index 2afdd1be47..7c680094a8 100644 --- a/common_audio/resampler/sinusoidal_linear_chirp_source.cc +++ b/common_audio/resampler/sinusoidal_linear_chirp_source.cc @@ -8,12 +8,11 @@ * be found in the AUTHORS file in the root of the source tree. */ -// MSVC++ requires this to be set before any other includes to get M_PI. -#define _USE_MATH_DEFINES - #include "common_audio/resampler/sinusoidal_linear_chirp_source.h" -#include +#include +#include +#include namespace webrtc { @@ -43,7 +42,8 @@ void SinusoidalLinearChirpSource::Run(size_t frames, float* destination) { } else { // Sinusoidal linear chirp. double t = (current_index_ - delay_samples_) / sample_rate_; - destination[i] = sin(2 * M_PI * (kMinFrequency * t + (k_ / 2) * t * t)); + destination[i] = + sin(2 * std::numbers::pi * (kMinFrequency * t + (k_ / 2) * t * t)); } } } diff --git a/common_audio/wav_file_unittest.cc b/common_audio/wav_file_unittest.cc index fbfa4aa73d..f4a04b7a0a 100644 --- a/common_audio/wav_file_unittest.cc +++ b/common_audio/wav_file_unittest.cc @@ -8,15 +8,19 @@ * be found in the AUTHORS file in the root of the source tree. */ -// MSVC++ requires this to be set before any other includes to get M_PI. -#define _USE_MATH_DEFINES - #include "common_audio/wav_file.h" #include +#include +#include +#include +#include #include +#include +#include #include "common_audio/wav_header.h" +#include "rtc_base/checks.h" #include "rtc_base/logging.h" #include "test/gtest.h" #include "test/testsupport/file_utils.h" @@ -135,12 +139,13 @@ TEST(WavWriterTest, LargeFile) { const double t = static_cast(i) / (kNumChannels * kSampleRate); const double x = std::numeric_limits::max() * - std::sin(t * kToneHz * 2 * M_PI); - samples[i] = std::pow(std::sin(t * 2 * 2 * M_PI), 10) * x; - samples[i + 1] = std::pow(std::cos(t * 2 * 2 * M_PI), 10) * x; + std::sin(t * kToneHz * 2 * std::numbers::pi); + samples[i] = std::pow(std::sin(t * 2 * 2 * std::numbers::pi), 10) * x; + samples[i + 1] = + std::pow(std::cos(t * 2 * 2 * std::numbers::pi), 10) * x; // See https://issues.webrtc.org/issues/379973428 - RTC_CHECK(isfinite(samples[i])); - RTC_CHECK(isfinite(samples[i + 1])); + RTC_CHECK(std::isfinite(samples[i])); + RTC_CHECK(std::isfinite(samples[i + 1])); } { WavWriter w(outfile, kSampleRate, kNumChannels, wav_format); @@ -177,7 +182,7 @@ TEST(WavWriterTest, LargeFile) { EXPECT_EQ(kNumSamples, r.ReadSamples(kNumSamples, read_samples)); for (size_t i = 0; i < kNumSamples; ++i) { EXPECT_NEAR(samples[i], read_samples[i], 1); - if (!isfinite(samples[i])) { + if (!std::isfinite(samples[i])) { // See https://issues.webrtc.org/issues/379973428 RTC_LOG(LS_ERROR) << "samples[" << i << "] is not finite. " @@ -192,7 +197,7 @@ TEST(WavWriterTest, LargeFile) { EXPECT_EQ(kNumSamples, r.ReadSamples(kNumSamples, read_samples)); for (size_t i = 0; i < kNumSamples; ++i) { EXPECT_NEAR(samples[i], static_cast(read_samples[i]), 1); - if (!isfinite(samples[i])) { + if (!std::isfinite(samples[i])) { // See https://issues.webrtc.org/issues/379973428 RTC_LOG(LS_ERROR) << "samples[" << i << "] is not finite. " diff --git a/common_audio/window_generator.cc b/common_audio/window_generator.cc index 7c33d255f0..5a6de1aec1 100644 --- a/common_audio/window_generator.cc +++ b/common_audio/window_generator.cc @@ -8,12 +8,11 @@ * be found in the AUTHORS file in the root of the source tree. */ -#define _USE_MATH_DEFINES - #include "common_audio/window_generator.h" #include #include +#include #include #include "rtc_base/checks.h" diff --git a/modules/audio_processing/post_filter_unittest.cc b/modules/audio_processing/post_filter_unittest.cc index 096d734a93..ecb7536373 100644 --- a/modules/audio_processing/post_filter_unittest.cc +++ b/modules/audio_processing/post_filter_unittest.cc @@ -14,6 +14,7 @@ #include #include #include +#include #include #include "api/array_view.h" @@ -91,7 +92,8 @@ TEST(PostFilterTest, Tone19p8kHzSignalAttenuation48k) { constexpr int num_frames = sample_rate_hz * 10 / 1000; // 10ms; constexpr double tone_frequency = 19800; // Hz - const double phase_increment = tone_frequency * 2.0 * M_PI / sample_rate_hz; + const double phase_increment = + tone_frequency * 2.0 * std::numbers::pi / sample_rate_hz; double phase = 0.0; std::vector audio_input(num_frames); @@ -132,7 +134,8 @@ TEST(PostFilterTest, Tone17kHzSignalNoAttenuation48k) { constexpr int num_frames = sample_rate_hz * 10 / 1000; // 10ms; constexpr double tone_frequency = 16800; // Hz - const double phase_increment = tone_frequency * 2.0 * M_PI / sample_rate_hz; + const double phase_increment = + tone_frequency * 2.0 * std::numbers::pi / sample_rate_hz; double phase = 0.0; std::vector audio_input(num_frames); diff --git a/modules/audio_processing/test/conversational_speech/generator_unittest.cc b/modules/audio_processing/test/conversational_speech/generator_unittest.cc index 71acb15448..390ce675e6 100644 --- a/modules/audio_processing/test/conversational_speech/generator_unittest.cc +++ b/modules/audio_processing/test/conversational_speech/generator_unittest.cc @@ -33,17 +33,13 @@ // cases in which there are wrong offsets leading to self cross-talk (which is // rejected). -// MSVC++ requires this to be set before any other includes to get M_PI. -#define _USE_MATH_DEFINES - -#include -#include - #include #include #include +#include #include #include +#include #include #include #include @@ -108,7 +104,8 @@ std::unique_ptr CreateMockWavReaderFactory() { void CreateSineWavFile(absl::string_view filepath, const MockWavReaderFactory::Params& params, float frequency_hz = 440.0f) { - const double phase_step = 2 * M_PI * frequency_hz / params.sample_rate; + const double phase_step = + 2 * std::numbers::pi * frequency_hz / params.sample_rate; double phase = 0.0; std::vector samples(params.num_samples); for (size_t i = 0; i < params.num_samples; ++i) {