diff options
Diffstat (limited to 'modules/audio_coding/acm2/acm_receiver.cc')
-rw-r--r-- | modules/audio_coding/acm2/acm_receiver.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/modules/audio_coding/acm2/acm_receiver.cc b/modules/audio_coding/acm2/acm_receiver.cc index 0e615cae82..3214ce6f7b 100644 --- a/modules/audio_coding/acm2/acm_receiver.cc +++ b/modules/audio_coding/acm2/acm_receiver.cc @@ -146,20 +146,22 @@ int AcmReceiver::GetAudio(int desired_freq_hz, AudioFrame* audio_frame, bool* muted) { RTC_DCHECK(muted); - // Accessing members, take the lock. - MutexLock lock(&mutex_); - if (neteq_->GetAudio(audio_frame, muted) != NetEq::kOK) { + int current_sample_rate_hz = 0; + if (neteq_->GetAudio(audio_frame, muted, ¤t_sample_rate_hz) != + NetEq::kOK) { RTC_LOG(LERROR) << "AcmReceiver::GetAudio - NetEq Failed."; return -1; } - const int current_sample_rate_hz = neteq_->last_output_sample_rate_hz(); + RTC_DCHECK_NE(current_sample_rate_hz, 0); // Update if resampling is required. const bool need_resampling = (desired_freq_hz != -1) && (current_sample_rate_hz != desired_freq_hz); + // Accessing members, take the lock. + MutexLock lock(&mutex_); if (need_resampling && !resampled_last_output_frame_) { // Prime the resampler with the last frame. int16_t temp_output[AudioFrame::kMaxDataSizeSamples]; @@ -174,8 +176,8 @@ int AcmReceiver::GetAudio(int desired_freq_hz, } } - // TODO(henrik.lundin) Glitches in the output may appear if the output rate - // from NetEq changes. See WebRTC issue 3923. + // TODO(bugs.webrtc.org/3923) Glitches in the output may appear if the output + // rate from NetEq changes. if (need_resampling) { // TODO(yujo): handle this more efficiently for muted frames. int samples_per_channel_int = resampler_.Resample10Msec( |