diff options
Diffstat (limited to 'talk/media/webrtc/webrtcvoiceengine.cc')
-rw-r--r-- | talk/media/webrtc/webrtcvoiceengine.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/talk/media/webrtc/webrtcvoiceengine.cc b/talk/media/webrtc/webrtcvoiceengine.cc index db22b41fc0..54fac221d8 100644 --- a/talk/media/webrtc/webrtcvoiceengine.cc +++ b/talk/media/webrtc/webrtcvoiceengine.cc @@ -1305,6 +1305,10 @@ class WebRtcVoiceMediaChannel::WebRtcVoiceChannelRenderer RTC_DCHECK(renderer_ == renderer); return; } + + // TODO(xians): Remove AddChannel() call after Chrome turns on APM + // in getUserMedia by default. + renderer->AddChannel(channel_); renderer->SetSink(this); renderer_ = renderer; } @@ -1314,10 +1318,12 @@ class WebRtcVoiceMediaChannel::WebRtcVoiceChannelRenderer // This method is called on the libjingle worker thread. void Stop() { rtc::CritScope lock(&lock_); - if (renderer_ != NULL) { - renderer_->SetSink(NULL); - renderer_ = NULL; - } + if (renderer_ == NULL) + return; + + renderer_->RemoveChannel(channel_); + renderer_->SetSink(NULL); + renderer_ = NULL; } // AudioRenderer::Sink implementation. |