Chromium Code Reviews| Index: content/renderer/media/webrtc_audio_device_impl.h |
| diff --git a/content/renderer/media/webrtc_audio_device_impl.h b/content/renderer/media/webrtc_audio_device_impl.h |
| index 4c43498a3903c6f6561e43b1cd0bd5f632f2be75..baff6409aaa73f1b4dbf88b3270864810477f03c 100644 |
| --- a/content/renderer/media/webrtc_audio_device_impl.h |
| +++ b/content/renderer/media/webrtc_audio_device_impl.h |
| @@ -91,7 +91,24 @@ |
| // |
| // - This class must be created on the main render thread. |
| // - The webrtc::AudioDeviceModule is reference counted. |
| -// - Recording is currently not supported on Mac OS X. |
| +// - Regarding the AGC: It aims at maintaining the same speech loudness level |
|
tommi (sloooow) - chröme
2012/03/26 15:26:40
s/It aims at maintaining/It aims to maintain
It's
henrika (OOO until Aug 14)
2012/03/27 09:20:38
Modified to "It aims to maintain a constant speech
|
| +// from the microphone. This is done by both controlling the analog |
| +// microphone gain and applying a digital gain. The microphone gain on the |
|
tommi (sloooow) - chröme
2012/03/26 15:26:40
s/a digital gain/digital gain
henrika (OOO until Aug 14)
2012/03/27 09:20:38
Done.
|
| +// sound card is slowly increased/decreased during speech only. By observing |
| +// the microphone control slider you can see it move when you speak. If you |
| +// scream, the slider moves downwards and then upwards again when you return |
| +// to normal. It is not uncommon that the slider hits the maximum. This |
| +// means that the maximum analog gain is not large enough to give the |
| +// desired loudness. Nevertheless, we can in general still attain the |
| +// desired loudness. If the microphone control slider is moved manually, |
| +// the analog adaptation restarts and returns to roughly the same position |
|
tommi (sloooow) - chröme
2012/03/26 15:26:40
s/analog adaptation/gain adaptation.
henrika (OOO until Aug 14)
2012/03/27 09:20:38
Actually, it is only the analog part that restarts
|
| +// as before the change if the circumstances are still the same. When the |
| +// input microphone signal causes saturation, the level is decreased |
| +// dramatically and has to re-adapt towards the old level. The adaptation |
| +// is a slowly varying process and at the beginning of a call this is |
|
tommi (sloooow) - chröme
2012/03/26 15:26:40
s/beginning of a call/beginning of capture
(there
henrika (OOO until Aug 14)
2012/03/27 09:20:38
Done.
|
| +// noticed by a slow increase in volume. Smaller changes in microphone input |
| +// level is leveled out by the built-in digital control. For larger |
| +// differences we need to rely on the slow adaptation. |
| // |
| class CONTENT_EXPORT WebRtcAudioDeviceImpl |
| : NON_EXPORTED_BASE(public webrtc::AudioDeviceModule), |
| @@ -120,7 +137,8 @@ class CONTENT_EXPORT WebRtcAudioDeviceImpl |
| // AudioInputDevice::CaptureCallback implementation. |
| virtual void Capture(const std::vector<float*>& audio_data, |
| size_t number_of_frames, |
| - size_t audio_delay_milliseconds) OVERRIDE; |
| + size_t audio_delay_milliseconds, |
| + double volume) OVERRIDE; |
| virtual void OnCaptureError() OVERRIDE; |
| // AudioInputDevice::CaptureEventHandler implementation. |
| @@ -258,7 +276,7 @@ class CONTENT_EXPORT WebRtcAudioDeviceImpl |
| return input_audio_parameters_.frames_per_buffer(); |
| } |
| size_t output_buffer_size() const { |
| - return input_audio_parameters_.frames_per_buffer(); |
| + return output_audio_parameters_.frames_per_buffer(); |
| } |
| int input_channels() const { |
| return input_audio_parameters_.channels(); |
| @@ -336,6 +354,9 @@ class CONTENT_EXPORT WebRtcAudioDeviceImpl |
| bool playing_; |
| bool recording_; |
| + // Local copy of the current Automatic Gain Control state. |
| + bool agc_is_enabled_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(WebRtcAudioDeviceImpl); |
| }; |