Reland "Default enable WebRTC-SendSideBwe-WithOverhead."

This is a reland of 87c1950841c3f5e465e1663cc922717ce191e192

Original change's description:
> Default enable WebRTC-SendSideBwe-WithOverhead.
>
> Bug: webrtc:6762
> Change-Id: I18ace06a33b3b60d5a19796d4769f70cd977d604
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188801
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Ali Tofigh <alito@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32472}

Bug: webrtc:6762
Change-Id: Icf096a8755d29600a13bd08b1f22f5a79de21e90
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190143
Reviewed-by: Ali Tofigh <alito@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32492}
This commit is contained in:
Jakob Ivarsson
2020-10-22 13:01:07 +02:00
committed by Commit Bot
parent 0fb0eb3e80
commit 1dbe30c7e8
11 changed files with 98 additions and 89 deletions

View File

@ -37,6 +37,9 @@
namespace webrtc {
namespace {
constexpr int kOverheadBytesPerPacket = 50;
// The absolute difference between the input and output (the first channel) is
// compared vs |tolerance|. The parameter |delay| is used to correct for codec
// delays.
@ -356,6 +359,7 @@ class AudioDecoderIsacFloatTest : public AudioDecoderTest {
config.frame_size_ms =
1000 * static_cast<int>(frame_size_) / codec_input_rate_hz_;
audio_encoder_.reset(new AudioEncoderIsacFloatImpl(config));
audio_encoder_->OnReceivedOverhead(kOverheadBytesPerPacket);
AudioDecoderIsacFloatImpl::Config decoder_config;
decoder_config.sample_rate_hz = codec_input_rate_hz_;
@ -375,6 +379,7 @@ class AudioDecoderIsacSwbTest : public AudioDecoderTest {
config.frame_size_ms =
1000 * static_cast<int>(frame_size_) / codec_input_rate_hz_;
audio_encoder_.reset(new AudioEncoderIsacFloatImpl(config));
audio_encoder_->OnReceivedOverhead(kOverheadBytesPerPacket);
AudioDecoderIsacFloatImpl::Config decoder_config;
decoder_config.sample_rate_hz = codec_input_rate_hz_;
@ -394,6 +399,7 @@ class AudioDecoderIsacFixTest : public AudioDecoderTest {
config.frame_size_ms =
1000 * static_cast<int>(frame_size_) / codec_input_rate_hz_;
audio_encoder_.reset(new AudioEncoderIsacFixImpl(config));
audio_encoder_->OnReceivedOverhead(kOverheadBytesPerPacket);
AudioDecoderIsacFixImpl::Config decoder_config;
decoder_config.sample_rate_hz = codec_input_rate_hz_;
@ -451,6 +457,7 @@ class AudioDecoderOpusTest
? AudioEncoderOpusConfig::ApplicationMode::kVoip
: AudioEncoderOpusConfig::ApplicationMode::kAudio;
audio_encoder_ = AudioEncoderOpus::MakeAudioEncoder(config, payload_type_);
audio_encoder_->OnReceivedOverhead(kOverheadBytesPerPacket);
}
const int opus_sample_rate_hz_{std::get<0>(GetParam())};
const int opus_num_channels_{std::get<1>(GetParam())};
@ -536,11 +543,18 @@ TEST_F(AudioDecoderIsacFloatTest, EncodeDecode) {
}
TEST_F(AudioDecoderIsacFloatTest, SetTargetBitrate) {
EXPECT_EQ(10000, SetAndGetTargetBitrate(audio_encoder_.get(), 9999));
EXPECT_EQ(10000, SetAndGetTargetBitrate(audio_encoder_.get(), 10000));
EXPECT_EQ(23456, SetAndGetTargetBitrate(audio_encoder_.get(), 23456));
EXPECT_EQ(32000, SetAndGetTargetBitrate(audio_encoder_.get(), 32000));
EXPECT_EQ(32000, SetAndGetTargetBitrate(audio_encoder_.get(), 32001));
const int overhead_rate =
8 * kOverheadBytesPerPacket * codec_input_rate_hz_ / frame_size_;
EXPECT_EQ(10000,
SetAndGetTargetBitrate(audio_encoder_.get(), 9999 + overhead_rate));
EXPECT_EQ(10000, SetAndGetTargetBitrate(audio_encoder_.get(),
10000 + overhead_rate));
EXPECT_EQ(23456, SetAndGetTargetBitrate(audio_encoder_.get(),
23456 + overhead_rate));
EXPECT_EQ(32000, SetAndGetTargetBitrate(audio_encoder_.get(),
32000 + overhead_rate));
EXPECT_EQ(32000, SetAndGetTargetBitrate(audio_encoder_.get(),
32001 + overhead_rate));
}
TEST_F(AudioDecoderIsacSwbTest, EncodeDecode) {
@ -553,11 +567,18 @@ TEST_F(AudioDecoderIsacSwbTest, EncodeDecode) {
}
TEST_F(AudioDecoderIsacSwbTest, SetTargetBitrate) {
EXPECT_EQ(10000, SetAndGetTargetBitrate(audio_encoder_.get(), 9999));
EXPECT_EQ(10000, SetAndGetTargetBitrate(audio_encoder_.get(), 10000));
EXPECT_EQ(23456, SetAndGetTargetBitrate(audio_encoder_.get(), 23456));
EXPECT_EQ(56000, SetAndGetTargetBitrate(audio_encoder_.get(), 56000));
EXPECT_EQ(56000, SetAndGetTargetBitrate(audio_encoder_.get(), 56001));
const int overhead_rate =
8 * kOverheadBytesPerPacket * codec_input_rate_hz_ / frame_size_;
EXPECT_EQ(10000,
SetAndGetTargetBitrate(audio_encoder_.get(), 9999 + overhead_rate));
EXPECT_EQ(10000, SetAndGetTargetBitrate(audio_encoder_.get(),
10000 + overhead_rate));
EXPECT_EQ(23456, SetAndGetTargetBitrate(audio_encoder_.get(),
23456 + overhead_rate));
EXPECT_EQ(56000, SetAndGetTargetBitrate(audio_encoder_.get(),
56000 + overhead_rate));
EXPECT_EQ(56000, SetAndGetTargetBitrate(audio_encoder_.get(),
56001 + overhead_rate));
}
TEST_F(AudioDecoderIsacFixTest, EncodeDecode) {
@ -577,11 +598,18 @@ TEST_F(AudioDecoderIsacFixTest, EncodeDecode) {
}
TEST_F(AudioDecoderIsacFixTest, SetTargetBitrate) {
EXPECT_EQ(10000, SetAndGetTargetBitrate(audio_encoder_.get(), 9999));
EXPECT_EQ(10000, SetAndGetTargetBitrate(audio_encoder_.get(), 10000));
EXPECT_EQ(23456, SetAndGetTargetBitrate(audio_encoder_.get(), 23456));
EXPECT_EQ(32000, SetAndGetTargetBitrate(audio_encoder_.get(), 32000));
EXPECT_EQ(32000, SetAndGetTargetBitrate(audio_encoder_.get(), 32001));
const int overhead_rate =
8 * kOverheadBytesPerPacket * codec_input_rate_hz_ / frame_size_;
EXPECT_EQ(10000,
SetAndGetTargetBitrate(audio_encoder_.get(), 9999 + overhead_rate));
EXPECT_EQ(10000, SetAndGetTargetBitrate(audio_encoder_.get(),
10000 + overhead_rate));
EXPECT_EQ(23456, SetAndGetTargetBitrate(audio_encoder_.get(),
23456 + overhead_rate));
EXPECT_EQ(32000, SetAndGetTargetBitrate(audio_encoder_.get(),
32000 + overhead_rate));
EXPECT_EQ(32000, SetAndGetTargetBitrate(audio_encoder_.get(),
32001 + overhead_rate));
}
TEST_F(AudioDecoderG722Test, EncodeDecode) {
@ -622,11 +650,18 @@ TEST_P(AudioDecoderOpusTest, EncodeDecode) {
}
TEST_P(AudioDecoderOpusTest, SetTargetBitrate) {
EXPECT_EQ(6000, SetAndGetTargetBitrate(audio_encoder_.get(), 5999));
EXPECT_EQ(6000, SetAndGetTargetBitrate(audio_encoder_.get(), 6000));
EXPECT_EQ(32000, SetAndGetTargetBitrate(audio_encoder_.get(), 32000));
EXPECT_EQ(510000, SetAndGetTargetBitrate(audio_encoder_.get(), 510000));
EXPECT_EQ(510000, SetAndGetTargetBitrate(audio_encoder_.get(), 511000));
const int overhead_rate =
8 * kOverheadBytesPerPacket * codec_input_rate_hz_ / frame_size_;
EXPECT_EQ(6000,
SetAndGetTargetBitrate(audio_encoder_.get(), 5999 + overhead_rate));
EXPECT_EQ(6000,
SetAndGetTargetBitrate(audio_encoder_.get(), 6000 + overhead_rate));
EXPECT_EQ(32000, SetAndGetTargetBitrate(audio_encoder_.get(),
32000 + overhead_rate));
EXPECT_EQ(510000, SetAndGetTargetBitrate(audio_encoder_.get(),
510000 + overhead_rate));
EXPECT_EQ(510000, SetAndGetTargetBitrate(audio_encoder_.get(),
511000 + overhead_rate));
}
} // namespace webrtc