Chromium Code Reviews| 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 0ba73fdd2c3fe9c0237a5f92e9d80d30f18b35c4..89998fb6cd659c0d5e8c655470e829cdd9c27b9d 100644 |
| --- a/content/renderer/media/media_stream_impl.cc |
| +++ b/content/renderer/media/media_stream_impl.cc |
| @@ -484,10 +484,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_); |
| } |
| } |
| @@ -528,7 +527,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); |
| } |
| } |
| @@ -840,11 +839,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()); |
| @@ -855,6 +855,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( |
|
Ronghua Wu (Left Chromium)
2014/03/04 01:04:11
indention
perkj_chrome
2014/03/04 10:44:51
Done.
|
| + native_source, constraints, base::Bind( |
| + &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted, |
| + AsWeakPtr()), |
| + true, factory); |
| +} |
| + |
| void MediaStreamImpl::UserMediaRequestInfo::CallbackOnTracksStarted( |
| const ResourcesReady& callback) { |
| DCHECK(ready_callback_.is_null()); |