Hooked up Opus CBR support when configured manually or through an SdpAudioFormat.

BUG=webrtc:7394

Review-Url: https://codereview.webrtc.org/2798403003
Cr-Commit-Position: refs/heads/master@{#17931}
This commit is contained in:
ossu
2017-04-28 07:33:18 -07:00
committed by Commit bot
parent eb44b39a21
commit 0d6195dd15
2 changed files with 15 additions and 1 deletions

View File

@ -256,6 +256,7 @@ AudioEncoderOpus::Config AudioEncoderOpus::CreateConfig(
config.max_playback_rate_hz = GetMaxPlaybackRate(format);
config.fec_enabled = (GetFormatParameter(format, "useinbandfec") == "1");
config.dtx_enabled = (GetFormatParameter(format, "usedtx") == "1");
config.cbr_enabled = (GetFormatParameter(format, "cbr") == "1");
config.bitrate_bps = rtc::Optional<int>(
CalculateBitrate(config.max_playback_rate_hz, config.num_channels,
GetFormatParameter(format, "maxaveragebitrate")));
@ -653,7 +654,11 @@ bool AudioEncoderOpus::RecreateEncoderInstance(const Config& config) {
RTC_CHECK_EQ(0,
WebRtcOpus_SetPacketLossRate(
inst_, static_cast<int32_t>(packet_loss_rate_ * 100 + .5)));
if (config.cbr_enabled) {
RTC_CHECK_EQ(0, WebRtcOpus_EnableCbr(inst_));
} else {
RTC_CHECK_EQ(0, WebRtcOpus_DisableCbr(inst_));
}
num_channels_to_encode_ = NumChannels();
next_frame_length_ms_ = config_.frame_size_ms;
return true;

View File

@ -583,6 +583,12 @@ TEST(AudioEncoderOpusTest, TestConfigFromParams) {
config = CreateConfigWithParameters({{"usedtx", "1"}});
EXPECT_TRUE(config.dtx_enabled);
config = CreateConfigWithParameters({{"cbr", "0"}});
EXPECT_FALSE(config.cbr_enabled);
config = CreateConfigWithParameters({{"cbr", "1"}});
EXPECT_TRUE(config.cbr_enabled);
config = CreateConfigWithParameters({{"maxplaybackrate", "12345"}});
EXPECT_EQ(12345, config.max_playback_rate_hz);
@ -633,6 +639,9 @@ TEST(AudioEncoderOpusTest, TestConfigFromInvalidParams) {
config = CreateConfigWithParameters({{"usedtx", "invalid"}});
EXPECT_EQ(default_config.dtx_enabled, config.dtx_enabled);
config = CreateConfigWithParameters({{"cbr", "invalid"}});
EXPECT_EQ(default_config.dtx_enabled, config.dtx_enabled);
config = CreateConfigWithParameters({{"maxplaybackrate", "0"}});
EXPECT_EQ(default_config.max_playback_rate_hz, config.max_playback_rate_hz);