| Index: content/renderer/media/media_stream_impl.cc
|
| diff --git a/content/renderer/media/media_stream_impl.cc b/content/renderer/media/media_stream_impl.cc
|
| index 6d9e148e83059b6f986767eaf94b3b42c8764903..ddf6ff2f9adb7baf63a84a4a36db3b58e38ba9b0 100644
|
| --- a/content/renderer/media/media_stream_impl.cc
|
| +++ b/content/renderer/media/media_stream_impl.cc
|
| @@ -478,10 +478,9 @@ void MediaStreamImpl::CreateVideoTracks(
|
| constraints,
|
| request->frame,
|
| &webkit_source);
|
| - (*webkit_tracks)[i].initialize(webkit_source);
|
| - (*webkit_tracks)[i].setExtraData(new MediaStreamVideoTrack(
|
| - dependency_factory_));
|
| - request->StartTrack((*webkit_tracks)[i], constraints);
|
| + (*webkit_tracks)[i] =
|
| + request->CreateAndStartVideoTrack(webkit_source, constraints,
|
| + dependency_factory_);
|
| }
|
| }
|
|
|
| @@ -522,7 +521,7 @@ void MediaStreamImpl::CreateAudioTracks(
|
| request->frame,
|
| &webkit_source);
|
| (*webkit_tracks)[i].initialize(webkit_source);
|
| - request->StartTrack((*webkit_tracks)[i], constraints);
|
| + request->StartAudioTrack((*webkit_tracks)[i], constraints);
|
| }
|
| }
|
|
|
| @@ -834,11 +833,12 @@ MediaStreamImpl::UserMediaRequestInfo::~UserMediaRequestInfo() {
|
| DVLOG(1) << "~UserMediaRequestInfo";
|
| }
|
|
|
| -void MediaStreamImpl::UserMediaRequestInfo::StartTrack(
|
| +void MediaStreamImpl::UserMediaRequestInfo::StartAudioTrack(
|
| const blink::WebMediaStreamTrack& track,
|
| const blink::WebMediaConstraints& constraints) {
|
| - MediaStreamSource* native_source =
|
| - static_cast <MediaStreamSource*>(track.source().extraData());
|
| + DCHECK(track.source().type() == blink::WebMediaStreamSource::TypeAudio);
|
| + MediaStreamAudioSource* native_source =
|
| + static_cast <MediaStreamAudioSource*>(track.source().extraData());
|
| DCHECK(native_source);
|
|
|
| sources_.push_back(track.source());
|
| @@ -849,6 +849,24 @@ void MediaStreamImpl::UserMediaRequestInfo::StartTrack(
|
| AsWeakPtr()));
|
| }
|
|
|
| +blink::WebMediaStreamTrack
|
| +MediaStreamImpl::UserMediaRequestInfo::CreateAndStartVideoTrack(
|
| + const blink::WebMediaStreamSource& source,
|
| + const blink::WebMediaConstraints& constraints,
|
| + MediaStreamDependencyFactory* factory) {
|
| + DCHECK(source.type() == blink::WebMediaStreamSource::TypeVideo);
|
| + MediaStreamVideoSource* native_source =
|
| + MediaStreamVideoSource::GetVideoSource(source);
|
| + DCHECK(native_source);
|
| + sources_.push_back(source);
|
| + sources_waiting_for_callback_.push_back(native_source);
|
| + return MediaStreamVideoTrack::CreateVideoTrack(
|
| + native_source, constraints, base::Bind(
|
| + &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted,
|
| + AsWeakPtr()),
|
| + true, factory);
|
| +}
|
| +
|
| void MediaStreamImpl::UserMediaRequestInfo::CallbackOnTracksStarted(
|
| const ResourcesReady& callback) {
|
| DCHECK(ready_callback_.is_null());
|
|
|