diff options
author | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-30 17:10:00 +0000 |
---|---|---|
committer | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-30 17:10:00 +0000 |
commit | b20491f58dc84518b90da3d57d5c121233bba6a4 (patch) | |
tree | 5f0612cf47ba284611383bd3d4c29d3a6f488895 | |
parent | cb8575a08f269e9befb79dcf4bfd0c52bdce13da (diff) | |
download | chromium_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.idl | 2 | ||||
-rw-r--r-- | chrome/renderer/media/cast_rtp_stream.cc | 15 | ||||
-rw-r--r-- | chrome/renderer/media/cast_rtp_stream.h | 4 |
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. |