| Index: content/renderer/media/webrtc_audio_device_impl.cc
|
| diff --git a/content/renderer/media/webrtc_audio_device_impl.cc b/content/renderer/media/webrtc_audio_device_impl.cc
|
| index c3ef160808f2464e57b69a3b5d71614943463d98..dc6d2ba91b4e369c7e06250275c79757c43c21d9 100644
|
| --- a/content/renderer/media/webrtc_audio_device_impl.cc
|
| +++ b/content/renderer/media/webrtc_audio_device_impl.cc
|
| @@ -174,10 +174,9 @@ int32_t WebRtcAudioDeviceImpl::Release() {
|
| }
|
|
|
| int WebRtcAudioDeviceImpl::Render(
|
| - const std::vector<float*>& audio_data,
|
| - int number_of_frames,
|
| + media::AudioBus* audio_bus,
|
| int audio_delay_milliseconds) {
|
| - DCHECK_LE(number_of_frames, output_buffer_size());
|
| + DCHECK_LE(audio_bus->frames(), output_buffer_size());
|
|
|
| {
|
| base::AutoLock auto_lock(lock_);
|
| @@ -185,7 +184,7 @@ int WebRtcAudioDeviceImpl::Render(
|
| output_delay_ms_ = audio_delay_milliseconds;
|
| }
|
|
|
| - const int channels = audio_data.size();
|
| + const int channels = audio_bus->channels();
|
| DCHECK_LE(channels, output_channels());
|
|
|
| int samples_per_sec = output_sample_rate();
|
| @@ -205,7 +204,7 @@ int WebRtcAudioDeviceImpl::Render(
|
| // Get audio samples in blocks of 10 milliseconds from the registered
|
| // webrtc::AudioTransport source. Keep reading until our internal buffer
|
| // is full.
|
| - while (accumulated_audio_samples < number_of_frames) {
|
| + while (accumulated_audio_samples < audio_bus->frames()) {
|
| // Get 10ms and append output to temporary byte buffer.
|
| audio_transport_callback_->NeedMorePlayData(samples_per_10_msec,
|
| bytes_per_sample_,
|
| @@ -222,13 +221,13 @@ int WebRtcAudioDeviceImpl::Render(
|
| for (int channel_index = 0; channel_index < channels; ++channel_index) {
|
| media::DeinterleaveAudioChannel(
|
| output_buffer_.get(),
|
| - audio_data[channel_index],
|
| + audio_bus->channel(channel_index),
|
| channels,
|
| channel_index,
|
| bytes_per_sample_,
|
| - number_of_frames);
|
| + audio_bus->frames());
|
| }
|
| - return number_of_frames;
|
| + return audio_bus->frames();
|
| }
|
|
|
| void WebRtcAudioDeviceImpl::OnRenderError() {
|
| @@ -237,11 +236,10 @@ void WebRtcAudioDeviceImpl::OnRenderError() {
|
| LOG(ERROR) << "OnRenderError()";
|
| }
|
|
|
| -void WebRtcAudioDeviceImpl::Capture(const std::vector<float*>& audio_data,
|
| - int number_of_frames,
|
| +void WebRtcAudioDeviceImpl::Capture(media::AudioBus* audio_bus,
|
| int audio_delay_milliseconds,
|
| double volume) {
|
| - DCHECK_LE(number_of_frames, input_buffer_size());
|
| + DCHECK_LE(audio_bus->frames(), input_buffer_size());
|
| #if defined(OS_WIN) || defined(OS_MACOSX)
|
| DCHECK_LE(volume, 1.0);
|
| #elif defined(OS_LINUX) || defined(OS_OPENBSD)
|
| @@ -261,15 +259,15 @@ void WebRtcAudioDeviceImpl::Capture(const std::vector<float*>& audio_data,
|
| output_delay_ms = output_delay_ms_;
|
| }
|
|
|
| - const int channels = audio_data.size();
|
| + const int channels = audio_bus->channels();
|
| DCHECK_LE(channels, input_channels());
|
| uint32_t new_mic_level = 0;
|
|
|
| // Interleave, scale, and clip input to int and store result in
|
| // a local byte buffer.
|
| - media::InterleaveFloatToInt(audio_data,
|
| + media::InterleaveFloatToInt(audio_bus,
|
| input_buffer_.get(),
|
| - number_of_frames,
|
| + audio_bus->frames(),
|
| input_audio_parameters_.bits_per_sample() / 8);
|
|
|
| int samples_per_sec = input_sample_rate();
|
| @@ -291,7 +289,7 @@ void WebRtcAudioDeviceImpl::Capture(const std::vector<float*>& audio_data,
|
| // Write audio samples in blocks of 10 milliseconds to the registered
|
| // webrtc::AudioTransport sink. Keep writing until our internal byte
|
| // buffer is empty.
|
| - while (accumulated_audio_samples < number_of_frames) {
|
| + while (accumulated_audio_samples < audio_bus->frames()) {
|
| // Deliver 10ms of recorded 16-bit linear PCM audio.
|
| audio_transport_callback_->RecordedDataIsAvailable(
|
| audio_byte_buffer,
|
|
|