Fix incorrect SSRC in RtpPacketSendInfo for RTX packets.

Bug: webrtc:12713
Change-Id: I1b5fb947ffe4ac80e23a6b891ea1a2c2156ba81f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218000
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34177}
This commit is contained in:
memetao 2021-05-31 21:16:52 +08:00 committed by WebRTC LUCI CQ
parent c48a49cd0d
commit 82aa094a97
3 changed files with 23 additions and 1 deletions

View File

@ -96,6 +96,7 @@ Silviu Caragea <silviu.cpp@gmail.com>
Stefan Gula <steweg@gmail.com>
Stephan Hartmann <stha09@googlemail.com>
Steve Reid <sreid@sea-to-sky.net>
Tao Chen <meemetao@gmail.com>
Tarun Chawla <trnkumarchawla@gmail.com>
Todd Wong <todd.wong.ndq@gmail.com>
Tomas Popela <tomas.popela@gmail.com>

View File

@ -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();

View File

@ -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<RtpPacketToSend> media_packet = BuildRtpPacket();
media_packet->SetSsrc(kSsrc);
media_packet->SetExtension<TransportSequenceNumber>(kTransportSequenceNumber);
std::unique_ptr<RtpPacketToSend> rtx_packet = BuildRtpPacket();
rtx_packet->SetSsrc(kRtxSsrc);
rtx_packet->SetExtension<TransportSequenceNumber>(kTransportSequenceNumber +
1);
rtx_packet->set_packet_type(RtpPacketMediaType::kPadding);
std::unique_ptr<RtpSenderEgress> 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<RtpSenderEgress> sender = CreateRtpSenderEgress();