Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Side by Side Diff: webrtc/modules/audio_coding/neteq/neteq_impl.cc

Issue 2965203002: Let NetEq reset the AudioFrame during muted state (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | webrtc/modules/audio_coding/neteq/neteq_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 193
194 int NetEqImpl::GetAudio(AudioFrame* audio_frame, bool* muted) { 194 int NetEqImpl::GetAudio(AudioFrame* audio_frame, bool* muted) {
195 TRACE_EVENT0("webrtc", "NetEqImpl::GetAudio"); 195 TRACE_EVENT0("webrtc", "NetEqImpl::GetAudio");
196 rtc::CritScope lock(&crit_sect_); 196 rtc::CritScope lock(&crit_sect_);
197 if (GetAudioInternal(audio_frame, muted) != 0) { 197 if (GetAudioInternal(audio_frame, muted) != 0) {
198 return kFail; 198 return kFail;
199 } 199 }
200 RTC_DCHECK_EQ( 200 RTC_DCHECK_EQ(
201 audio_frame->sample_rate_hz_, 201 audio_frame->sample_rate_hz_,
202 rtc::dchecked_cast<int>(audio_frame->samples_per_channel_ * 100)); 202 rtc::dchecked_cast<int>(audio_frame->samples_per_channel_ * 100));
203 RTC_DCHECK_EQ(*muted, audio_frame->muted());
203 SetAudioFrameActivityAndType(vad_->enabled(), LastOutputType(), 204 SetAudioFrameActivityAndType(vad_->enabled(), LastOutputType(),
204 last_vad_activity_, audio_frame); 205 last_vad_activity_, audio_frame);
205 last_vad_activity_ = audio_frame->vad_activity_; 206 last_vad_activity_ = audio_frame->vad_activity_;
206 last_output_sample_rate_hz_ = audio_frame->sample_rate_hz_; 207 last_output_sample_rate_hz_ = audio_frame->sample_rate_hz_;
207 RTC_DCHECK(last_output_sample_rate_hz_ == 8000 || 208 RTC_DCHECK(last_output_sample_rate_hz_ == 8000 ||
208 last_output_sample_rate_hz_ == 16000 || 209 last_output_sample_rate_hz_ == 16000 ||
209 last_output_sample_rate_hz_ == 32000 || 210 last_output_sample_rate_hz_ == 32000 ||
210 last_output_sample_rate_hz_ == 48000) 211 last_output_sample_rate_hz_ == 48000)
211 << "Unexpected sample rate " << last_output_sample_rate_hz_; 212 << "Unexpected sample rate " << last_output_sample_rate_hz_;
212 return kOK; 213 return kOK;
(...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after
823 Operations operation; 824 Operations operation;
824 bool play_dtmf; 825 bool play_dtmf;
825 *muted = false; 826 *muted = false;
826 last_decoded_timestamps_.clear(); 827 last_decoded_timestamps_.clear();
827 tick_timer_->Increment(); 828 tick_timer_->Increment();
828 stats_.IncreaseCounter(output_size_samples_, fs_hz_); 829 stats_.IncreaseCounter(output_size_samples_, fs_hz_);
829 830
830 // Check for muted state. 831 // Check for muted state.
831 if (enable_muted_state_ && expand_->Muted() && packet_buffer_->Empty()) { 832 if (enable_muted_state_ && expand_->Muted() && packet_buffer_->Empty()) {
832 RTC_DCHECK_EQ(last_mode_, kModeExpand); 833 RTC_DCHECK_EQ(last_mode_, kModeExpand);
834 audio_frame->Reset();
835 RTC_DCHECK(audio_frame->muted()); // Reset() should mute the frame.
833 playout_timestamp_ += static_cast<uint32_t>(output_size_samples_); 836 playout_timestamp_ += static_cast<uint32_t>(output_size_samples_);
834 audio_frame->sample_rate_hz_ = fs_hz_; 837 audio_frame->sample_rate_hz_ = fs_hz_;
835 audio_frame->samples_per_channel_ = output_size_samples_; 838 audio_frame->samples_per_channel_ = output_size_samples_;
836 audio_frame->timestamp_ = 839 audio_frame->timestamp_ =
837 first_packet_ 840 first_packet_
838 ? 0 841 ? 0
839 : timestamp_scaler_->ToExternal(playout_timestamp_) - 842 : timestamp_scaler_->ToExternal(playout_timestamp_) -
840 static_cast<uint32_t>(audio_frame->samples_per_channel_); 843 static_cast<uint32_t>(audio_frame->samples_per_channel_);
841 audio_frame->num_channels_ = sync_buffer_->Channels(); 844 audio_frame->num_channels_ = sync_buffer_->Channels();
842 stats_.ExpandedNoiseSamples(output_size_samples_); 845 stats_.ExpandedNoiseSamples(output_size_samples_);
(...skipping 1264 matching lines...) Expand 10 before | Expand all | Expand 10 after
2107 } 2110 }
2108 } 2111 }
2109 2112
2110 void NetEqImpl::CreateDecisionLogic() { 2113 void NetEqImpl::CreateDecisionLogic() {
2111 decision_logic_.reset(DecisionLogic::Create( 2114 decision_logic_.reset(DecisionLogic::Create(
2112 fs_hz_, output_size_samples_, playout_mode_, decoder_database_.get(), 2115 fs_hz_, output_size_samples_, playout_mode_, decoder_database_.get(),
2113 *packet_buffer_.get(), delay_manager_.get(), buffer_level_filter_.get(), 2116 *packet_buffer_.get(), delay_manager_.get(), buffer_level_filter_.get(),
2114 tick_timer_.get())); 2117 tick_timer_.get()));
2115 } 2118 }
2116 } // namespace webrtc 2119 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | webrtc/modules/audio_coding/neteq/neteq_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698