| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/media/webrtc_audio_capturer.h" | 5 #include "content/renderer/media/webrtc_audio_capturer.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 471 it != tracks_to_notify_format.end(); ++it) { | 471 it != tracks_to_notify_format.end(); ++it) { |
| 472 (*it)->OnSetFormat(output_params); | 472 (*it)->OnSetFormat(output_params); |
| 473 } | 473 } |
| 474 | 474 |
| 475 // Push the data to the processor for processing. | 475 // Push the data to the processor for processing. |
| 476 audio_processor->PushCaptureData(audio_source); | 476 audio_processor->PushCaptureData(audio_source); |
| 477 | 477 |
| 478 // Process and consume the data in the processor until there is not enough | 478 // Process and consume the data in the processor until there is not enough |
| 479 // data in the processor. | 479 // data in the processor. |
| 480 int16* output = NULL; | 480 int16* output = NULL; |
| 481 int new_volume = 0; |
| 481 while (audio_processor->ProcessAndConsumeData( | 482 while (audio_processor->ProcessAndConsumeData( |
| 482 audio_delay, current_volume, key_pressed, &output)) { | 483 audio_delay, current_volume, key_pressed, &new_volume, &output)) { |
| 483 // Feed the post-processed data to the tracks. | 484 // Feed the post-processed data to the tracks. |
| 484 for (TrackList::ItemList::const_iterator it = tracks.begin(); | 485 for (TrackList::ItemList::const_iterator it = tracks.begin(); |
| 485 it != tracks.end(); ++it) { | 486 it != tracks.end(); ++it) { |
| 486 (*it)->Capture(output, audio_delay, current_volume, key_pressed, | 487 (*it)->Capture(output, audio_delay, current_volume, key_pressed, |
| 487 need_audio_processing); | 488 need_audio_processing); |
| 488 } | 489 } |
| 489 // TODO(xians): Apply the new volume after AGC is working with the | 490 |
| 490 // MediaStreamAudioProcessor. | 491 if (new_volume) { |
| 492 SetVolume(new_volume); |
| 493 |
| 494 // Update the |current_volume| to avoid passing the old volume to AGC. |
| 495 current_volume = new_volume; |
| 496 } |
| 491 } | 497 } |
| 492 } | 498 } |
| 493 | 499 |
| 494 void WebRtcAudioCapturer::OnCaptureError() { | 500 void WebRtcAudioCapturer::OnCaptureError() { |
| 495 NOTIMPLEMENTED(); | 501 NOTIMPLEMENTED(); |
| 496 } | 502 } |
| 497 | 503 |
| 498 media::AudioParameters WebRtcAudioCapturer::source_audio_parameters() const { | 504 media::AudioParameters WebRtcAudioCapturer::source_audio_parameters() const { |
| 499 base::AutoLock auto_lock(lock_); | 505 base::AutoLock auto_lock(lock_); |
| 500 return audio_processor_ ? | 506 return audio_processor_ ? |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 575 const scoped_refptr<media::AudioCapturerSource>& source, | 581 const scoped_refptr<media::AudioCapturerSource>& source, |
| 576 media::AudioParameters params) { | 582 media::AudioParameters params) { |
| 577 // Create a new audio stream as source which uses the new source. | 583 // Create a new audio stream as source which uses the new source. |
| 578 SetCapturerSource(source, params.channel_layout(), | 584 SetCapturerSource(source, params.channel_layout(), |
| 579 static_cast<float>(params.sample_rate()), | 585 static_cast<float>(params.sample_rate()), |
| 580 params.effects(), | 586 params.effects(), |
| 581 constraints_); | 587 constraints_); |
| 582 } | 588 } |
| 583 | 589 |
| 584 } // namespace content | 590 } // namespace content |
| OLD | NEW |