Chromium Code Reviews| Index: content/renderer/media/webrtc_local_audio_track.h |
| diff --git a/content/renderer/media/webrtc_local_audio_track.h b/content/renderer/media/webrtc_local_audio_track.h |
| index a3b818e1a37db8a2f724c9c1dd1049be962d8cbb..430f6ae2dd8d36dbd6b6b8fdbf327aed7d148fe6 100644 |
| --- a/content/renderer/media/webrtc_local_audio_track.h |
| +++ b/content/renderer/media/webrtc_local_audio_track.h |
| @@ -20,8 +20,13 @@ namespace cricket { |
| class AudioRenderer; |
| } |
| +namespace media { |
| +class AudioBus; |
| +} |
|
tommi (sloooow) - chröme
2013/09/12 20:40:55
} // media
no longer working on chromium
2013/09/17 13:08:01
Done.
|
| + |
| namespace content { |
| +class WebAudioCapturerSource; |
| class WebRtcAudioCapturer; |
| class WebRtcAudioCapturerSinkOwner; |
| @@ -38,7 +43,8 @@ class CONTENT_EXPORT WebRtcLocalAudioTrack |
| static scoped_refptr<WebRtcLocalAudioTrack> Create( |
| const std::string& id, |
| const scoped_refptr<WebRtcAudioCapturer>& capturer, |
| - webrtc::AudioSourceInterface* stream_source, |
| + WebAudioCapturerSource* webaudio_source, |
| + webrtc::AudioSourceInterface* track_source, |
| const webrtc::MediaConstraintsInterface* constraints); |
| // Add a sink to the track. This function will trigger a SetCaptureFormat() |
| @@ -58,13 +64,11 @@ class CONTENT_EXPORT WebRtcLocalAudioTrack |
| // should be called only once when audio track going away. |
| void Stop(); |
| - // Method called by the capturer to deliever the capture data. |
| - void CaptureData(const int16* audio_data, |
| - int number_of_channels, |
| - int number_of_frames, |
| - int audio_delay_milliseconds, |
| - int volume, |
| - bool key_pressed); |
| + // Method called by the capturer to deliver the capture data. |
| + void Capture(media::AudioBus* audio_source, |
| + int audio_delay_milliseconds, |
| + int volume, |
| + bool key_pressed); |
| // Method called by the capturer to set the audio parameters used by source |
| // of the capture data.. |
| @@ -72,10 +76,13 @@ class CONTENT_EXPORT WebRtcLocalAudioTrack |
| void SetCaptureFormat(const media::AudioParameters& params); |
| protected: |
| - WebRtcLocalAudioTrack(const std::string& label, |
| - const scoped_refptr<WebRtcAudioCapturer>& capturer, |
| - webrtc::AudioSourceInterface* track_source, |
| - const webrtc::MediaConstraintsInterface* constraints); |
| + WebRtcLocalAudioTrack( |
| + const std::string& label, |
| + const scoped_refptr<WebRtcAudioCapturer>& capturer, |
| + WebAudioCapturerSource* webaudio_source, |
| + webrtc::AudioSourceInterface* track_source, |
| + const webrtc::MediaConstraintsInterface* constraints); |
| + |
| virtual ~WebRtcLocalAudioTrack(); |
| private: |
| @@ -96,6 +103,10 @@ class CONTENT_EXPORT WebRtcLocalAudioTrack |
| // The WebRtcAudioCapturer is today created by WebRtcAudioDeviceImpl. |
| scoped_refptr<WebRtcAudioCapturer> capturer_; |
| + // The source of the audio track which is used by WebAudio, which provides |
| + // data to the audio track when hooking up with WebAudio. |
| + scoped_refptr<WebAudioCapturerSource> webaudio_source_; |
| + |
| // The source of the audio track which handles the audio constraints. |
| // TODO(xians): merge |track_source_| to |capturer_|. |
| talk_base::scoped_refptr<webrtc::AudioSourceInterface> track_source_; |
| @@ -106,9 +117,6 @@ class CONTENT_EXPORT WebRtcLocalAudioTrack |
| // Used to DCHECK that we are called on the correct thread. |
| base::ThreadChecker thread_checker_; |
| - // Cached values of the audio parameters used by the |source_| and |sinks_|. |
| - media::AudioParameters params_; |
| - |
| // Protects |params_| and |sinks_|. |
| mutable base::Lock lock_; |
| @@ -117,6 +125,11 @@ class CONTENT_EXPORT WebRtcLocalAudioTrack |
| bool need_audio_processing_; |
| + // Buffers used for temporary storage during capture callbacks. |
| + // Allocated during initialization. |
| + class ConfiguredBuffer; |
| + scoped_refptr<ConfiguredBuffer> buffer_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(WebRtcLocalAudioTrack); |
| }; |