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); |
} |