| 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 ad7f8ddf6f1c2281a6f693fab87fab0b419e3cd0..54c5499bb84476a52a175058cd07fde02a4cad09 100644
|
| --- a/content/renderer/media/media_stream_center.cc
|
| +++ b/content/renderer/media/media_stream_center.cc
|
| @@ -15,9 +15,11 @@
|
| #include "content/public/renderer/media_stream_audio_sink.h"
|
| #include "content/public/renderer/render_thread.h"
|
| #include "content/renderer/media/media_stream.h"
|
| +#include "content/renderer/media/media_stream_audio_track.h"
|
| #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"
|
| @@ -40,14 +42,25 @@ namespace {
|
| void CreateNativeAudioMediaStreamTrack(
|
| const blink::WebMediaStreamTrack& track,
|
| PeerConnectionDependencyFactory* factory) {
|
| - DCHECK(!track.extraData());
|
| + DCHECK(!MediaStreamAudioTrack::Get(track));
|
| blink::WebMediaStreamSource source = track.source();
|
| DCHECK_EQ(source.type(), blink::WebMediaStreamSource::TypeAudio);
|
| - if (source.remote()) {
|
| - factory->CreateRemoteAudioTrack(track);
|
| +
|
| + if (!source.extraData()) {
|
| + // TODO(miu): This needs to be moved to an appropriate location. The source
|
| + // should have been created before this method was called.
|
| + if (source.requiresAudioConsumer()) {
|
| + DVLOG(1) << "Creating WebAudio media stream source.";
|
| + source.setExtraData(new WebAudioMediaStreamSource(source));
|
| + }
|
| } else {
|
| - factory->CreateLocalAudioTrack(track);
|
| + NOTREACHED()
|
| + << "WebMediaStreamSource missing its MediaStreamAudioSource.";
|
| + return;
|
| }
|
| +
|
| + static_cast<MediaStreamAudioSource*>(source.extraData())
|
| + ->ConnectToTrack(track);
|
| }
|
|
|
| void CreateNativeVideoMediaStreamTrack(
|
| @@ -104,35 +117,31 @@ void MediaStreamCenter::didCreateMediaStreamTrack(
|
|
|
| void MediaStreamCenter::didEnableMediaStreamTrack(
|
| const blink::WebMediaStreamTrack& track) {
|
| - MediaStreamTrack* native_track =
|
| - MediaStreamTrack::GetTrack(track);
|
| - if (native_track)
|
| + if (MediaStreamTrack* native_track = MediaStreamTrack::GetTrack(track))
|
| native_track->SetEnabled(true);
|
| }
|
|
|
| void MediaStreamCenter::didDisableMediaStreamTrack(
|
| const blink::WebMediaStreamTrack& track) {
|
| - MediaStreamTrack* native_track =
|
| - MediaStreamTrack::GetTrack(track);
|
| - if (native_track)
|
| + if (MediaStreamTrack* native_track = MediaStreamTrack::GetTrack(track))
|
| native_track->SetEnabled(false);
|
| }
|
|
|
| bool MediaStreamCenter::didStopMediaStreamTrack(
|
| const blink::WebMediaStreamTrack& track) {
|
| DVLOG(1) << "MediaStreamCenter::didStopMediaStreamTrack";
|
| - MediaStreamTrack* native_track = MediaStreamTrack::GetTrack(track);
|
| - native_track->Stop();
|
| - return true;
|
| + if (MediaStreamTrack* native_track = MediaStreamTrack::GetTrack(track)) {
|
| + native_track->Stop();
|
| + return true;
|
| + }
|
| + return false;
|
| }
|
|
|
| blink::WebAudioSourceProvider*
|
| MediaStreamCenter::createWebAudioSourceFromMediaStreamTrack(
|
| const blink::WebMediaStreamTrack& track) {
|
| DVLOG(1) << "MediaStreamCenter::createWebAudioSourceFromMediaStreamTrack";
|
| - MediaStreamTrack* media_stream_track =
|
| - static_cast<MediaStreamTrack*>(track.extraData());
|
| - if (!media_stream_track) {
|
| + if (!MediaStreamAudioTrack::Get(track)) {
|
| DLOG(ERROR) << "Native track missing for webaudio source.";
|
| return nullptr;
|
| }
|
|
|