| Index: webrtc/media/engine/webrtcvoiceengine.cc
|
| diff --git a/webrtc/media/engine/webrtcvoiceengine.cc b/webrtc/media/engine/webrtcvoiceengine.cc
|
| index 63241332a3e9eb6540e923460671c4795fa4683d..bd71e3f72469ab6a7f3e33025824eb6cf30d1f26 100644
|
| --- a/webrtc/media/engine/webrtcvoiceengine.cc
|
| +++ b/webrtc/media/engine/webrtcvoiceengine.cc
|
| @@ -1215,16 +1215,19 @@ class WebRtcVoiceMediaChannel::WebRtcAudioSendStream
|
| return rtp_parameters_;
|
| }
|
|
|
| - void set_rtp_parameters(const webrtc::RtpParameters& parameters) {
|
| + void SetRtpParameters(const webrtc::RtpParameters& parameters) {
|
| RTC_CHECK_EQ(1UL, parameters.encodings.size());
|
| rtp_parameters_ = parameters;
|
| + // parameters.encodings[0].active could have changed.
|
| + UpdateSendState();
|
| }
|
|
|
| private:
|
| void UpdateSendState() {
|
| RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
|
| RTC_DCHECK(stream_);
|
| - if (send_ && source_ != nullptr) {
|
| + RTC_DCHECK_EQ(1UL, rtp_parameters_.encodings.size());
|
| + if (send_ && source_ != nullptr && rtp_parameters_.encodings[0].active) {
|
| stream_->Start();
|
| } else { // !send || source_ = nullptr
|
| stream_->Stop();
|
| @@ -1456,7 +1459,7 @@ bool WebRtcVoiceMediaChannel::SetRtpParameters(
|
| // Codecs are handled at the WebRtcVoiceMediaChannel level.
|
| webrtc::RtpParameters reduced_params = parameters;
|
| reduced_params.codecs.clear();
|
| - it->second->set_rtp_parameters(reduced_params);
|
| + it->second->SetRtpParameters(reduced_params);
|
| return true;
|
| }
|
|
|
|
|