diff --git a/AUTHORS b/AUTHORS index 64488bfc62..6e05ced1fb 100644 --- a/AUTHORS +++ b/AUTHORS @@ -96,6 +96,7 @@ Silviu Caragea Stefan Gula Stephan Hartmann Steve Reid +Tao Chen Tarun Chawla Todd Wong Tomas Popela diff --git a/modules/rtp_rtcp/source/rtp_sender_egress.cc b/modules/rtp_rtcp/source/rtp_sender_egress.cc index 55dd9ff075..df50f38a9d 100644 --- a/modules/rtp_rtcp/source/rtp_sender_egress.cc +++ b/modules/rtp_rtcp/source/rtp_sender_egress.cc @@ -409,7 +409,7 @@ void RtpSenderEgress::AddPacketToTransportFeedback( } RtpPacketSendInfo packet_info; - packet_info.ssrc = ssrc_; + packet_info.ssrc = packet.Ssrc(); packet_info.transport_sequence_number = packet_id; packet_info.rtp_sequence_number = packet.SequenceNumber(); packet_info.rtp_timestamp = packet.Timestamp(); diff --git a/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc index 663638fab5..72a98b31e4 100644 --- a/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc +++ b/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc @@ -236,6 +236,27 @@ TEST_P(RtpSenderEgressTest, TransportFeedbackObserverGetsCorrectByteCount) { sender->SendPacket(packet.get(), PacedPacketInfo()); } +TEST_P(RtpSenderEgressTest, TransportFeedbackObserverGetCorrectPacketSsrc) { + const uint16_t kTransportSequenceNumber = 17; + header_extensions_.RegisterByUri(kTransportSequenceNumberExtensionId, + TransportSequenceNumber::kUri); + std::unique_ptr media_packet = BuildRtpPacket(); + media_packet->SetSsrc(kSsrc); + media_packet->SetExtension(kTransportSequenceNumber); + std::unique_ptr rtx_packet = BuildRtpPacket(); + rtx_packet->SetSsrc(kRtxSsrc); + rtx_packet->SetExtension(kTransportSequenceNumber + + 1); + rtx_packet->set_packet_type(RtpPacketMediaType::kPadding); + std::unique_ptr sender = CreateRtpSenderEgress(); + EXPECT_CALL(feedback_observer_, + OnAddPacket(Field(&RtpPacketSendInfo::ssrc, kSsrc))); + sender->SendPacket(media_packet.get(), PacedPacketInfo()); + EXPECT_CALL(feedback_observer_, + OnAddPacket(Field(&RtpPacketSendInfo::ssrc, kRtxSsrc))); + sender->SendPacket(rtx_packet.get(), PacedPacketInfo()); +} + TEST_P(RtpSenderEgressTest, PacketOptionsIsRetransmitSetByPacketType) { std::unique_ptr sender = CreateRtpSenderEgress();