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

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

Issue 2365223002: Video Capture: Allow suspension of individual devices. (Closed)
Patch Set: Style tweaks, per mcasas's comments. Created 4 years, 3 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
« no previous file with comments | « content/renderer/media/media_stream_video_source.cc ('k') | content/renderer/media/video_capture_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/media_stream_video_track.cc
diff --git a/content/renderer/media/media_stream_video_track.cc b/content/renderer/media/media_stream_video_track.cc
index e23b290328ddc6aafdea984452fa1336165dd720..cdfa86fb1defc60a53762f508c99387066dc27bc 100644
--- a/content/renderer/media/media_stream_video_track.cc
+++ b/content/renderer/media/media_stream_video_track.cc
@@ -252,11 +252,12 @@ void MediaStreamVideoTrack::AddSink(MediaStreamVideoSink* sink,
frame_deliverer_->AddCallback(sink, callback);
secure_tracker_.Add(sink, is_sink_secure);
// Request source to deliver a frame because a new sink is added.
- if (source_) {
- source_->RequestRefreshFrame();
- source_->UpdateCapturingLinkSecure(this,
- secure_tracker_.is_capturing_secure());
- }
+ if (!source_)
+ return;
+ source_->UpdateHasConsumers(this, true);
+ source_->RequestRefreshFrame();
+ source_->UpdateCapturingLinkSecure(this,
+ secure_tracker_.is_capturing_secure());
}
void MediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) {
@@ -267,9 +268,12 @@ void MediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) {
sinks_.erase(it);
frame_deliverer_->RemoveCallback(sink);
secure_tracker_.Remove(sink);
- if (source_)
- source_->UpdateCapturingLinkSecure(this,
- secure_tracker_.is_capturing_secure());
+ if (!source_)
+ return;
+ if (sinks_.empty())
+ source_->UpdateHasConsumers(this, false);
+ source_->UpdateCapturingLinkSecure(this,
+ secure_tracker_.is_capturing_secure());
}
void MediaStreamVideoTrack::SetEnabled(bool enabled) {
« no previous file with comments | « content/renderer/media/media_stream_video_source.cc ('k') | content/renderer/media/video_capture_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698