diff options
author | minyue@webrtc.org <minyue@webrtc.org> | 2014-10-30 07:49:58 +0000 |
---|---|---|
committer | minyue@webrtc.org <minyue@webrtc.org> | 2014-10-30 07:49:58 +0000 |
commit | 00421721419518277402c17466408025e0eb9ffe (patch) | |
tree | bf739e12f20865d35f25b320b466f69f947a11fe | |
parent | 2f5b8b6ff1228e277abcd4079131600c7ec3b92f (diff) | |
download | talk-00421721419518277402c17466408025e0eb9ffe.tar.gz |
Revert 7563 "before rebase" due to wrong submission
> before rebase
TBR=minyue@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/31859004
git-svn-id: http://webrtc.googlecode.com/svn/trunk/talk@7566 4adac7df-926f-26a2-2b94-8c16560cd09d
-rw-r--r-- | media/webrtc/webrtcvoiceengine.cc | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/media/webrtc/webrtcvoiceengine.cc b/media/webrtc/webrtcvoiceengine.cc index 95e16e4..cf3a56f 100644 --- a/media/webrtc/webrtcvoiceengine.cc +++ b/media/webrtc/webrtcvoiceengine.cc @@ -117,15 +117,6 @@ static const int kNackMaxPackets = 250; // Codec parameters for Opus. // draft-spittka-payload-rtp-opus-03 - -// Recommended bitrates: -// 8-12 kb/s for NB speech, -// 16-20 kb/s for WB speech, -// 28-40 kb/s for FB speech, -// 48-64 kb/s for FB mono music, and -// 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. static const int kOpusBitrateNb = 12000; static const int kOpusBitrateWb = 20000; static const int kOpusBitrateFb = 32000; @@ -422,7 +413,7 @@ static bool IsOpusStereoEnabled(const AudioCodec& codec) { // otherwise. If the value (either from params or codec.bitrate) <=0, use the // default configuration. If the value is beyond feasible bit rate of Opus, // clamp it. Returns the Opus bit rate for operation. -static int GetOpusBitrate(const AudioCodec& codec, int max_playback_rate) { +static int GetOpusBitrate(const AudioCodec& codec) { int bitrate = 0; bool use_param = true; if (!codec.GetParam(kCodecParamMaxAverageBitrate, &bitrate)) { @@ -430,17 +421,8 @@ static int GetOpusBitrate(const AudioCodec& codec, int max_playback_rate) { use_param = false; } if (bitrate <= 0) { - if (max_playback_rate <= 8000) { - bitrate = kOpusBitrateNb; - } else if (max_playback_rate <= 16000) { - bitrate = kOpusBitrateWb; - } else { - bitrate = kOpusBitrateFb; - } - - if (IsOpusStereoEnabled(codec)) { - bitrate *= 2; - } + bitrate = IsOpusStereoEnabled(codec) ? kOpusStereoBitrate : + kOpusMonoBitrate; } else if (bitrate < kOpusMinBitrate || bitrate > kOpusMaxBitrate) { bitrate = (bitrate < kOpusMinBitrate) ? kOpusMinBitrate : kOpusMaxBitrate; std::string rate_source = @@ -481,8 +463,11 @@ static void GetOpusConfig(const AudioCodec& codec, webrtc::CodecInst* voe_codec, // the bitrate is not specified, i.e. is <= zero, we set it to the // appropriate default value for mono or stereo Opus. + // TODO(minyue): The determination of bit rate might take the maximum playback + // rate into account. + voe_codec->channels = IsOpusStereoEnabled(codec) ? 2 : 1; - voe_codec->rate = GetOpusBitrate(codec, *max_playback_rate); + voe_codec->rate = GetOpusBitrate(codec); } void WebRtcVoiceEngine::ConstructCodecs() { |