Fixing config for Audio BWE.

The unit was kbps but the one default use of it is in bps. The inconsistency should be fixed.

BUG=webrtc:6670

Review-Url: https://codereview.webrtc.org/2247213005
Cr-Commit-Position: refs/heads/master@{#14955}
This commit is contained in:
minyue 2016-11-07 09:29:22 -08:00 committed by Commit bot
parent 8927b0596c
commit 10cbb4648f
7 changed files with 37 additions and 37 deletions

View File

@ -41,8 +41,8 @@ std::string AudioSendStream::Config::ToString() const {
ss << "{rtp: " << rtp.ToString();
ss << ", send_transport: " << (send_transport ? "(Transport)" : "nullptr");
ss << ", voe_channel_id: " << voe_channel_id;
ss << ", min_bitrate_kbps: " << min_bitrate_kbps;
ss << ", max_bitrate_kbps: " << max_bitrate_kbps;
ss << ", min_bitrate_bps: " << min_bitrate_bps;
ss << ", max_bitrate_bps: " << max_bitrate_bps;
ss << ", send_codec_spec: " << send_codec_spec.ToString();
ss << '}';
return ss.str();

View File

@ -90,8 +90,8 @@ class AudioSendStream {
// Bitrate limits used for variable audio bitrate streams. Set both to -1 to
// disable audio bitrate adaptation.
// Note: This is still an experimental feature and not ready for real usage.
int min_bitrate_kbps = -1;
int max_bitrate_kbps = -1;
int min_bitrate_bps = -1;
int max_bitrate_bps = -1;
// Defines whether to turn on audio network adaptor, and defines its config
// string.

View File

@ -101,12 +101,12 @@ AudioSendStream::~AudioSendStream() {
void AudioSendStream::Start() {
RTC_DCHECK(thread_checker_.CalledOnValidThread());
if (config_.min_bitrate_kbps != -1 && config_.max_bitrate_kbps != -1) {
RTC_DCHECK_GE(config_.max_bitrate_kbps, config_.min_bitrate_kbps);
if (config_.min_bitrate_bps != -1 && config_.max_bitrate_bps != -1) {
RTC_DCHECK_GE(config_.max_bitrate_bps, config_.min_bitrate_bps);
rtc::Event thread_sync_event(false /* manual_reset */, false);
worker_queue_->PostTask([this, &thread_sync_event] {
bitrate_allocator_->AddObserver(this, config_.min_bitrate_kbps * 1000,
config_.max_bitrate_kbps * 1000, 0, true);
bitrate_allocator_->AddObserver(this, config_.min_bitrate_bps,
config_.max_bitrate_bps, 0, true);
thread_sync_event.Set();
});
thread_sync_event.Wait(rtc::Event::kForever);
@ -249,10 +249,10 @@ uint32_t AudioSendStream::OnBitrateUpdated(uint32_t bitrate_bps,
uint8_t fraction_loss,
int64_t rtt) {
RTC_DCHECK_GE(bitrate_bps,
static_cast<uint32_t>(config_.min_bitrate_kbps * 1000));
static_cast<uint32_t>(config_.min_bitrate_bps));
// The bitrate allocator might allocate an higher than max configured bitrate
// if there is room, to allow for, as example, extra FEC. Ignore that for now.
const uint32_t max_bitrate_bps = config_.max_bitrate_kbps * 1000;
const uint32_t max_bitrate_bps = config_.max_bitrate_bps;
if (bitrate_bps > max_bitrate_bps)
bitrate_bps = max_bitrate_bps;

View File

@ -215,8 +215,8 @@ TEST(AudioSendStreamTest, ConfigToString) {
config.rtp.ssrc = kSsrc;
config.rtp.c_name = kCName;
config.voe_channel_id = kChannelId;
config.min_bitrate_kbps = 12;
config.max_bitrate_kbps = 34;
config.min_bitrate_bps = 12000;
config.max_bitrate_bps = 34000;
config.send_codec_spec.nack_enabled = true;
config.send_codec_spec.transport_cc_enabled = false;
config.send_codec_spec.enable_codec_fec = true;
@ -233,7 +233,7 @@ TEST(AudioSendStreamTest, ConfigToString) {
"{rtp: {ssrc: 1234, extensions: [{uri: "
"urn:ietf:params:rtp-hdrext:ssrc-audio-level, id: 2}], nack: "
"{rtp_history_ms: 0}, c_name: foo_name}, send_transport: nullptr, "
"voe_channel_id: 1, min_bitrate_kbps: 12, max_bitrate_kbps: 34, "
"voe_channel_id: 1, min_bitrate_bps: 12000, max_bitrate_bps: 34000, "
"send_codec_spec: {nack_enabled: true, transport_cc_enabled: false, "
"enable_codec_fec: true, enable_opus_dtx: false, opus_max_playback_rate: "
"32000, cng_payload_type: 42, cng_plfreq: 56, min_ptime: 20, max_ptime: "

View File

@ -212,8 +212,8 @@ void RampUpTester::ModifyAudioConfigs(
send_config->rtp.ssrc = audio_ssrcs_[0];
send_config->rtp.extensions.clear();
send_config->min_bitrate_kbps = 6;
send_config->max_bitrate_kbps = 60;
send_config->min_bitrate_bps = 6000;
send_config->max_bitrate_bps = 60000;
bool transport_cc = false;
if (extension_type_ == RtpExtension::kAbsSendTimeUri) {

View File

@ -83,16 +83,16 @@ constexpr int kNackRtpHistoryMs = 5000;
// 64-128 kb/s for FB stereo music.
// The current implementation applies the following values to mono signals,
// and multiplies them by 2 for stereo.
const int kOpusBitrateNb = 12000;
const int kOpusBitrateWb = 20000;
const int kOpusBitrateFb = 32000;
const int kOpusBitrateNbBps = 12000;
const int kOpusBitrateWbBps = 20000;
const int kOpusBitrateFbBps = 32000;
// Opus bitrate should be in the range between 6000 and 510000.
const int kOpusMinBitrate = 6000;
const int kOpusMaxBitrate = 510000;
const int kOpusMinBitrateBps = 6000;
const int kOpusMaxBitrateBps = 510000;
// iSAC bitrate should be <= 56000.
const int kIsacMaxBitrate = 56000;
const int kIsacMaxBitrateBps = 56000;
// Default audio dscp value.
// See http://tools.ietf.org/html/rfc2474 for details.
@ -222,18 +222,19 @@ int GetOpusBitrate(const AudioCodec& codec, int max_playback_rate) {
}
if (bitrate <= 0) {
if (max_playback_rate <= 8000) {
bitrate = kOpusBitrateNb;
bitrate = kOpusBitrateNbBps;
} else if (max_playback_rate <= 16000) {
bitrate = kOpusBitrateWb;
bitrate = kOpusBitrateWbBps;
} else {
bitrate = kOpusBitrateFb;
bitrate = kOpusBitrateFbBps;
}
if (IsCodecFeatureEnabled(codec, kCodecParamStereo)) {
bitrate *= 2;
}
} else if (bitrate < kOpusMinBitrate || bitrate > kOpusMaxBitrate) {
bitrate = (bitrate < kOpusMinBitrate) ? kOpusMinBitrate : kOpusMaxBitrate;
} else if (bitrate < kOpusMinBitrateBps || bitrate > kOpusMaxBitrateBps) {
bitrate = (bitrate < kOpusMinBitrateBps) ? kOpusMinBitrateBps
: kOpusMaxBitrateBps;
std::string rate_source =
use_param ? "Codec parameter \"maxaveragebitrate\"" :
"Supplied Opus bitrate";
@ -478,9 +479,9 @@ class WebRtcVoiceCodecs final {
};
const WebRtcVoiceCodecs::CodecPref WebRtcVoiceCodecs::kCodecPrefs[11] = {
{kOpusCodecName, 48000, 2, 111, true, {10, 20, 40, 60}, kOpusMaxBitrate},
{kIsacCodecName, 16000, 1, 103, true, {30, 60}, kIsacMaxBitrate},
{kIsacCodecName, 32000, 1, 104, true, {30}, kIsacMaxBitrate},
{kOpusCodecName, 48000, 2, 111, true, {10, 20, 40, 60}, kOpusMaxBitrateBps},
{kIsacCodecName, 16000, 1, 103, true, {30, 60}, kIsacMaxBitrateBps},
{kIsacCodecName, 32000, 1, 104, true, {30}, kIsacMaxBitrateBps},
// G722 should be advertised as 8000 Hz because of the RFC "bug".
{kG722CodecName, 8000, 1, 9, false, {10, 20, 30, 40, 50, 60}},
{kIlbcCodecName, 8000, 1, 102, false, {20, 30, 40, 60}},
@ -489,8 +490,7 @@ const WebRtcVoiceCodecs::CodecPref WebRtcVoiceCodecs::kCodecPrefs[11] = {
{kCnCodecName, 32000, 1, 106, false, {}},
{kCnCodecName, 16000, 1, 105, false, {}},
{kCnCodecName, 8000, 1, 13, false, {}},
{kDtmfCodecName, 8000, 1, 126, false, {}}
};
{kDtmfCodecName, 8000, 1, 126, false, {}}};
rtc::Optional<int> ComputeSendBitrate(int max_send_bitrate_bps,
int rtp_max_bitrate_bps,
@ -1392,8 +1392,8 @@ class WebRtcVoiceMediaChannel::WebRtcAudioSendStream
"Enabled") {
// TODO(mflodman): Keep testing this and set proper values.
// Note: This is an early experiment currently only supported by Opus.
config_.min_bitrate_kbps = kOpusMinBitrate;
config_.max_bitrate_kbps = kOpusBitrateFb;
config_.min_bitrate_bps = kOpusMinBitrateBps;
config_.max_bitrate_bps = kOpusBitrateFbBps;
}
stream_ = call_->CreateAudioSendStream(config_);
RTC_CHECK(stream_);

View File

@ -46,8 +46,8 @@ constexpr int kPayloadTypeVP8 = 123;
constexpr int kPayloadTypeVP9 = 124;
constexpr size_t kMaxComparisons = 10;
constexpr char kSyncGroup[] = "av_sync";
constexpr int kOpusMinBitrate = 6000;
constexpr int kOpusBitrateFb = 32000;
constexpr int kOpusMinBitrateBps = 6000;
constexpr int kOpusBitrateFbBps = 32000;
struct VoiceEngineState {
VoiceEngineState()
@ -1264,8 +1264,8 @@ void VideoQualityTest::SetupAudio(int send_channel_id,
audio_send_config_.rtp.extensions.push_back(
webrtc::RtpExtension(webrtc::RtpExtension::kTransportSequenceNumberUri,
test::kTransportSequenceNumberExtensionId));
audio_send_config_.min_bitrate_kbps = kOpusMinBitrate / 1000;
audio_send_config_.max_bitrate_kbps = kOpusBitrateFb / 1000;
audio_send_config_.min_bitrate_bps = kOpusMinBitrateBps;
audio_send_config_.max_bitrate_bps = kOpusBitrateFbBps;
}
audio_send_config_.send_codec_spec.codec_inst =
CodecInst{120, "OPUS", 48000, 960, 2, 64000};