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

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

Issue 1829193003: Request frame for new sinks from MediaStreamVideoTrack (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: miu@ nit. Created 4 years, 9 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
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 "base/location.h" 10 #include "base/location.h"
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 Stop(); 240 Stop();
241 DVLOG(3) << "~MediaStreamVideoTrack()"; 241 DVLOG(3) << "~MediaStreamVideoTrack()";
242 } 242 }
243 243
244 void MediaStreamVideoTrack::AddSink( 244 void MediaStreamVideoTrack::AddSink(
245 MediaStreamVideoSink* sink, const VideoCaptureDeliverFrameCB& callback) { 245 MediaStreamVideoSink* sink, const VideoCaptureDeliverFrameCB& callback) {
246 DCHECK(main_render_thread_checker_.CalledOnValidThread()); 246 DCHECK(main_render_thread_checker_.CalledOnValidThread());
247 DCHECK(std::find(sinks_.begin(), sinks_.end(), sink) == sinks_.end()); 247 DCHECK(std::find(sinks_.begin(), sinks_.end(), sink) == sinks_.end());
248 sinks_.push_back(sink); 248 sinks_.push_back(sink);
249 frame_deliverer_->AddCallback(sink, callback); 249 frame_deliverer_->AddCallback(sink, callback);
250 // Request source to deliver a frame because a new sink is added.
251 if (source_)
252 source_->RequestRefreshFrame();
250 } 253 }
251 254
252 void MediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) { 255 void MediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) {
253 DCHECK(main_render_thread_checker_.CalledOnValidThread()); 256 DCHECK(main_render_thread_checker_.CalledOnValidThread());
254 std::vector<MediaStreamVideoSink*>::iterator it = 257 std::vector<MediaStreamVideoSink*>::iterator it =
255 std::find(sinks_.begin(), sinks_.end(), sink); 258 std::find(sinks_.begin(), sinks_.end(), sink);
256 DCHECK(it != sinks_.end()); 259 DCHECK(it != sinks_.end());
257 sinks_.erase(it); 260 sinks_.erase(it);
258 frame_deliverer_->RemoveCallback(sink); 261 frame_deliverer_->RemoveCallback(sink);
259 } 262 }
(...skipping 15 matching lines...) Expand all
275 } 278 }
276 279
277 void MediaStreamVideoTrack::OnReadyStateChanged( 280 void MediaStreamVideoTrack::OnReadyStateChanged(
278 blink::WebMediaStreamSource::ReadyState state) { 281 blink::WebMediaStreamSource::ReadyState state) {
279 DCHECK(main_render_thread_checker_.CalledOnValidThread()); 282 DCHECK(main_render_thread_checker_.CalledOnValidThread());
280 for (auto* sink : sinks_) 283 for (auto* sink : sinks_)
281 sink->OnReadyStateChanged(state); 284 sink->OnReadyStateChanged(state);
282 } 285 }
283 286
284 } // namespace content 287 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_video_source.h ('k') | content/renderer/media/media_stream_video_track_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698