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

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

Issue 675013005: Split libjingle's signaling thread from the UI thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update tests, remove circular dependency Created 6 years, 1 month 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
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 <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" 10 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h"
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 MediaStreamVideoTrack* MediaStreamVideoTrack::GetVideoTrack( 189 MediaStreamVideoTrack* MediaStreamVideoTrack::GetVideoTrack(
190 const blink::WebMediaStreamTrack& track) { 190 const blink::WebMediaStreamTrack& track) {
191 return static_cast<MediaStreamVideoTrack*>(track.extraData()); 191 return static_cast<MediaStreamVideoTrack*>(track.extraData());
192 } 192 }
193 193
194 MediaStreamVideoTrack::MediaStreamVideoTrack( 194 MediaStreamVideoTrack::MediaStreamVideoTrack(
195 MediaStreamVideoSource* source, 195 MediaStreamVideoSource* source,
196 const blink::WebMediaConstraints& constraints, 196 const blink::WebMediaConstraints& constraints,
197 const MediaStreamVideoSource::ConstraintsCallback& callback, 197 const MediaStreamVideoSource::ConstraintsCallback& callback,
198 bool enabled) 198 bool enabled)
199 : MediaStreamTrack(NULL, true), 199 : MediaStreamTrack(true),
200 frame_deliverer_( 200 frame_deliverer_(
201 new MediaStreamVideoTrack::FrameDeliverer(source->io_message_loop(), 201 new MediaStreamVideoTrack::FrameDeliverer(source->io_message_loop(),
202 enabled)), 202 enabled)),
203 constraints_(constraints), 203 constraints_(constraints),
204 source_(source) { 204 source_(source) {
205 DCHECK(!constraints.isNull()); 205 DCHECK(!constraints.isNull());
206 source->AddTrack(this, 206 source->AddTrack(this,
207 base::Bind( 207 base::Bind(
208 &MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO, 208 &MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO,
209 frame_deliverer_), 209 frame_deliverer_),
(...skipping 19 matching lines...) Expand all
229 DCHECK(thread_checker_.CalledOnValidThread()); 229 DCHECK(thread_checker_.CalledOnValidThread());
230 std::vector<MediaStreamVideoSink*>::iterator it = 230 std::vector<MediaStreamVideoSink*>::iterator it =
231 std::find(sinks_.begin(), sinks_.end(), sink); 231 std::find(sinks_.begin(), sinks_.end(), sink);
232 DCHECK(it != sinks_.end()); 232 DCHECK(it != sinks_.end());
233 sinks_.erase(it); 233 sinks_.erase(it);
234 frame_deliverer_->RemoveCallback(sink); 234 frame_deliverer_->RemoveCallback(sink);
235 } 235 }
236 236
237 void MediaStreamVideoTrack::SetEnabled(bool enabled) { 237 void MediaStreamVideoTrack::SetEnabled(bool enabled) {
238 DCHECK(thread_checker_.CalledOnValidThread()); 238 DCHECK(thread_checker_.CalledOnValidThread());
239 MediaStreamTrack::SetEnabled(enabled);
240
241 frame_deliverer_->SetEnabled(enabled); 239 frame_deliverer_->SetEnabled(enabled);
242 for (std::vector<MediaStreamVideoSink*>::const_iterator it = sinks_.begin(); 240 for (std::vector<MediaStreamVideoSink*>::const_iterator it = sinks_.begin();
243 it != sinks_.end(); ++it) { 241 it != sinks_.end(); ++it) {
244 (*it)->OnEnabledChanged(enabled); 242 (*it)->OnEnabledChanged(enabled);
245 } 243 }
246 } 244 }
247 245
248 void MediaStreamVideoTrack::Stop() { 246 void MediaStreamVideoTrack::Stop() {
249 DCHECK(thread_checker_.CalledOnValidThread()); 247 DCHECK(thread_checker_.CalledOnValidThread());
250 if (source_) { 248 if (source_) {
251 source_->RemoveTrack(this); 249 source_->RemoveTrack(this);
252 source_ = NULL; 250 source_ = NULL;
253 } 251 }
254 OnReadyStateChanged(blink::WebMediaStreamSource::ReadyStateEnded); 252 OnReadyStateChanged(blink::WebMediaStreamSource::ReadyStateEnded);
255 } 253 }
256 254
257 void MediaStreamVideoTrack::OnReadyStateChanged( 255 void MediaStreamVideoTrack::OnReadyStateChanged(
258 blink::WebMediaStreamSource::ReadyState state) { 256 blink::WebMediaStreamSource::ReadyState state) {
259 DCHECK(thread_checker_.CalledOnValidThread()); 257 DCHECK(thread_checker_.CalledOnValidThread());
260 for (std::vector<MediaStreamVideoSink*>::const_iterator it = sinks_.begin(); 258 for (std::vector<MediaStreamVideoSink*>::const_iterator it = sinks_.begin();
261 it != sinks_.end(); ++it) { 259 it != sinks_.end(); ++it) {
262 (*it)->OnReadyStateChanged(state); 260 (*it)->OnReadyStateChanged(state);
263 } 261 }
264 } 262 }
265 263
266 } // namespace content 264 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_track.cc ('k') | content/renderer/media/peer_connection_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698