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

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

Issue 15979027: start/stop the source of the capturer when 1st audiotrack/last audiotrack is added/removed (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressed Henrik's comments. Created 7 years, 6 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
Index: content/renderer/media/webrtc_local_audio_track.cc
diff --git a/content/renderer/media/webrtc_local_audio_track.cc b/content/renderer/media/webrtc_local_audio_track.cc
index 0aa63658c516256a90b33696437143d775199f2b..dc54c00450899d837384c0db94020e4fd3ffcbc5 100644
--- a/content/renderer/media/webrtc_local_audio_track.cc
+++ b/content/renderer/media/webrtc_local_audio_track.cc
@@ -29,15 +29,17 @@ WebRtcLocalAudioTrack::WebRtcLocalAudioTrack(
capturer_(capturer),
track_source_(track_source) {
DCHECK(capturer.get());
- capturer_->AddSink(this);
DVLOG(1) << "WebRtcLocalAudioTrack::WebRtcLocalAudioTrack()";
}
WebRtcLocalAudioTrack::~WebRtcLocalAudioTrack() {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(sinks_.empty());
- capturer_->RemoveSink(this);
DVLOG(1) << "WebRtcLocalAudioTrack::~WebRtcLocalAudioTrack()";
+
+ // Users might not call Stop() on the track.
+ if (capturer_)
+ Stop();
}
// Content::WebRtcAudioCapturerSink implementation.
@@ -124,4 +126,20 @@ void WebRtcLocalAudioTrack::RemoveSink(
}
}
+void WebRtcLocalAudioTrack::Start() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ DVLOG(1) << "WebRtcLocalAudioTrack::Start()";
+ if (capturer_)
+ capturer_->AddSink(this);
+}
+
+void WebRtcLocalAudioTrack::Stop() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ DVLOG(1) << "WebRtcLocalAudioTrack::Stop()";
+ if (capturer_) {
+ capturer_->RemoveSink(this);
+ capturer_ = NULL;
+ }
+}
+
} // namespace content
« no previous file with comments | « content/renderer/media/webrtc_local_audio_track.h ('k') | content/renderer/media/webrtc_local_audio_track_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698