| Index: content/renderer/media/media_stream_center.cc
|
| diff --git a/content/renderer/media/media_stream_center.cc b/content/renderer/media/media_stream_center.cc
|
| index c08fcb56f27cb38f2c91b8a967353affc07b5104..2f84bd8eb2be103006c91c73cc75aaf3952521a6 100644
|
| --- a/content/renderer/media/media_stream_center.cc
|
| +++ b/content/renderer/media/media_stream_center.cc
|
| @@ -19,7 +19,7 @@
|
| #include "content/renderer/media/media_stream_source.h"
|
| #include "content/renderer/media/media_stream_video_source.h"
|
| #include "content/renderer/media/media_stream_video_track.h"
|
| -#include "content/renderer/media/webaudio_media_stream_source.h"
|
| +#include "content/renderer/media/webrtc/peer_connection_dependency_factory.h"
|
| #include "content/renderer/media/webrtc_local_audio_source_provider.h"
|
| #include "third_party/WebKit/public/platform/WebMediaConstraints.h"
|
| #include "third_party/WebKit/public/platform/WebMediaStream.h"
|
| @@ -39,28 +39,16 @@
|
| namespace {
|
|
|
| void CreateNativeAudioMediaStreamTrack(
|
| - const blink::WebMediaStreamTrack& track) {
|
| + const blink::WebMediaStreamTrack& track,
|
| + PeerConnectionDependencyFactory* factory) {
|
| + DCHECK(!MediaStreamAudioTrack::From(track));
|
| blink::WebMediaStreamSource source = track.source();
|
| - MediaStreamAudioSource* media_stream_source =
|
| - MediaStreamAudioSource::From(source);
|
| -
|
| - // At this point, a MediaStreamAudioSource instance must exist. The one
|
| - // exception is when a WebAudio destination node is acting as a source of
|
| - // audio.
|
| - //
|
| - // TODO(miu): This needs to be moved to an appropriate location. A WebAudio
|
| - // source should have been created before this method was called so that this
|
| - // special case code isn't needed here.
|
| - if (!media_stream_source && source.requiresAudioConsumer()) {
|
| - DVLOG(1) << "Creating WebAudio media stream source.";
|
| - media_stream_source = new WebAudioMediaStreamSource(&source);
|
| - source.setExtraData(media_stream_source); // Takes ownership.
|
| + DCHECK_EQ(source.getType(), blink::WebMediaStreamSource::TypeAudio);
|
| + if (source.remote()) {
|
| + factory->CreateRemoteAudioTrack(track);
|
| + } else {
|
| + factory->CreateLocalAudioTrack(track);
|
| }
|
| -
|
| - if (media_stream_source)
|
| - media_stream_source->ConnectToTrack(track);
|
| - else
|
| - LOG(DFATAL) << "WebMediaStreamSource missing its MediaStreamAudioSource.";
|
| }
|
|
|
| void CreateNativeVideoMediaStreamTrack(
|
| @@ -86,28 +74,33 @@
|
| track.isEnabled()));
|
| }
|
|
|
| +void CreateNativeMediaStreamTrack(const blink::WebMediaStreamTrack& track,
|
| + PeerConnectionDependencyFactory* factory) {
|
| + DCHECK(!track.isNull() && !track.getExtraData());
|
| + DCHECK(!track.source().isNull());
|
| +
|
| + switch (track.source().getType()) {
|
| + case blink::WebMediaStreamSource::TypeAudio:
|
| + CreateNativeAudioMediaStreamTrack(track, factory);
|
| + break;
|
| + case blink::WebMediaStreamSource::TypeVideo:
|
| + CreateNativeVideoMediaStreamTrack(track);
|
| + break;
|
| + }
|
| +}
|
| +
|
| } // namespace
|
|
|
| -MediaStreamCenter::MediaStreamCenter(
|
| - blink::WebMediaStreamCenterClient* client,
|
| - PeerConnectionDependencyFactory* factory) {}
|
| +MediaStreamCenter::MediaStreamCenter(blink::WebMediaStreamCenterClient* client,
|
| + PeerConnectionDependencyFactory* factory)
|
| + : rtc_factory_(factory) {}
|
|
|
| MediaStreamCenter::~MediaStreamCenter() {}
|
|
|
| void MediaStreamCenter::didCreateMediaStreamTrack(
|
| const blink::WebMediaStreamTrack& track) {
|
| DVLOG(1) << "MediaStreamCenter::didCreateMediaStreamTrack";
|
| - DCHECK(!track.isNull() && !track.getExtraData());
|
| - DCHECK(!track.source().isNull());
|
| -
|
| - switch (track.source().getType()) {
|
| - case blink::WebMediaStreamSource::TypeAudio:
|
| - CreateNativeAudioMediaStreamTrack(track);
|
| - break;
|
| - case blink::WebMediaStreamSource::TypeVideo:
|
| - CreateNativeVideoMediaStreamTrack(track);
|
| - break;
|
| - }
|
| + CreateNativeMediaStreamTrack(track, rtc_factory_);
|
| }
|
|
|
| void MediaStreamCenter::didEnableMediaStreamTrack(
|
| @@ -149,8 +142,7 @@
|
| DCHECK_EQ(source.getType(), blink::WebMediaStreamSource::TypeAudio);
|
|
|
| // TODO(tommi): Rename WebRtcLocalAudioSourceProvider to
|
| - // WebAudioMediaStreamSink since it's not specific to any particular source.
|
| - // http://crbug.com/577874
|
| + // WebRtcAudioSourceProvider since it's not specific to local.
|
| return new WebRtcLocalAudioSourceProvider(track);
|
| }
|
|
|
|
|