| Index: webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
|
| index 15fb3255757cb362a4b958623052bb6a58eaef97..19bc862a78482b1cdd1f975f0c933eb303d941f3 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
|
| @@ -229,6 +229,10 @@ void ModuleRtpRtcpImpl::SetRtxSendPayloadType(int payload_type,
|
| rtp_sender_.SetRtxPayloadType(payload_type, associated_payload_type);
|
| }
|
|
|
| +rtc::Optional<uint32_t> ModuleRtpRtcpImpl::FlexfecSsrc() const {
|
| + return rtp_sender_.FlexfecSsrc();
|
| +}
|
| +
|
| int32_t ModuleRtpRtcpImpl::IncomingRtcpPacket(
|
| const uint8_t* rtcp_packet,
|
| const size_t length) {
|
| @@ -400,8 +404,13 @@ bool ModuleRtpRtcpImpl::TimeToSendPacket(uint32_t ssrc,
|
| int64_t capture_time_ms,
|
| bool retransmission,
|
| int probe_cluster_id) {
|
| - if (SendingMedia() && ssrc == rtp_sender_.SSRC()) {
|
| - return rtp_sender_.TimeToSendPacket(sequence_number, capture_time_ms,
|
| + if (!SendingMedia()) {
|
| + return true;
|
| + }
|
| + uint32_t media_ssrc = rtp_sender_.SSRC();
|
| + rtc::Optional<uint32_t> flexfec_ssrc = rtp_sender_.FlexfecSsrc();
|
| + if (ssrc == media_ssrc || (flexfec_ssrc && ssrc == flexfec_ssrc)) {
|
| + return rtp_sender_.TimeToSendPacket(ssrc, sequence_number, capture_time_ms,
|
| retransmission, probe_cluster_id);
|
| }
|
| // No RTP sender is interested in sending this packet.
|
|
|