| Index: webrtc/modules/audio_coding/main/acm2/codec_owner.cc
|
| diff --git a/webrtc/modules/audio_coding/main/acm2/codec_owner.cc b/webrtc/modules/audio_coding/main/acm2/codec_owner.cc
|
| deleted file mode 100644
|
| index 6b9809f836fdc9081c88508bdd2147c74353d874..0000000000000000000000000000000000000000
|
| --- a/webrtc/modules/audio_coding/main/acm2/codec_owner.cc
|
| +++ /dev/null
|
| @@ -1,116 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license
|
| - * that can be found in the LICENSE file in the root of the source
|
| - * tree. An additional intellectual property rights grant can be found
|
| - * in the file PATENTS. All contributing project authors may
|
| - * be found in the AUTHORS file in the root of the source tree.
|
| - */
|
| -
|
| -#include "webrtc/modules/audio_coding/main/acm2/codec_owner.h"
|
| -
|
| -#include "webrtc/base/checks.h"
|
| -#include "webrtc/base/logging.h"
|
| -#include "webrtc/engine_configurations.h"
|
| -#include "webrtc/modules/audio_coding/codecs/cng/include/audio_encoder_cng.h"
|
| -#ifdef WEBRTC_CODEC_RED
|
| -#include "webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.h"
|
| -#endif
|
| -
|
| -namespace webrtc {
|
| -namespace acm2 {
|
| -
|
| -CodecOwner::CodecOwner() : speech_encoder_(nullptr) {
|
| -}
|
| -
|
| -CodecOwner::~CodecOwner() = default;
|
| -
|
| -namespace {
|
| -
|
| -AudioEncoder* CreateRedEncoder(int red_payload_type,
|
| - AudioEncoder* encoder,
|
| - rtc::scoped_ptr<AudioEncoder>* red_encoder) {
|
| -#ifdef WEBRTC_CODEC_RED
|
| - if (red_payload_type != -1) {
|
| - AudioEncoderCopyRed::Config config;
|
| - config.payload_type = red_payload_type;
|
| - config.speech_encoder = encoder;
|
| - red_encoder->reset(new AudioEncoderCopyRed(config));
|
| - return red_encoder->get();
|
| - }
|
| -#endif
|
| -
|
| - red_encoder->reset();
|
| - return encoder;
|
| -}
|
| -
|
| -void CreateCngEncoder(int cng_payload_type,
|
| - ACMVADMode vad_mode,
|
| - AudioEncoder* encoder,
|
| - rtc::scoped_ptr<AudioEncoder>* cng_encoder) {
|
| - if (cng_payload_type == -1) {
|
| - cng_encoder->reset();
|
| - return;
|
| - }
|
| - AudioEncoderCng::Config config;
|
| - config.num_channels = encoder->NumChannels();
|
| - config.payload_type = cng_payload_type;
|
| - config.speech_encoder = encoder;
|
| - switch (vad_mode) {
|
| - case VADNormal:
|
| - config.vad_mode = Vad::kVadNormal;
|
| - break;
|
| - case VADLowBitrate:
|
| - config.vad_mode = Vad::kVadLowBitrate;
|
| - break;
|
| - case VADAggr:
|
| - config.vad_mode = Vad::kVadAggressive;
|
| - break;
|
| - case VADVeryAggr:
|
| - config.vad_mode = Vad::kVadVeryAggressive;
|
| - break;
|
| - default:
|
| - FATAL();
|
| - }
|
| - cng_encoder->reset(new AudioEncoderCng(config));
|
| -}
|
| -} // namespace
|
| -
|
| -void CodecOwner::SetEncoders(AudioEncoder* external_speech_encoder,
|
| - int cng_payload_type,
|
| - ACMVADMode vad_mode,
|
| - int red_payload_type) {
|
| - speech_encoder_ = external_speech_encoder;
|
| - ChangeCngAndRed(cng_payload_type, vad_mode, red_payload_type);
|
| -}
|
| -
|
| -void CodecOwner::ChangeCngAndRed(int cng_payload_type,
|
| - ACMVADMode vad_mode,
|
| - int red_payload_type) {
|
| - RTC_DCHECK(speech_encoder_);
|
| - if (cng_payload_type != -1 || red_payload_type != -1) {
|
| - // The RED and CNG encoders need to be in sync with the speech encoder, so
|
| - // reset the latter to ensure its buffer is empty.
|
| - speech_encoder_->Reset();
|
| - }
|
| - AudioEncoder* encoder = CreateRedEncoder(
|
| - red_payload_type, speech_encoder_, &red_encoder_);
|
| - CreateCngEncoder(cng_payload_type, vad_mode, encoder, &cng_encoder_);
|
| -}
|
| -
|
| -AudioEncoder* CodecOwner::Encoder() {
|
| - const auto& const_this = *this;
|
| - return const_cast<AudioEncoder*>(const_this.Encoder());
|
| -}
|
| -
|
| -const AudioEncoder* CodecOwner::Encoder() const {
|
| - if (cng_encoder_)
|
| - return cng_encoder_.get();
|
| - if (red_encoder_)
|
| - return red_encoder_.get();
|
| - return speech_encoder_;
|
| -}
|
| -
|
| -} // namespace acm2
|
| -} // namespace webrtc
|
|
|