Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 1 | // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #include "content/renderer/media/webrtc_audio_capturer_sink_owner.h" |
| 6 | |
| 7 | namespace content { |
| 8 | |
| 9 | WebRtcAudioCapturerSinkOwner::WebRtcAudioCapturerSinkOwner( |
| 10 | WebRtcAudioCapturerSink* sink) |
| 11 | : delegate_(sink) { |
| 12 | } |
| 13 | |
Ben Murdoch | bb1529c | 2013-08-08 10:24:53 +0100 | [diff] [blame^] | 14 | int WebRtcAudioCapturerSinkOwner::CaptureData(const std::vector<int>& channels, |
| 15 | const int16* audio_data, |
| 16 | int sample_rate, |
| 17 | int number_of_channels, |
| 18 | int number_of_frames, |
| 19 | int audio_delay_milliseconds, |
| 20 | int current_volume, |
| 21 | bool need_audio_processing) { |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 22 | base::AutoLock lock(lock_); |
| 23 | if (delegate_) { |
Ben Murdoch | bb1529c | 2013-08-08 10:24:53 +0100 | [diff] [blame^] | 24 | return delegate_->CaptureData(channels, audio_data, sample_rate, |
| 25 | number_of_channels, number_of_frames, |
| 26 | audio_delay_milliseconds, current_volume, |
| 27 | need_audio_processing); |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 28 | } |
Ben Murdoch | bb1529c | 2013-08-08 10:24:53 +0100 | [diff] [blame^] | 29 | |
| 30 | return 0; |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 31 | } |
| 32 | |
| 33 | void WebRtcAudioCapturerSinkOwner::SetCaptureFormat( |
| 34 | const media::AudioParameters& params) { |
| 35 | base::AutoLock lock(lock_); |
| 36 | if (delegate_) |
| 37 | delegate_->SetCaptureFormat(params); |
| 38 | } |
| 39 | |
| 40 | bool WebRtcAudioCapturerSinkOwner::IsEqual( |
| 41 | const WebRtcAudioCapturerSink* other) const { |
| 42 | base::AutoLock lock(lock_); |
| 43 | return (other == delegate_); |
| 44 | } |
| 45 | |
| 46 | void WebRtcAudioCapturerSinkOwner::Reset() { |
| 47 | base::AutoLock lock(lock_); |
| 48 | delegate_ = NULL; |
| 49 | } |
| 50 | |
| 51 | } // namespace content |