| 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) {
|
|
|