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

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

Issue 1334303005: Returning correct duration estimate on Opus DTX packets. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 3 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
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 1627 matching lines...) Expand 10 before | Expand all | Expand 10 after
1638 decoder_error_code_ = comfort_noise_->internal_error_code(); 1638 decoder_error_code_ = comfort_noise_->internal_error_code();
1639 return kComfortNoiseErrorCode; 1639 return kComfortNoiseErrorCode;
1640 } else if (cn_return == ComfortNoise::kUnknownPayloadType) { 1640 } else if (cn_return == ComfortNoise::kUnknownPayloadType) {
1641 return kUnknownRtpPayloadType; 1641 return kUnknownRtpPayloadType;
1642 } 1642 }
1643 return 0; 1643 return 0;
1644 } 1644 }
1645 1645
1646 void NetEqImpl::DoCodecInternalCng() { 1646 void NetEqImpl::DoCodecInternalCng() {
1647 int length = 0; 1647 int length = 0;
1648 // TODO(hlundin): Will probably need a longer buffer for multi-channel.
1649 int16_t decoded_buffer[kMaxFrameSize];
1650 AudioDecoder* decoder = decoder_database_->GetActiveDecoder(); 1648 AudioDecoder* decoder = decoder_database_->GetActiveDecoder();
1651 if (decoder) { 1649 if (decoder) {
1652 const uint8_t* dummy_payload = NULL; 1650 const uint8_t* dummy_payload = NULL;
1653 AudioDecoder::SpeechType speech_type; 1651 AudioDecoder::SpeechType speech_type;
1654 length = decoder->Decode( 1652 length = decoder->Decode(
1655 dummy_payload, 0, fs_hz_, kMaxFrameSize * sizeof(int16_t), 1653 dummy_payload, 0, fs_hz_, decoded_buffer_length_ * sizeof(int16_t),
1656 decoded_buffer, &speech_type); 1654 decoded_buffer_.get(), &speech_type);
1657 } 1655 }
1658 assert(mute_factor_array_.get()); 1656 assert(mute_factor_array_.get());
1659 normal_->Process(decoded_buffer, length, last_mode_, mute_factor_array_.get(), 1657 if (length > 0) {
hlundin-webrtc 2015/09/15 13:05:09 I think you'll have to handle the error differentl
minyue-webrtc 2015/09/16 08:05:31 May I suggest yet another solution? When normal de
1660 algorithm_buffer_.get()); 1658 normal_->Process(decoded_buffer_.get(), length, last_mode_,
1661 last_mode_ = kModeCodecInternalCng; 1659 mute_factor_array_.get(), algorithm_buffer_.get());
1662 expand_->Reset(); 1660 last_mode_ = kModeCodecInternalCng;
1661 expand_->Reset();
1662 } else {
1663 LOG(LS_WARNING) << "Codec internal Cng decode error.";
1664 }
1663 } 1665 }
1664 1666
1665 int NetEqImpl::DoDtmf(const DtmfEvent& dtmf_event, bool* play_dtmf) { 1667 int NetEqImpl::DoDtmf(const DtmfEvent& dtmf_event, bool* play_dtmf) {
1666 // This block of the code and the block further down, handling |dtmf_switch| 1668 // This block of the code and the block further down, handling |dtmf_switch|
1667 // are commented out. Otherwise playing out-of-band DTMF would fail in VoE 1669 // are commented out. Otherwise playing out-of-band DTMF would fail in VoE
1668 // test, DtmfTest.ManualSuccessfullySendsOutOfBandTelephoneEvents. This is 1670 // test, DtmfTest.ManualSuccessfullySendsOutOfBandTelephoneEvents. This is
1669 // equivalent to |dtmf_switch| always be false. 1671 // equivalent to |dtmf_switch| always be false.
1670 // 1672 //
1671 // See http://webrtc-codereview.appspot.com/1195004/ for discussion 1673 // See http://webrtc-codereview.appspot.com/1195004/ for discussion
1672 // On this issue. This change might cause some glitches at the point of 1674 // On this issue. This change might cause some glitches at the point of
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
1993 1995
1994 void NetEqImpl::CreateDecisionLogic() { 1996 void NetEqImpl::CreateDecisionLogic() {
1995 decision_logic_.reset(DecisionLogic::Create(fs_hz_, output_size_samples_, 1997 decision_logic_.reset(DecisionLogic::Create(fs_hz_, output_size_samples_,
1996 playout_mode_, 1998 playout_mode_,
1997 decoder_database_.get(), 1999 decoder_database_.get(),
1998 *packet_buffer_.get(), 2000 *packet_buffer_.get(),
1999 delay_manager_.get(), 2001 delay_manager_.get(),
2000 buffer_level_filter_.get())); 2002 buffer_level_filter_.get()));
2001 } 2003 }
2002 } // namespace webrtc 2004 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698