| Index: content/renderer/media/webrtc_audio_capturer.h
|
| diff --git a/content/renderer/media/webrtc_audio_capturer.h b/content/renderer/media/webrtc_audio_capturer.h
|
| index eb1988d0028ae92ef6896c2974067e847ca24125..a7680d5e556a380c237a998d80d4ec1cd82de919 100644
|
| --- a/content/renderer/media/webrtc_audio_capturer.h
|
| +++ b/content/renderer/media/webrtc_audio_capturer.h
|
| @@ -16,6 +16,7 @@
|
| #include "content/renderer/media/webrtc_local_audio_source_provider.h"
|
| #include "media/audio/audio_input_device.h"
|
| #include "media/base/audio_capturer_source.h"
|
| +#include "third_party/libjingle/source/talk/app/webrtc/mediaconstraintsinterface.h"
|
|
|
| namespace media {
|
| class AudioBus;
|
| @@ -23,6 +24,7 @@ class AudioBus;
|
|
|
| namespace content {
|
|
|
| +class WebRtcAudioProcessingWrapper;
|
| class WebRtcLocalAudioRenderer;
|
| class WebRtcLocalAudioTrack;
|
|
|
| @@ -55,7 +57,8 @@ class CONTENT_EXPORT WebRtcAudioCapturer
|
| int session_id,
|
| const std::string& device_id,
|
| int paired_output_sample_rate,
|
| - int paired_output_frames_per_buffer);
|
| + int paired_output_frames_per_buffer,
|
| + const webrtc::MediaConstraintsInterface* constraints);
|
|
|
| // Add a audio track to the sinks of the capturer.
|
| // WebRtcAudioDeviceImpl calls this method on the main render thread but
|
| @@ -68,20 +71,27 @@ class CONTENT_EXPORT WebRtcAudioCapturer
|
| // Called on the main render thread or libjingle working thread.
|
| void RemoveTrack(WebRtcLocalAudioTrack* track);
|
|
|
| - // SetCapturerSource() is called if the client on the source side desires to
|
| - // provide their own captured audio data. Client is responsible for calling
|
| - // Start() on its own source to have the ball rolling.
|
| + // InitializeCapturerSource() is called if the client on the source side
|
| + // desires to provide their own captured audio data. Client is responsible
|
| + // for calling Start() on its own source to have the ball rolling.
|
| // Called on the main render thread.
|
| - void SetCapturerSource(
|
| + void InitializeCapturerSource(
|
| const scoped_refptr<media::AudioCapturerSource>& source,
|
| media::ChannelLayout channel_layout,
|
| - float sample_rate);
|
| + float sample_rate,
|
| + const webrtc::MediaConstraintsInterface* constraints);
|
|
|
| // Called when a stream is connecting to a peer connection. This will set
|
| // up the native buffer size for the stream in order to optimize the
|
| // performance for peer connection.
|
| void EnablePeerConnectionMode();
|
|
|
| + void FeedRenderDataToAudioProcessing(const int16* render_audio,
|
| + int sample_rate,
|
| + int number_of_channels,
|
| + int number_of_frames,
|
| + int render_delay_ms);
|
| +
|
| // Volume APIs used by WebRtcAudioDeviceImpl.
|
| // Called on the AudioInputDevice audio thread.
|
| void SetVolume(int volume);
|
| @@ -133,7 +143,8 @@ class CONTENT_EXPORT WebRtcAudioCapturer
|
|
|
| // Reconfigures the capturer with a new capture parameters.
|
| // Must be called without holding the lock.
|
| - void Reconfigure(int sample_rate, media::ChannelLayout channel_layout);
|
| + void Reconfigure(int sample_rate, media::ChannelLayout channel_layout,
|
| + const webrtc::MediaConstraintsInterface* constraints);
|
|
|
| // Starts recording audio.
|
| // Triggered by AddSink() on the main render thread or a Libjingle working
|
| @@ -153,7 +164,7 @@ class CONTENT_EXPORT WebRtcAudioCapturer
|
| base::ThreadChecker thread_checker_;
|
|
|
| // Protects |source_|, |audio_tracks_|, |running_|, |loopback_fifo_|,
|
| - // |params_|, |buffering_| and |agc_is_enabled_|.
|
| + // |source_params_|, |buffering_| and |agc_is_enabled_|.
|
| mutable base::Lock lock_;
|
|
|
| // A list of audio tracks that the audio data is fed to.
|
| @@ -162,8 +173,11 @@ class CONTENT_EXPORT WebRtcAudioCapturer
|
| // The audio data source from the browser process.
|
| scoped_refptr<media::AudioCapturerSource> source_;
|
|
|
| - // Cached audio parameters for output.
|
| - media::AudioParameters params_;
|
| + // Cached audio parameters for the source.
|
| + media::AudioParameters source_params_;
|
| +
|
| + // Cached audio parameters for the sinks.
|
| + media::AudioParameters sink_params_;
|
|
|
| bool running_;
|
|
|
| @@ -199,6 +213,8 @@ class CONTENT_EXPORT WebRtcAudioCapturer
|
| int output_sample_rate_;
|
| int output_frames_per_buffer_;
|
|
|
| + scoped_ptr<WebRtcAudioProcessingWrapper> audio_processing_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(WebRtcAudioCapturer);
|
| };
|
|
|
|
|