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

Side by Side Diff: trunk/src/content/renderer/media/media_stream_video_track.cc

Issue 231963002: Revert 262050 "Implement a source for remote video tracks." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/media_stream_video_track.h" 5 #include "content/renderer/media/media_stream_video_track.h"
6 6
7 #include "content/renderer/media/media_stream_dependency_factory.h" 7 #include "content/renderer/media/media_stream_dependency_factory.h"
8 #include "content/renderer/media/webrtc/webrtc_video_sink_adapter.h"
8 9
9 namespace content { 10 namespace content {
10 11
11 //static 12 //static
12 blink::WebMediaStreamTrack MediaStreamVideoTrack::CreateVideoTrack( 13 blink::WebMediaStreamTrack MediaStreamVideoTrack::CreateVideoTrack(
13 MediaStreamVideoSource* source, 14 MediaStreamVideoSource* source,
14 const blink::WebMediaConstraints& constraints, 15 const blink::WebMediaConstraints& constraints,
15 const MediaStreamVideoSource::ConstraintsCallback& callback, 16 const MediaStreamVideoSource::ConstraintsCallback& callback,
16 bool enabled, 17 bool enabled,
17 MediaStreamDependencyFactory* factory) { 18 MediaStreamDependencyFactory* factory) {
(...skipping 16 matching lines...) Expand all
34 MediaStreamVideoTrack::MediaStreamVideoTrack( 35 MediaStreamVideoTrack::MediaStreamVideoTrack(
35 MediaStreamVideoSource* source, 36 MediaStreamVideoSource* source,
36 const blink::WebMediaConstraints& constraints, 37 const blink::WebMediaConstraints& constraints,
37 const MediaStreamVideoSource::ConstraintsCallback& callback, 38 const MediaStreamVideoSource::ConstraintsCallback& callback,
38 bool enabled, 39 bool enabled,
39 MediaStreamDependencyFactory* factory) 40 MediaStreamDependencyFactory* factory)
40 : MediaStreamTrack(NULL, true), 41 : MediaStreamTrack(NULL, true),
41 enabled_(enabled), 42 enabled_(enabled),
42 source_(source), 43 source_(source),
43 factory_(factory) { 44 factory_(factory) {
44 source->AddTrack(this, constraints, callback); 45 // TODO(perkj): source can be NULL if this is actually a remote video track.
46 // Remove as soon as we only have one implementation of video tracks.
47 if (source)
48 source->AddTrack(this, constraints, callback);
45 } 49 }
46 50
47 MediaStreamVideoTrack::~MediaStreamVideoTrack() { 51 MediaStreamVideoTrack::~MediaStreamVideoTrack() {
48 DCHECK(sinks_.empty()); 52 DCHECK(sinks_.empty());
49 source_->RemoveTrack(this); 53 // TODO(perkj): source can be NULL if this is actually a remote video track.
54 // Remove as soon as we only have one implementation of video tracks.
55 if (source_)
56 source_->RemoveTrack(this);
50 } 57 }
51 58
52 void MediaStreamVideoTrack::AddSink(MediaStreamVideoSink* sink) { 59 void MediaStreamVideoTrack::AddSink(MediaStreamVideoSink* sink) {
53 DCHECK(thread_checker_.CalledOnValidThread()); 60 DCHECK(thread_checker_.CalledOnValidThread());
54 DCHECK(std::find(sinks_.begin(), sinks_.end(), sink) == sinks_.end()); 61 DCHECK(std::find(sinks_.begin(), sinks_.end(), sink) == sinks_.end());
55 sinks_.push_back(sink); 62 sinks_.push_back(sink);
56 } 63 }
57 64
58 void MediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) { 65 void MediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) {
59 DCHECK(thread_checker_.CalledOnValidThread()); 66 DCHECK(thread_checker_.CalledOnValidThread());
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 109
103 void MediaStreamVideoTrack::OnReadyStateChanged( 110 void MediaStreamVideoTrack::OnReadyStateChanged(
104 blink::WebMediaStreamSource::ReadyState state) { 111 blink::WebMediaStreamSource::ReadyState state) {
105 DCHECK(thread_checker_.CalledOnValidThread()); 112 DCHECK(thread_checker_.CalledOnValidThread());
106 for (std::vector<MediaStreamVideoSink*>::iterator it = sinks_.begin(); 113 for (std::vector<MediaStreamVideoSink*>::iterator it = sinks_.begin();
107 it != sinks_.end(); ++it) { 114 it != sinks_.end(); ++it) {
108 (*it)->OnReadyStateChanged(state); 115 (*it)->OnReadyStateChanged(state);
109 } 116 }
110 } 117 }
111 118
119 // Wrapper which allows to use std::find_if() when adding and removing
120 // sinks to/from |sinks_|.
121 struct SinkWrapper {
122 explicit SinkWrapper(MediaStreamVideoSink* sink) : sink_(sink) {}
123 bool operator()(
124 const WebRtcVideoSinkAdapter* owner) {
125 return owner->sink() == sink_;
126 }
127 MediaStreamVideoSink* sink_;
128 };
129
130 WebRtcMediaStreamVideoTrack::WebRtcMediaStreamVideoTrack(
131 webrtc::VideoTrackInterface* track)
132 : MediaStreamVideoTrack(NULL,
133 blink::WebMediaConstraints(),
134 MediaStreamVideoSource::ConstraintsCallback(),
135 track->enabled(),
136 NULL) {
137 track_ = track;
138 }
139
140 WebRtcMediaStreamVideoTrack::~WebRtcMediaStreamVideoTrack() {
141 }
142
143 void WebRtcMediaStreamVideoTrack::AddSink(MediaStreamVideoSink* sink) {
144 DCHECK(thread_checker_.CalledOnValidThread());
145 DCHECK(std::find_if(sinks_.begin(), sinks_.end(),
146 SinkWrapper(sink)) == sinks_.end());
147 sinks_.push_back(new WebRtcVideoSinkAdapter(GetVideoAdapter(), sink));
148 }
149
150 void WebRtcMediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) {
151 DCHECK(thread_checker_.CalledOnValidThread());
152 ScopedVector<WebRtcVideoSinkAdapter>::iterator it =
153 std::find_if(sinks_.begin(), sinks_.end(), SinkWrapper(sink));
154 DCHECK(it != sinks_.end());
155 sinks_.erase(it);
156 }
157
112 } // namespace content 158 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698