summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-30 17:10:00 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-30 17:10:00 +0000
commitb20491f58dc84518b90da3d57d5c121233bba6a4 (patch)
tree5f0612cf47ba284611383bd3d4c29d3a6f488895
parentcb8575a08f269e9befb79dcf4bfd0c52bdce13da (diff)
downloadchromium_src-b20491f58dc84518b90da3d57d5c121233bba6a4.zip
chromium_src-b20491f58dc84518b90da3d57d5c121233bba6a4.tar.gz
chromium_src-b20491f58dc84518b90da3d57d5c121233bba6a4.tar.bz2
Cast: Clarify the unit of bitrate
This change is to clarify the unit used in cast.streaming APIs for bitrate. It should be in kilobits per second. And the unit conversion should be done just before converting to VideoSenderConfig and AudioSenderConfig which use bits per second as unit. This will improve the video quality for existing extensions which use kilobits per second. BUG=354267 NOTRY=true Review URL: https://codereview.chromium.org/214663008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260438 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/common/extensions/api/cast_streaming_rtp_stream.idl2
-rw-r--r--chrome/renderer/media/cast_rtp_stream.cc15
-rw-r--r--chrome/renderer/media/cast_rtp_stream.h4
3 files changed, 14 insertions, 7 deletions
diff --git a/chrome/common/extensions/api/cast_streaming_rtp_stream.idl b/chrome/common/extensions/api/cast_streaming_rtp_stream.idl
index 2098bd3..0443b32 100644
--- a/chrome/common/extensions/api/cast_streaming_rtp_stream.idl
+++ b/chrome/common/extensions/api/cast_streaming_rtp_stream.idl
@@ -25,8 +25,10 @@ namespace cast.streaming.rtpStream {
long? clockRate;
+ // Minimum bitrate in kilobits per second.
long? minBitrate;
+ // Maximum bitrate in kilobits per second.
long? maxBitrate;
// The number of channels.
diff --git a/chrome/renderer/media/cast_rtp_stream.cc b/chrome/renderer/media/cast_rtp_stream.cc
index aabcbd9..68c99c4 100644
--- a/chrome/renderer/media/cast_rtp_stream.cc
+++ b/chrome/renderer/media/cast_rtp_stream.cc
@@ -34,6 +34,9 @@ namespace {
const char kCodecNameOpus[] = "OPUS";
const char kCodecNameVp8[] = "VP8";
+// To convert from kilobits per second to bits to per second.
+const int kBitrateMultiplier = 1000;
+
// This constant defines the number of sets of audio data to buffer
// in the FIFO. If input audio and output data have different resampling
// rates then buffer is necessary to avoid audio glitches.
@@ -49,6 +52,7 @@ CastRtpPayloadParams DefaultOpusPayload() {
payload.codec_name = kCodecNameOpus;
payload.clock_rate = 48000;
payload.channels = 2;
+ // The value is 0 which means VBR.
payload.min_bitrate = payload.max_bitrate =
media::cast::kDefaultAudioEncoderBitrate;
return payload;
@@ -63,8 +67,8 @@ CastRtpPayloadParams DefaultVp8Payload() {
payload.clock_rate = 90000;
payload.width = 1280;
payload.height = 720;
- payload.min_bitrate = 50 * 1000;
- payload.max_bitrate = 2000 * 1000;
+ payload.min_bitrate = 50;
+ payload.max_bitrate = 2000;
return payload;
}
@@ -90,7 +94,7 @@ bool ToAudioSenderConfig(const CastRtpParams& params,
config->use_external_encoder = false;
config->frequency = params.payload.clock_rate;
config->channels = params.payload.channels;
- config->bitrate = params.payload.max_bitrate;
+ config->bitrate = params.payload.max_bitrate * kBitrateMultiplier;
config->codec = media::cast::transport::kPcm16;
if (params.payload.codec_name == kCodecNameOpus)
config->codec = media::cast::transport::kOpus;
@@ -107,8 +111,9 @@ bool ToVideoSenderConfig(const CastRtpParams& params,
config->use_external_encoder = false;
config->width = params.payload.width;
config->height = params.payload.height;
- config->min_bitrate = config->start_bitrate = params.payload.min_bitrate;
- config->max_bitrate = params.payload.max_bitrate;
+ config->min_bitrate = config->start_bitrate =
+ params.payload.min_bitrate * kBitrateMultiplier;
+ config->max_bitrate = params.payload.max_bitrate * kBitrateMultiplier;
if (params.payload.codec_name == kCodecNameVp8)
config->codec = media::cast::transport::kVp8;
else
diff --git a/chrome/renderer/media/cast_rtp_stream.h b/chrome/renderer/media/cast_rtp_stream.h
index f727f6e..c5e1102 100644
--- a/chrome/renderer/media/cast_rtp_stream.h
+++ b/chrome/renderer/media/cast_rtp_stream.h
@@ -47,10 +47,10 @@ struct CastRtpPayloadParams {
// Update frequency of payload sample.
int clock_rate;
- // Maximum bitrate.
+ // Maximum bitrate in kilobits per second.
int max_bitrate;
- // Minimum bitrate.
+ // Minimum bitrate in kilobits per second.
int min_bitrate;
// Number of audio channels.