Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(615)

Unified Diff: content/renderer/media/media_stream_dependency_factory.cc

Issue 129923002: Implements MediaStreamVideoSource. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698