diff options
author | xians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-14 13:47:27 +0000 |
---|---|---|
committer | xians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-14 13:47:27 +0000 |
commit | 9040b8a52f88f7e54d787da5db320641b96166df (patch) | |
tree | 5642ad491aa40233eb233c63b47e80ebd5979126 /content/renderer/media | |
parent | 4f1a2e6e9f12e37c9ddce1e913bf92804e208ec4 (diff) | |
download | chromium_src-9040b8a52f88f7e54d787da5db320641b96166df.zip chromium_src-9040b8a52f88f7e54d787da5db320641b96166df.tar.gz chromium_src-9040b8a52f88f7e54d787da5db320641b96166df.tar.bz2 |
Limit the max volume to 255 before pass it to APM.
BUG=264611
Review URL: https://codereview.chromium.org/225143006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263624 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/media')
-rw-r--r-- | content/renderer/media/media_stream_audio_processor.cc | 2 | ||||
-rw-r--r-- | content/renderer/media/webrtc_audio_capturer.cc | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/content/renderer/media/media_stream_audio_processor.cc b/content/renderer/media/media_stream_audio_processor.cc index c83ffff..dcd9d40 100644 --- a/content/renderer/media/media_stream_audio_processor.cc +++ b/content/renderer/media/media_stream_audio_processor.cc @@ -11,6 +11,7 @@ #include "content/public/common/content_switches.h" #include "content/renderer/media/media_stream_audio_processor_options.h" #include "content/renderer/media/rtc_media_constraints.h" +#include "content/renderer/media/webrtc_audio_device_impl.h" #include "media/audio/audio_parameters.h" #include "media/base/audio_converter.h" #include "media/base/audio_fifo.h" @@ -474,6 +475,7 @@ int MediaStreamAudioProcessor::ProcessData(webrtc::AudioFrame* audio_frame, audio_processing_->set_stream_delay_ms(total_delay_ms); + DCHECK_LE(volume, WebRtcAudioDeviceImpl::kMaxVolumeLevel); webrtc::GainControl* agc = audio_processing_->gain_control(); int err = agc->set_stream_analog_level(volume); DCHECK_EQ(err, 0) << "set_stream_analog_level() error: " << err; diff --git a/content/renderer/media/webrtc_audio_capturer.cc b/content/renderer/media/webrtc_audio_capturer.cc index 482d25f..67882a1 100644 --- a/content/renderer/media/webrtc_audio_capturer.cc +++ b/content/renderer/media/webrtc_audio_capturer.cc @@ -460,11 +460,11 @@ void WebRtcAudioCapturer::Capture(media::AudioBus* audio_source, if (!running_) return; - // Map internal volume range of [0.0, 1.0] into [0, 255] used by the - // webrtc::VoiceEngine. webrtc::VoiceEngine will handle the case when the - // volume is higher than 255. + // Map internal volume range of [0.0, 1.0] into [0, 255] used by AGC. + // The volume can be higher than 255 on Linux, and it will be cropped to + // 255 since AGC does not allow values out of range. volume_ = static_cast<int>((volume * MaxVolume()) + 0.5); - current_volume = volume_; + current_volume = volume_ > MaxVolume() ? MaxVolume() : volume_; audio_delay = base::TimeDelta::FromMilliseconds(audio_delay_milliseconds); audio_delay_ = audio_delay; key_pressed_ = key_pressed; |