| Index: content/renderer/media/media_stream_dependency_factory.cc
|
| diff --git a/content/renderer/media/media_stream_dependency_factory.cc b/content/renderer/media/media_stream_dependency_factory.cc
|
| index 8d4fe56bdd811ccc2d6f4a1c6a07fbb25044fdb0..8b038bf10823aec60d0a8e40ab71edc8ba1016f4 100644
|
| --- a/content/renderer/media/media_stream_dependency_factory.cc
|
| +++ b/content/renderer/media/media_stream_dependency_factory.cc
|
| @@ -13,6 +13,7 @@
|
| #include "content/public/common/content_switches.h"
|
| #include "content/renderer/media/media_stream_source_extra_data.h"
|
| #include "content/renderer/media/media_stream_track_extra_data.h"
|
| +#include "content/renderer/media/media_stream_video_source.h"
|
| #include "content/renderer/media/media_stream_video_track.h"
|
| #include "content/renderer/media/peer_connection_identity_service.h"
|
| #include "content/renderer/media/rtc_media_constraints.h"
|
| @@ -488,10 +489,11 @@ MediaStreamDependencyFactory::CreateNativeAudioMediaStreamTrack(
|
| scoped_refptr<webrtc::VideoTrackInterface>
|
| MediaStreamDependencyFactory::CreateNativeVideoMediaStreamTrack(
|
| const blink::WebMediaStreamTrack& track) {
|
| + DCHECK(track.extraData() == NULL);
|
| blink::WebMediaStreamSource source = track.source();
|
| DCHECK_EQ(source.type(), blink::WebMediaStreamSource::TypeVideo);
|
| - MediaStreamSourceExtraData* source_data =
|
| - static_cast<MediaStreamSourceExtraData*>(source.extraData());
|
| + MediaStreamVideoSource* source_data =
|
| + static_cast<MediaStreamVideoSource*>(source.extraData());
|
|
|
| if (!source_data) {
|
| // TODO(perkj): Implement support for sources from
|
| @@ -500,14 +502,15 @@ MediaStreamDependencyFactory::CreateNativeVideoMediaStreamTrack(
|
| return NULL;
|
| }
|
|
|
| - std::string track_id = base::UTF16ToUTF8(track.id());
|
| - scoped_refptr<webrtc::VideoTrackInterface> video_track(
|
| - CreateLocalVideoTrack(track_id, source_data->video_source()));
|
| - AddNativeTrackToBlinkTrack(video_track.get(), track, true);
|
| + // Create native track from the source.
|
| + scoped_refptr<webrtc::VideoTrackInterface> webrtc_track =
|
| + CreateLocalVideoTrack(track.id().utf8(), source_data->GetAdapter());
|
|
|
| - video_track->set_enabled(track.isEnabled());
|
| + AddNativeTrackToBlinkTrack(webrtc_track, track, true);
|
|
|
| - return video_track;
|
| + webrtc_track->set_enabled(track.isEnabled());
|
| +
|
| + return webrtc_track;
|
| }
|
|
|
| void MediaStreamDependencyFactory::CreateNativeMediaStreamTrack(
|
| @@ -614,6 +617,16 @@ bool MediaStreamDependencyFactory::RemoveNativeMediaStreamTrack(
|
| return false;
|
| }
|
|
|
| +scoped_refptr<webrtc::VideoSourceInterface>
|
| + MediaStreamDependencyFactory::CreateVideoSource(
|
| + cricket::VideoCapturer* capturer,
|
| + const webrtc::MediaConstraintsInterface* constraints) {
|
| + // The video source takes ownership of |capturer|.
|
| + scoped_refptr<webrtc::VideoSourceInterface> source =
|
| + pc_factory_->CreateVideoSource(capturer, constraints).get();
|
| + return source;
|
| +}
|
| +
|
| bool MediaStreamDependencyFactory::CreatePeerConnectionFactory() {
|
| DCHECK(!pc_factory_.get());
|
| DCHECK(!audio_device_.get());
|
| @@ -734,7 +747,7 @@ MediaStreamDependencyFactory::CreateLocalVideoSource(
|
|
|
| // The video source takes ownership of |capturer|.
|
| scoped_refptr<webrtc::VideoSourceInterface> source =
|
| - pc_factory_->CreateVideoSource(capturer, constraints).get();
|
| + CreateVideoSource(capturer, constraints);
|
| return source;
|
| }
|
|
|
| @@ -777,7 +790,7 @@ MediaStreamDependencyFactory::CreateLocalVideoTrack(
|
|
|
| // Create video source from the |capturer|.
|
| scoped_refptr<webrtc::VideoSourceInterface> source =
|
| - pc_factory_->CreateVideoSource(capturer, NULL).get();
|
| + CreateVideoSource(capturer, NULL);
|
|
|
| // Create native track from the source.
|
| return pc_factory_->CreateVideoTrack(id, source.get()).get();
|
|
|