Fixes to support building in -std=c++20 mode.
* Structs with user-declared constructors are no longer considered aggregates, so remove the declarations when possible * Types of both arguments to "==" must match to avoid "ambiguous function call" warning * Various types of math involving enums are deprecated, so replace with constexprs where necessary * ABSL_CONST_INIT must be used on definition as well as declaration * volatile memory may no longer be read from and written to by the same operator, so replace e.g. "n++" with "n = n + 1" * Replace an outdated check for no_unique_address support with __has_cpp_attribute * std::result_of(f(x)) has been removed, replace with std::invoke_result(f, x) Bug: chromium:1284275 Change-Id: I77b366ab1da7eb2c1e4c825b2714417c31ee5903 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261221 Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by: Tomas Gunnarsson <tommi@google.com> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#36786}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
95897aea2f
commit
662d7f11d5
@ -17,7 +17,7 @@ InternalAPMConfig::InternalAPMConfig(InternalAPMConfig&&) = default;
|
||||
InternalAPMConfig& InternalAPMConfig::operator=(const InternalAPMConfig&) =
|
||||
default;
|
||||
|
||||
bool InternalAPMConfig::operator==(const InternalAPMConfig& other) {
|
||||
bool InternalAPMConfig::operator==(const InternalAPMConfig& other) const {
|
||||
return aec_enabled == other.aec_enabled &&
|
||||
aec_delay_agnostic_enabled == other.aec_delay_agnostic_enabled &&
|
||||
aec_drift_compensation_enabled ==
|
||||
|
||||
@ -31,7 +31,7 @@ struct InternalAPMConfig {
|
||||
InternalAPMConfig& operator=(const InternalAPMConfig&);
|
||||
InternalAPMConfig& operator=(InternalAPMConfig&&) = delete;
|
||||
|
||||
bool operator==(const InternalAPMConfig& other);
|
||||
bool operator==(const InternalAPMConfig& other) const;
|
||||
|
||||
bool aec_enabled = false;
|
||||
bool aec_delay_agnostic_enabled = false;
|
||||
|
||||
@ -21,8 +21,8 @@ namespace webrtc {
|
||||
|
||||
// Only bit `kBandFirst` through bit `kBandLast` are processed and
|
||||
// `kBandFirst` - `kBandLast` must be < 32.
|
||||
enum { kBandFirst = 12 };
|
||||
enum { kBandLast = 43 };
|
||||
constexpr int kBandFirst = 12;
|
||||
constexpr int kBandLast = 43;
|
||||
|
||||
static __inline uint32_t SetBit(uint32_t in, int pos) {
|
||||
uint32_t mask = (1 << pos);
|
||||
|
||||
@ -35,7 +35,7 @@ class VadAudioProc {
|
||||
size_t length,
|
||||
AudioFeatures* audio_features);
|
||||
|
||||
static const size_t kDftSize = 512;
|
||||
static constexpr size_t kDftSize = 512;
|
||||
|
||||
private:
|
||||
void PitchAnalysis(double* pitch_gains, double* pitch_lags_hz, size_t length);
|
||||
@ -51,28 +51,24 @@ class VadAudioProc {
|
||||
// For every 30 ms we compute 3 spectral peak there for 3 LPC analysis.
|
||||
// LPC is computed over 15 ms of windowed audio. For every 10 ms sub-frame
|
||||
// we need 5 ms of past signal to create the input of LPC analysis.
|
||||
enum : size_t {
|
||||
kNumPastSignalSamples = static_cast<size_t>(kSampleRateHz / 200)
|
||||
};
|
||||
static constexpr size_t kNumPastSignalSamples =
|
||||
static_cast<size_t>(kSampleRateHz / 200);
|
||||
|
||||
// TODO(turajs): maybe defining this at a higher level (maybe enum) so that
|
||||
// all the code recognize it as "no-error."
|
||||
enum : int { kNoError = 0 };
|
||||
static constexpr int kNoError = 0;
|
||||
|
||||
enum : size_t { kNum10msSubframes = 3 };
|
||||
enum : size_t {
|
||||
kNumSubframeSamples = static_cast<size_t>(kSampleRateHz / 100)
|
||||
};
|
||||
enum : size_t {
|
||||
// Samples in 30 ms @ given sampling rate.
|
||||
kNumSamplesToProcess = kNum10msSubframes * kNumSubframeSamples
|
||||
};
|
||||
enum : size_t {
|
||||
kBufferLength = kNumPastSignalSamples + kNumSamplesToProcess
|
||||
};
|
||||
enum : size_t { kIpLength = kDftSize >> 1 };
|
||||
enum : size_t { kWLength = kDftSize >> 1 };
|
||||
enum : size_t { kLpcOrder = 16 };
|
||||
static constexpr size_t kNum10msSubframes = 3;
|
||||
static constexpr size_t kNumSubframeSamples =
|
||||
static_cast<size_t>(kSampleRateHz / 100);
|
||||
// Samples in 30 ms @ given sampling rate.
|
||||
static constexpr size_t kNumSamplesToProcess =
|
||||
size_t{kNum10msSubframes} * kNumSubframeSamples;
|
||||
static constexpr size_t kBufferLength =
|
||||
size_t{kNumPastSignalSamples} + kNumSamplesToProcess;
|
||||
static constexpr size_t kIpLength = kDftSize >> 1;
|
||||
static constexpr size_t kWLength = kDftSize >> 1;
|
||||
static constexpr size_t kLpcOrder = 16;
|
||||
|
||||
size_t ip_[kIpLength];
|
||||
float w_fft_[kWLength];
|
||||
|
||||
Reference in New Issue
Block a user