| Index: webrtc/audio/audio_send_stream.cc | 
| diff --git a/webrtc/audio/audio_send_stream.cc b/webrtc/audio/audio_send_stream.cc | 
| index e95c5e717c58643bfb1d74aebe835c3d70c02bc5..45e4b3ac95eae1b469bd811fe582d9b6c521a349 100644 | 
| --- a/webrtc/audio/audio_send_stream.cc | 
| +++ b/webrtc/audio/audio_send_stream.cc | 
| @@ -28,7 +28,6 @@ | 
| #include "webrtc/modules/bitrate_controller/include/bitrate_controller.h" | 
| #include "webrtc/modules/congestion_controller/include/send_side_congestion_controller.h" | 
| #include "webrtc/modules/pacing/paced_sender.h" | 
| -#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h" | 
| #include "webrtc/voice_engine/channel_proxy.h" | 
| #include "webrtc/voice_engine/include/voe_base.h" | 
| #include "webrtc/voice_engine/transmit_mixer.h" | 
| @@ -59,7 +58,8 @@ AudioSendStream::AudioSendStream( | 
| RtpTransportControllerSendInterface* transport, | 
| BitrateAllocator* bitrate_allocator, | 
| RtcEventLog* event_log, | 
| -    RtcpRttStats* rtcp_rtt_stats) | 
| +    RtcpRttStats* rtcp_rtt_stats, | 
| +    const rtc::Optional<RtpState>& suspended_rtp_state) | 
| : worker_queue_(worker_queue), | 
| config_(Config(nullptr)), | 
| audio_state_(audio_state), | 
| @@ -68,7 +68,9 @@ AudioSendStream::AudioSendStream( | 
| transport_(transport), | 
| packet_loss_tracker_(kPacketLossTrackerMaxWindowSizeMs, | 
| kPacketLossRateMinNumAckedPackets, | 
| -                           kRecoverablePacketLossRateMinNumAckedPairs) { | 
| +                           kRecoverablePacketLossRateMinNumAckedPairs), | 
| +      rtp_rtcp_module_(nullptr), | 
| +      suspended_rtp_state_(suspended_rtp_state) { | 
| LOG(LS_INFO) << "AudioSendStream: " << config.ToString(); | 
| RTC_DCHECK_NE(config.voe_channel_id, -1); | 
| RTC_DCHECK(audio_state_.get()); | 
| @@ -81,6 +83,9 @@ AudioSendStream::AudioSendStream( | 
| channel_proxy_->SetRtcpRttStats(rtcp_rtt_stats); | 
| channel_proxy_->SetRTCPStatus(true); | 
| transport_->send_side_cc()->RegisterPacketFeedbackObserver(this); | 
| +  RtpReceiver* rtpReceiver = nullptr;  // Unused, but required for call. | 
| +  channel_proxy_->GetRtpRtcp(&rtp_rtcp_module_, &rtpReceiver); | 
| +  RTC_DCHECK(rtp_rtcp_module_); | 
|  | 
| ConfigureStream(this, config, true); | 
|  | 
| @@ -112,6 +117,9 @@ void AudioSendStream::ConfigureStream( | 
|  | 
| if (first_time || old_config.rtp.ssrc != new_config.rtp.ssrc) { | 
| channel_proxy->SetLocalSSRC(new_config.rtp.ssrc); | 
| +    if (stream->suspended_rtp_state_) { | 
| +      stream->rtp_rtcp_module_->SetRtpState(*stream->suspended_rtp_state_); | 
| +    } | 
| } | 
| if (first_time || old_config.rtp.c_name != new_config.rtp.c_name) { | 
| channel_proxy->SetRTCP_CNAME(new_config.rtp.c_name); | 
| @@ -375,6 +383,10 @@ void AudioSendStream::SetTransportOverhead(int transport_overhead_per_packet) { | 
| channel_proxy_->SetTransportOverhead(transport_overhead_per_packet); | 
| } | 
|  | 
| +RtpState AudioSendStream::GetRtpState() const { | 
| +  return rtp_rtcp_module_->GetRtpState(); | 
| +} | 
| + | 
| VoiceEngine* AudioSendStream::voice_engine() const { | 
| internal::AudioState* audio_state = | 
| static_cast<internal::AudioState*>(audio_state_.get()); | 
| @@ -588,13 +600,10 @@ void AudioSendStream::RemoveBitrateObserver() { | 
|  | 
| void AudioSendStream::RegisterCngPayloadType(int payload_type, | 
| int clockrate_hz) { | 
| -  RtpRtcp* rtpRtcpModule = nullptr; | 
| -  RtpReceiver* rtpReceiver = nullptr;  // Unused, but required for call. | 
| -  channel_proxy_->GetRtpRtcp(&rtpRtcpModule, &rtpReceiver); | 
| const CodecInst codec = {payload_type, "CN", clockrate_hz, 0, 1, 0}; | 
| -  if (rtpRtcpModule->RegisterSendPayload(codec) != 0) { | 
| -    rtpRtcpModule->DeRegisterSendPayload(codec.pltype); | 
| -    if (rtpRtcpModule->RegisterSendPayload(codec) != 0) { | 
| +  if (rtp_rtcp_module_->RegisterSendPayload(codec) != 0) { | 
| +    rtp_rtcp_module_->DeRegisterSendPayload(codec.pltype); | 
| +    if (rtp_rtcp_module_->RegisterSendPayload(codec) != 0) { | 
| LOG(LS_ERROR) << "RegisterCngPayloadType() failed to register CN to " | 
| "RTP/RTCP module"; | 
| } | 
|  |