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

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

Issue 2354453003: AcmReceiver: Look up last decoder in NetEq's table of decoders (Closed)
Patch Set: grammar Created 4 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
« no previous file with comments | « webrtc/modules/audio_coding/neteq/neteq_impl.h ('k') | no next file » | 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 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 } 424 }
425 return rtc::Optional<uint32_t>( 425 return rtc::Optional<uint32_t>(
426 timestamp_scaler_->ToExternal(playout_timestamp_)); 426 timestamp_scaler_->ToExternal(playout_timestamp_));
427 } 427 }
428 428
429 int NetEqImpl::last_output_sample_rate_hz() const { 429 int NetEqImpl::last_output_sample_rate_hz() const {
430 rtc::CritScope lock(&crit_sect_); 430 rtc::CritScope lock(&crit_sect_);
431 return last_output_sample_rate_hz_; 431 return last_output_sample_rate_hz_;
432 } 432 }
433 433
434 rtc::Optional<CodecInst> NetEqImpl::GetDecoder(int payload_type) const {
435 rtc::CritScope lock(&crit_sect_);
436 const DecoderDatabase::DecoderInfo* di =
437 decoder_database_->GetDecoderInfo(payload_type);
438 if (!di) {
439 return rtc::Optional<CodecInst>();
440 }
441
442 // Create a CodecInst with some fields set. The remaining fields are zeroed,
443 // but we tell MSan to consider them uninitialized.
444 CodecInst ci = {0};
445 rtc::MsanMarkUninitialized(rtc::MakeArrayView(&ci, 1));
446 ci.pltype = payload_type;
447 std::strncpy(ci.plname, di->name.c_str(), sizeof(ci.plname));
448 ci.plname[sizeof(ci.plname) - 1] = '\0';
449 ci.plfreq = di->IsRed() || di->IsDtmf() ? 8000 : di->SampleRateHz();
450 AudioDecoder* const decoder = di->GetDecoder();
451 ci.channels = decoder ? decoder->Channels() : 1;
452 return rtc::Optional<CodecInst>(ci);
453 }
454
434 int NetEqImpl::SetTargetNumberOfChannels() { 455 int NetEqImpl::SetTargetNumberOfChannels() {
435 return kNotImplemented; 456 return kNotImplemented;
436 } 457 }
437 458
438 int NetEqImpl::SetTargetSampleRate() { 459 int NetEqImpl::SetTargetSampleRate() {
439 return kNotImplemented; 460 return kNotImplemented;
440 } 461 }
441 462
442 int NetEqImpl::LastError() const { 463 int NetEqImpl::LastError() const {
443 rtc::CritScope lock(&crit_sect_); 464 rtc::CritScope lock(&crit_sect_);
(...skipping 1631 matching lines...) Expand 10 before | Expand all | Expand 10 after
2075 } 2096 }
2076 } 2097 }
2077 2098
2078 void NetEqImpl::CreateDecisionLogic() { 2099 void NetEqImpl::CreateDecisionLogic() {
2079 decision_logic_.reset(DecisionLogic::Create( 2100 decision_logic_.reset(DecisionLogic::Create(
2080 fs_hz_, output_size_samples_, playout_mode_, decoder_database_.get(), 2101 fs_hz_, output_size_samples_, playout_mode_, decoder_database_.get(),
2081 *packet_buffer_.get(), delay_manager_.get(), buffer_level_filter_.get(), 2102 *packet_buffer_.get(), delay_manager_.get(), buffer_level_filter_.get(),
2082 tick_timer_.get())); 2103 tick_timer_.get()));
2083 } 2104 }
2084 } // namespace webrtc 2105 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/neteq/neteq_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698