Delete support for enabling adaptive isac mode
This appears unused. If deleted, other code related to isac bandwidth estimation becomes unused and may be deleted in followup cls. Bug: webrtc:10098 Change-Id: Ifeac2e90de895b12c337ea28cc33704350b9abf4 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153667 Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Commit-Queue: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29252}
This commit is contained in:
@ -370,15 +370,13 @@ rtc_source_set("ilbc_c") {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
rtc_static_library("isac_common") {
|
rtc_source_set("isac_common") {
|
||||||
poisonous = [ "audio_codecs" ]
|
poisonous = [ "audio_codecs" ]
|
||||||
sources = [
|
sources = [
|
||||||
"codecs/isac/audio_decoder_isac_t.h",
|
"codecs/isac/audio_decoder_isac_t.h",
|
||||||
"codecs/isac/audio_decoder_isac_t_impl.h",
|
"codecs/isac/audio_decoder_isac_t_impl.h",
|
||||||
"codecs/isac/audio_encoder_isac_t.h",
|
"codecs/isac/audio_encoder_isac_t.h",
|
||||||
"codecs/isac/audio_encoder_isac_t_impl.h",
|
"codecs/isac/audio_encoder_isac_t_impl.h",
|
||||||
"codecs/isac/locked_bandwidth_info.cc",
|
|
||||||
"codecs/isac/locked_bandwidth_info.h",
|
|
||||||
]
|
]
|
||||||
deps = [
|
deps = [
|
||||||
":isac_bwinfo",
|
":isac_bwinfo",
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
#include "absl/types/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "api/audio_codecs/audio_decoder.h"
|
#include "api/audio_codecs/audio_decoder.h"
|
||||||
#include "api/scoped_refptr.h"
|
#include "api/scoped_refptr.h"
|
||||||
#include "modules/audio_coding/codecs/isac/locked_bandwidth_info.h"
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
#include "rtc_base/constructor_magic.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
@ -26,7 +25,6 @@ class AudioDecoderIsacT final : public AudioDecoder {
|
|||||||
public:
|
public:
|
||||||
struct Config {
|
struct Config {
|
||||||
bool IsOk() const;
|
bool IsOk() const;
|
||||||
rtc::scoped_refptr<LockedIsacBandwidthInfo> bwinfo;
|
|
||||||
int sample_rate_hz = 16000;
|
int sample_rate_hz = 16000;
|
||||||
};
|
};
|
||||||
explicit AudioDecoderIsacT(const Config& config);
|
explicit AudioDecoderIsacT(const Config& config);
|
||||||
@ -52,7 +50,6 @@ class AudioDecoderIsacT final : public AudioDecoder {
|
|||||||
private:
|
private:
|
||||||
typename T::instance_type* isac_state_;
|
typename T::instance_type* isac_state_;
|
||||||
int sample_rate_hz_;
|
int sample_rate_hz_;
|
||||||
rtc::scoped_refptr<LockedIsacBandwidthInfo> bwinfo_;
|
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderIsacT);
|
RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderIsacT);
|
||||||
};
|
};
|
||||||
|
@ -22,16 +22,11 @@ bool AudioDecoderIsacT<T>::Config::IsOk() const {
|
|||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
AudioDecoderIsacT<T>::AudioDecoderIsacT(const Config& config)
|
AudioDecoderIsacT<T>::AudioDecoderIsacT(const Config& config)
|
||||||
: sample_rate_hz_(config.sample_rate_hz), bwinfo_(config.bwinfo) {
|
: sample_rate_hz_(config.sample_rate_hz) {
|
||||||
RTC_CHECK(config.IsOk()) << "Unsupported sample rate "
|
RTC_CHECK(config.IsOk()) << "Unsupported sample rate "
|
||||||
<< config.sample_rate_hz;
|
<< config.sample_rate_hz;
|
||||||
RTC_CHECK_EQ(0, T::Create(&isac_state_));
|
RTC_CHECK_EQ(0, T::Create(&isac_state_));
|
||||||
T::DecoderInit(isac_state_);
|
T::DecoderInit(isac_state_);
|
||||||
if (bwinfo_) {
|
|
||||||
IsacBandwidthInfo bi;
|
|
||||||
T::GetBandwidthInfo(isac_state_, &bi);
|
|
||||||
bwinfo_->Set(bi);
|
|
||||||
}
|
|
||||||
RTC_CHECK_EQ(0, T::SetDecSampRate(isac_state_, sample_rate_hz_));
|
RTC_CHECK_EQ(0, T::SetDecSampRate(isac_state_, sample_rate_hz_));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,11 +73,6 @@ int AudioDecoderIsacT<T>::IncomingPacket(const uint8_t* payload,
|
|||||||
int ret = T::UpdateBwEstimate(isac_state_, payload, payload_len,
|
int ret = T::UpdateBwEstimate(isac_state_, payload, payload_len,
|
||||||
rtp_sequence_number, rtp_timestamp,
|
rtp_sequence_number, rtp_timestamp,
|
||||||
arrival_timestamp);
|
arrival_timestamp);
|
||||||
if (bwinfo_) {
|
|
||||||
IsacBandwidthInfo bwinfo;
|
|
||||||
T::GetBandwidthInfo(isac_state_, &bwinfo);
|
|
||||||
bwinfo_->Set(bwinfo);
|
|
||||||
}
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
|
|
||||||
#include "api/audio_codecs/audio_encoder.h"
|
#include "api/audio_codecs/audio_encoder.h"
|
||||||
#include "api/scoped_refptr.h"
|
#include "api/scoped_refptr.h"
|
||||||
#include "modules/audio_coding/codecs/isac/locked_bandwidth_info.h"
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
#include "rtc_base/constructor_magic.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
@ -30,8 +29,6 @@ class AudioEncoderIsacT final : public AudioEncoder {
|
|||||||
struct Config {
|
struct Config {
|
||||||
bool IsOk() const;
|
bool IsOk() const;
|
||||||
|
|
||||||
rtc::scoped_refptr<LockedIsacBandwidthInfo> bwinfo;
|
|
||||||
|
|
||||||
int payload_type = 103;
|
int payload_type = 103;
|
||||||
int sample_rate_hz = 16000;
|
int sample_rate_hz = 16000;
|
||||||
int frame_size_ms = 30;
|
int frame_size_ms = 30;
|
||||||
@ -39,14 +36,6 @@ class AudioEncoderIsacT final : public AudioEncoder {
|
|||||||
// rate, in bits/s.
|
// rate, in bits/s.
|
||||||
int max_payload_size_bytes = -1;
|
int max_payload_size_bytes = -1;
|
||||||
int max_bit_rate = -1;
|
int max_bit_rate = -1;
|
||||||
|
|
||||||
// If true, the encoder will dynamically adjust frame size and bit rate;
|
|
||||||
// the configured values are then merely the starting point.
|
|
||||||
bool adaptive_mode = false;
|
|
||||||
|
|
||||||
// In adaptive mode, prevent adaptive changes to the frame size. (Not used
|
|
||||||
// in nonadaptive mode.)
|
|
||||||
bool enforce_frame_size = false;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit AudioEncoderIsacT(const Config& config);
|
explicit AudioEncoderIsacT(const Config& config);
|
||||||
@ -74,7 +63,6 @@ class AudioEncoderIsacT final : public AudioEncoder {
|
|||||||
|
|
||||||
Config config_;
|
Config config_;
|
||||||
typename T::instance_type* isac_state_ = nullptr;
|
typename T::instance_type* isac_state_ = nullptr;
|
||||||
rtc::scoped_refptr<LockedIsacBandwidthInfo> bwinfo_;
|
|
||||||
|
|
||||||
// Have we accepted input but not yet emitted it in a packet?
|
// Have we accepted input but not yet emitted it in a packet?
|
||||||
bool packet_in_progress_ = false;
|
bool packet_in_progress_ = false;
|
||||||
|
@ -21,8 +21,7 @@ bool AudioEncoderIsacT<T>::Config::IsOk() const {
|
|||||||
return false;
|
return false;
|
||||||
if (max_payload_size_bytes < 120 && max_payload_size_bytes != -1)
|
if (max_payload_size_bytes < 120 && max_payload_size_bytes != -1)
|
||||||
return false;
|
return false;
|
||||||
if (adaptive_mode && !bwinfo)
|
|
||||||
return false;
|
|
||||||
switch (sample_rate_hz) {
|
switch (sample_rate_hz) {
|
||||||
case 16000:
|
case 16000:
|
||||||
if (max_bit_rate > 53400)
|
if (max_bit_rate > 53400)
|
||||||
@ -78,8 +77,6 @@ size_t AudioEncoderIsacT<T>::Max10MsFramesInAPacket() const {
|
|||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
int AudioEncoderIsacT<T>::GetTargetBitrate() const {
|
int AudioEncoderIsacT<T>::GetTargetBitrate() const {
|
||||||
if (config_.adaptive_mode)
|
|
||||||
return -1;
|
|
||||||
return config_.bit_rate == 0 ? kDefaultBitRate : config_.bit_rate;
|
return config_.bit_rate == 0 ? kDefaultBitRate : config_.bit_rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,11 +90,6 @@ AudioEncoder::EncodedInfo AudioEncoderIsacT<T>::EncodeImpl(
|
|||||||
packet_in_progress_ = true;
|
packet_in_progress_ = true;
|
||||||
packet_timestamp_ = rtp_timestamp;
|
packet_timestamp_ = rtp_timestamp;
|
||||||
}
|
}
|
||||||
if (bwinfo_) {
|
|
||||||
IsacBandwidthInfo bwinfo = bwinfo_->Get();
|
|
||||||
T::SetBandwidthInfo(isac_state_, &bwinfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t encoded_bytes = encoded->AppendData(
|
size_t encoded_bytes = encoded->AppendData(
|
||||||
kSufficientEncodeBufferSizeBytes, [&](rtc::ArrayView<uint8_t> encoded) {
|
kSufficientEncodeBufferSizeBytes, [&](rtc::ArrayView<uint8_t> encoded) {
|
||||||
int r = T::Encode(isac_state_, audio.data(), encoded.data());
|
int r = T::Encode(isac_state_, audio.data(), encoded.data());
|
||||||
@ -131,19 +123,14 @@ template <typename T>
|
|||||||
void AudioEncoderIsacT<T>::RecreateEncoderInstance(const Config& config) {
|
void AudioEncoderIsacT<T>::RecreateEncoderInstance(const Config& config) {
|
||||||
RTC_CHECK(config.IsOk());
|
RTC_CHECK(config.IsOk());
|
||||||
packet_in_progress_ = false;
|
packet_in_progress_ = false;
|
||||||
bwinfo_ = config.bwinfo;
|
|
||||||
if (isac_state_)
|
if (isac_state_)
|
||||||
RTC_CHECK_EQ(0, T::Free(isac_state_));
|
RTC_CHECK_EQ(0, T::Free(isac_state_));
|
||||||
RTC_CHECK_EQ(0, T::Create(&isac_state_));
|
RTC_CHECK_EQ(0, T::Create(&isac_state_));
|
||||||
RTC_CHECK_EQ(0, T::EncoderInit(isac_state_, config.adaptive_mode ? 0 : 1));
|
RTC_CHECK_EQ(0, T::EncoderInit(isac_state_, 1));
|
||||||
RTC_CHECK_EQ(0, T::SetEncSampRate(isac_state_, config.sample_rate_hz));
|
RTC_CHECK_EQ(0, T::SetEncSampRate(isac_state_, config.sample_rate_hz));
|
||||||
const int bit_rate = config.bit_rate == 0 ? kDefaultBitRate : config.bit_rate;
|
const int bit_rate = config.bit_rate == 0 ? kDefaultBitRate : config.bit_rate;
|
||||||
if (config.adaptive_mode) {
|
|
||||||
RTC_CHECK_EQ(0, T::ControlBwe(isac_state_, bit_rate, config.frame_size_ms,
|
|
||||||
config.enforce_frame_size));
|
|
||||||
} else {
|
|
||||||
RTC_CHECK_EQ(0, T::Control(isac_state_, bit_rate, config.frame_size_ms));
|
RTC_CHECK_EQ(0, T::Control(isac_state_, bit_rate, config.frame_size_ms));
|
||||||
}
|
|
||||||
if (config.max_payload_size_bytes != -1)
|
if (config.max_payload_size_bytes != -1)
|
||||||
RTC_CHECK_EQ(
|
RTC_CHECK_EQ(
|
||||||
0, T::SetMaxPayloadSize(isac_state_, config.max_payload_size_bytes));
|
0, T::SetMaxPayloadSize(isac_state_, config.max_payload_size_bytes));
|
||||||
|
@ -1,21 +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 "modules/audio_coding/codecs/isac/locked_bandwidth_info.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
|
||||||
|
|
||||||
LockedIsacBandwidthInfo::LockedIsacBandwidthInfo() : ref_count_(0) {
|
|
||||||
bwinfo_.in_use = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
LockedIsacBandwidthInfo::~LockedIsacBandwidthInfo() = default;
|
|
||||||
|
|
||||||
} // namespace webrtc
|
|
@ -1,56 +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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef MODULES_AUDIO_CODING_CODECS_ISAC_LOCKED_BANDWIDTH_INFO_H_
|
|
||||||
#define MODULES_AUDIO_CODING_CODECS_ISAC_LOCKED_BANDWIDTH_INFO_H_
|
|
||||||
|
|
||||||
#include "modules/audio_coding/codecs/isac/bandwidth_info.h"
|
|
||||||
#include "rtc_base/atomic_ops.h"
|
|
||||||
#include "rtc_base/critical_section.h"
|
|
||||||
#include "rtc_base/thread_annotations.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
|
||||||
|
|
||||||
// An IsacBandwidthInfo that's safe to access from multiple threads because
|
|
||||||
// it's protected by a mutex.
|
|
||||||
class LockedIsacBandwidthInfo final {
|
|
||||||
public:
|
|
||||||
LockedIsacBandwidthInfo();
|
|
||||||
~LockedIsacBandwidthInfo();
|
|
||||||
|
|
||||||
IsacBandwidthInfo Get() const {
|
|
||||||
rtc::CritScope lock(&lock_);
|
|
||||||
return bwinfo_;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Set(const IsacBandwidthInfo& bwinfo) {
|
|
||||||
rtc::CritScope lock(&lock_);
|
|
||||||
bwinfo_ = bwinfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
int AddRef() const { return rtc::AtomicOps::Increment(&ref_count_); }
|
|
||||||
|
|
||||||
int Release() const {
|
|
||||||
const int count = rtc::AtomicOps::Decrement(&ref_count_);
|
|
||||||
if (count == 0) {
|
|
||||||
delete this;
|
|
||||||
}
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
mutable volatile int ref_count_;
|
|
||||||
rtc::CriticalSection lock_;
|
|
||||||
IsacBandwidthInfo bwinfo_ RTC_GUARDED_BY(lock_);
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace webrtc
|
|
||||||
|
|
||||||
#endif // MODULES_AUDIO_CODING_CODECS_ISAC_LOCKED_BANDWIDTH_INFO_H_
|
|
@ -353,7 +353,6 @@ class AudioDecoderIsacFloatTest : public AudioDecoderTest {
|
|||||||
AudioEncoderIsacFloatImpl::Config config;
|
AudioEncoderIsacFloatImpl::Config config;
|
||||||
config.payload_type = payload_type_;
|
config.payload_type = payload_type_;
|
||||||
config.sample_rate_hz = codec_input_rate_hz_;
|
config.sample_rate_hz = codec_input_rate_hz_;
|
||||||
config.adaptive_mode = false;
|
|
||||||
config.frame_size_ms =
|
config.frame_size_ms =
|
||||||
1000 * static_cast<int>(frame_size_) / codec_input_rate_hz_;
|
1000 * static_cast<int>(frame_size_) / codec_input_rate_hz_;
|
||||||
audio_encoder_.reset(new AudioEncoderIsacFloatImpl(config));
|
audio_encoder_.reset(new AudioEncoderIsacFloatImpl(config));
|
||||||
@ -373,7 +372,6 @@ class AudioDecoderIsacSwbTest : public AudioDecoderTest {
|
|||||||
AudioEncoderIsacFloatImpl::Config config;
|
AudioEncoderIsacFloatImpl::Config config;
|
||||||
config.payload_type = payload_type_;
|
config.payload_type = payload_type_;
|
||||||
config.sample_rate_hz = codec_input_rate_hz_;
|
config.sample_rate_hz = codec_input_rate_hz_;
|
||||||
config.adaptive_mode = false;
|
|
||||||
config.frame_size_ms =
|
config.frame_size_ms =
|
||||||
1000 * static_cast<int>(frame_size_) / codec_input_rate_hz_;
|
1000 * static_cast<int>(frame_size_) / codec_input_rate_hz_;
|
||||||
audio_encoder_.reset(new AudioEncoderIsacFloatImpl(config));
|
audio_encoder_.reset(new AudioEncoderIsacFloatImpl(config));
|
||||||
@ -393,7 +391,6 @@ class AudioDecoderIsacFixTest : public AudioDecoderTest {
|
|||||||
AudioEncoderIsacFixImpl::Config config;
|
AudioEncoderIsacFixImpl::Config config;
|
||||||
config.payload_type = payload_type_;
|
config.payload_type = payload_type_;
|
||||||
config.sample_rate_hz = codec_input_rate_hz_;
|
config.sample_rate_hz = codec_input_rate_hz_;
|
||||||
config.adaptive_mode = false;
|
|
||||||
config.frame_size_ms =
|
config.frame_size_ms =
|
||||||
1000 * static_cast<int>(frame_size_) / codec_input_rate_hz_;
|
1000 * static_cast<int>(frame_size_) / codec_input_rate_hz_;
|
||||||
audio_encoder_.reset(new AudioEncoderIsacFixImpl(config));
|
audio_encoder_.reset(new AudioEncoderIsacFixImpl(config));
|
||||||
|
Reference in New Issue
Block a user