AGC2-fixed-digital: Level Estimator
This CL adds the Level Estimator of the new gain controller. The Level Estimator divides a 10ms input frame in kSubFramesInFrame=20 sub frames. We take the maximal sample values in every sub frame. We then apply attack/decay smoothing. This is the final level estimate. The results will be used with InterpolatedGainCurve (see this CL https://webrtc-review.googlesource.com/c/src/+/51920). For every level estimate value, we look up a gain with InterpolatedGainCurve::LookUpGainToApply. This gain is then applied to the signal. Bug: webrtc:7949 Change-Id: I2b4b3894a3e945d3dd916ce516c79abacb2b18b1 Reviewed-on: https://webrtc-review.googlesource.com/52381 Reviewed-by: Sam Zackrisson <saza@webrtc.org> Commit-Queue: Alex Loiko <aleloi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22054}
This commit is contained in:
@ -27,6 +27,14 @@ class AudioFrameView {
|
||||
num_channels_(num_channels),
|
||||
channel_size_(channel_size) {}
|
||||
|
||||
// Implicit cast to allow converting Frame<float> to
|
||||
// Frame<const float>.
|
||||
template <class U>
|
||||
AudioFrameView(AudioFrameView<U> other)
|
||||
: audio_samples_(other.data()),
|
||||
num_channels_(other.num_channels()),
|
||||
channel_size_(other.samples_per_channel()) {}
|
||||
|
||||
AudioFrameView() = delete;
|
||||
|
||||
size_t num_channels() const { return num_channels_; }
|
||||
@ -45,6 +53,8 @@ class AudioFrameView {
|
||||
return rtc::ArrayView<const T>(audio_samples_[idx], channel_size_);
|
||||
}
|
||||
|
||||
T* const* data() { return audio_samples_; }
|
||||
|
||||
private:
|
||||
T* const* audio_samples_;
|
||||
size_t num_channels_;
|
||||
|
||||
Reference in New Issue
Block a user