summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorminyue@webrtc.org <minyue@webrtc.org>2014-10-30 07:49:58 +0000
committerminyue@webrtc.org <minyue@webrtc.org>2014-10-30 07:49:58 +0000
commit00421721419518277402c17466408025e0eb9ffe (patch)
treebf739e12f20865d35f25b320b466f69f947a11fe
parent2f5b8b6ff1228e277abcd4079131600c7ec3b92f (diff)
downloadtalk-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.cc29
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() {