AGC2 NoiseLevelEstimator: DCHECK pointer

Bug: webrtc:7494
Change-Id: Iaac36bade3da4cfa55e8de99cfd3836df75dffa3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/286423
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Hanna Silen <silen@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38828}
This commit is contained in:
Alessio Bazzica 2022-12-06 13:59:32 +01:00 committed by WebRTC LUCI CQ
parent ce79f873e7
commit 0524319a9d

View File

@ -72,6 +72,7 @@ class NoiseFloorEstimator : public NoiseLevelEstimator {
"noise levels.");
NoiseFloorEstimator(ApmDataDumper* data_dumper) : data_dumper_(data_dumper) {
RTC_DCHECK(data_dumper_);
// Initially assume that 48 kHz will be used. `Analyze()` will detect the
// used sample rate and call `Initialize()` again if needed.
Initialize(/*sample_rate_hz=*/48000);
@ -91,8 +92,9 @@ class NoiseFloorEstimator : public NoiseLevelEstimator {
const float frame_energy = FrameEnergy(frame);
if (frame_energy <= min_noise_energy_) {
// Ignore frames when muted or below the minimum measurable energy.
data_dumper_->DumpRaw("agc2_noise_floor_estimator_preliminary_level",
noise_energy_);
if (data_dumper_)
data_dumper_->DumpRaw("agc2_noise_floor_estimator_preliminary_level",
noise_energy_);
return EnergyToDbfs(noise_energy_,
static_cast<int>(frame.samples_per_channel()));
}
@ -104,8 +106,9 @@ class NoiseFloorEstimator : public NoiseLevelEstimator {
preliminary_noise_energy_ = frame_energy;
preliminary_noise_energy_set_ = true;
}
data_dumper_->DumpRaw("agc2_noise_floor_estimator_preliminary_level",
preliminary_noise_energy_);
if (data_dumper_)
data_dumper_->DumpRaw("agc2_noise_floor_estimator_preliminary_level",
preliminary_noise_energy_);
if (counter_ == 0) {
// Full period observed.
@ -128,8 +131,13 @@ class NoiseFloorEstimator : public NoiseLevelEstimator {
noise_energy_ = std::min(noise_energy_, preliminary_noise_energy_);
counter_--;
}
return EnergyToDbfs(noise_energy_,
static_cast<int>(frame.samples_per_channel()));
float noise_rms_dbfs = EnergyToDbfs(
noise_energy_, static_cast<int>(frame.samples_per_channel()));
if (data_dumper_)
data_dumper_->DumpRaw("agc2_noise_rms_dbfs", noise_rms_dbfs);
return noise_rms_dbfs;
}
private: