| Index: content/renderer/media/webrtc/peer_connection_dependency_factory.h
|
| diff --git a/content/renderer/media/webrtc/peer_connection_dependency_factory.h b/content/renderer/media/webrtc/peer_connection_dependency_factory.h
|
| index e15b62b3b7c06db93426718c531ec175320447ca..02088fb90c9753625297e0b1588f1e073a748760 100644
|
| --- a/content/renderer/media/webrtc/peer_connection_dependency_factory.h
|
| +++ b/content/renderer/media/webrtc/peer_connection_dependency_factory.h
|
| @@ -47,7 +47,11 @@
|
|
|
| class IpcNetworkManager;
|
| class IpcPacketSocketFactory;
|
| +class MediaStreamAudioSource;
|
| +class WebAudioCapturerSource;
|
| +class WebRtcAudioCapturer;
|
| class WebRtcAudioDeviceImpl;
|
| +class WebRtcLocalAudioTrack;
|
| class WebRtcLoggingHandlerImpl;
|
| class WebRtcLoggingMessageFilter;
|
| class WebRtcVideoCapturerAdapter;
|
| @@ -74,10 +78,25 @@
|
| virtual scoped_refptr<webrtc::MediaStreamInterface>
|
| CreateLocalMediaStream(const std::string& label);
|
|
|
| + // InitializeMediaStreamAudioSource initialize a MediaStream source object
|
| + // for audio input.
|
| + bool InitializeMediaStreamAudioSource(
|
| + int render_frame_id,
|
| + const blink::WebMediaConstraints& audio_constraints,
|
| + MediaStreamAudioSource* source_data);
|
| +
|
| // Creates an implementation of a cricket::VideoCapturer object that can be
|
| // used when creating a libjingle webrtc::VideoTrackSourceInterface object.
|
| virtual WebRtcVideoCapturerAdapter* CreateVideoCapturer(
|
| bool is_screen_capture);
|
| +
|
| + // Creates an instance of WebRtcLocalAudioTrack and stores it
|
| + // in the extraData field of |track|.
|
| + void CreateLocalAudioTrack(const blink::WebMediaStreamTrack& track);
|
| +
|
| + // Creates an instance of MediaStreamRemoteAudioTrack and associates with the
|
| + // |track| object.
|
| + void CreateRemoteAudioTrack(const blink::WebMediaStreamTrack& track);
|
|
|
| // Asks the PeerConnection factory to create a Local VideoTrack object.
|
| virtual scoped_refptr<webrtc::VideoTrackInterface> CreateLocalVideoTrack(
|
| @@ -121,15 +140,20 @@
|
|
|
| void EnsureInitialized();
|
| scoped_refptr<base::SingleThreadTaskRunner> GetWebRtcWorkerThread() const;
|
| - virtual scoped_refptr<base::SingleThreadTaskRunner> GetWebRtcSignalingThread()
|
| - const;
|
| -
|
| - // Called by ProcessedLocalAudioSource to have the PeerConnection factory
|
| - // create the corresponding WebRtc-internal instance.
|
| + scoped_refptr<base::SingleThreadTaskRunner> GetWebRtcSignalingThread() const;
|
| +
|
| + protected:
|
| + // Asks the PeerConnection factory to create a Local Audio Source.
|
| virtual scoped_refptr<webrtc::AudioSourceInterface> CreateLocalAudioSource(
|
| const cricket::AudioOptions& options);
|
|
|
| - protected:
|
| + // Creates a media::AudioCapturerSource with an implementation that is
|
| + // specific for a WebAudio source. The created WebAudioCapturerSource
|
| + // instance will function as audio source instead of the default
|
| + // WebRtcAudioCapturer. Ownership of the new WebAudioCapturerSource is
|
| + // transferred to |source|.
|
| + virtual void CreateWebAudioSource(blink::WebMediaStreamSource* source);
|
| +
|
| // Asks the PeerConnection factory to create a Local VideoTrack object with
|
| // the video source using |capturer|.
|
| virtual scoped_refptr<webrtc::VideoTrackInterface>
|
| @@ -140,8 +164,14 @@
|
| GetPcFactory();
|
| virtual bool PeerConnectionFactoryCreated();
|
|
|
| - // Helper method to create a WebRtcAudioDeviceImpl.
|
| - void EnsureWebRtcAudioDeviceImpl();
|
| + // Returns a new capturer or existing capturer based on the |render_frame_id|
|
| + // and |device_info|; if both are valid, it reuses existing capture if any --
|
| + // otherwise it creates a new capturer.
|
| + virtual std::unique_ptr<WebRtcAudioCapturer> CreateAudioCapturer(
|
| + int render_frame_id,
|
| + const StreamDeviceInfo& device_info,
|
| + const blink::WebMediaConstraints& constraints,
|
| + MediaStreamAudioSource* audio_source);
|
|
|
| private:
|
| // Implement base::MessageLoop::DestructionObserver.
|
| @@ -168,6 +198,9 @@
|
| void CreateIpcNetworkManagerOnWorkerThread(base::WaitableEvent* event);
|
| void DeleteIpcNetworkManager();
|
| void CleanupPeerConnectionFactory();
|
| +
|
| + // Helper method to create a WebRtcAudioDeviceImpl.
|
| + void EnsureWebRtcAudioDeviceImpl();
|
|
|
| // We own network_manager_, must be deleted on the worker thread.
|
| // The network manager uses |p2p_socket_dispatcher_|.
|
|
|