diff --git a/webrtc/media/engine/webrtcvoiceengine.cc b/webrtc/media/engine/webrtcvoiceengine.cc index 9636ff32fc..8f2490112e 100644 --- a/webrtc/media/engine/webrtcvoiceengine.cc +++ b/webrtc/media/engine/webrtcvoiceengine.cc @@ -1171,38 +1171,16 @@ class WebRtcVoiceMediaChannel::WebRtcAudioSendStream void RecreateAudioSendStream(const SendCodecSpec& send_codec_spec) { RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); - if (stream_) { - call_->DestroyAudioSendStream(stream_); - stream_ = nullptr; - } config_.rtp.nack.rtp_history_ms = send_codec_spec.nack_enabled ? kNackRtpHistoryMs : 0; - RTC_DCHECK(!stream_); - stream_ = call_->CreateAudioSendStream(config_); - RTC_CHECK(stream_); - UpdateSendState(); + RecreateAudioSendStream(); } void RecreateAudioSendStream( const std::vector& extensions) { RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); - if (stream_) { - call_->DestroyAudioSendStream(stream_); - stream_ = nullptr; - } config_.rtp.extensions = extensions; - if (webrtc::field_trial::FindFullName("WebRTC-AdaptAudioBitrate") == - "Enabled") { - // TODO(mflodman): Keep testing this and set proper values. - // Note: This is an early experiment currently only supported by Opus. - config_.min_bitrate_kbps = kOpusMinBitrate; - config_.max_bitrate_kbps = kOpusBitrateFb; - } - - RTC_DCHECK(!stream_); - stream_ = call_->CreateAudioSendStream(config_); - RTC_CHECK(stream_); - UpdateSendState(); + RecreateAudioSendStream(); } bool SendTelephoneEvent(int payload_type, int event, int duration_ms) { @@ -1316,6 +1294,25 @@ class WebRtcVoiceMediaChannel::WebRtcAudioSendStream } } + void RecreateAudioSendStream() { + RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); + if (stream_) { + call_->DestroyAudioSendStream(stream_); + stream_ = nullptr; + } + RTC_DCHECK(!stream_); + if (webrtc::field_trial::FindFullName("WebRTC-AdaptAudioBitrate") == + "Enabled") { + // TODO(mflodman): Keep testing this and set proper values. + // Note: This is an early experiment currently only supported by Opus. + config_.min_bitrate_kbps = kOpusMinBitrate; + config_.max_bitrate_kbps = kOpusBitrateFb; + } + stream_ = call_->CreateAudioSendStream(config_); + RTC_CHECK(stream_); + UpdateSendState(); + } + rtc::ThreadChecker worker_thread_checker_; rtc::RaceChecker audio_capture_race_checker_; webrtc::AudioTransport* const voe_audio_transport_ = nullptr;