[fix] mark original sequence number as sent for rtx packets

This commit is contained in:
dijunkun
2025-04-01 11:17:43 +08:00
parent f9717f8481
commit e399260daa
4 changed files with 3 additions and 13 deletions

View File

@@ -283,7 +283,8 @@ std::optional<PacketFeedback> TransportFeedbackAdapter::RetrievePacketFeedback(
auto it = history_.find(transport_seq_num); auto it = history_.find(transport_seq_num);
if (it == history_.end()) { if (it == history_.end()) {
LOG_WARN( LOG_WARN(
"Failed to lookup send time for packet with {}. Send time history too " "Failed to lookup send time for packet with transport_seq_num {}. Send "
"time history too "
"small?", "small?",
transport_seq_num); transport_seq_num);
return std::nullopt; return std::nullopt;

View File

@@ -111,8 +111,6 @@ bool RtpPacketToSend::BuildRtxPacket() {
if (has_extension) { if (has_extension) {
std::vector<Extension> extensions = Extensions(); std::vector<Extension> extensions = Extensions();
AddAbsSendTimeExtension(rtp_packet_frame_); AddAbsSendTimeExtension(rtp_packet_frame_);
uint32_t abs_send_time = 0;
LOG_WARN("abs {}", GetAbsoluteSendTimestamp(&abs_send_time));
} }
rtp_packet_frame_.push_back((retransmitted_sequence_number_.value() >> 8) & rtp_packet_frame_.push_back((retransmitted_sequence_number_.value() >> 8) &

View File

@@ -224,10 +224,7 @@ void RtpVideoReceiver::InsertRtpPacket(RtpPacket& rtp_packet) {
size_t osn_offset = rtp_packet.HeaderSize(); size_t osn_offset = rtp_packet.HeaderSize();
uint16_t osn = rtp_packet.Buffer().data()[osn_offset] << 8 | uint16_t osn = rtp_packet.Buffer().data()[osn_offset] << 8 |
rtp_packet.Buffer().data()[osn_offset + 1]; rtp_packet.Buffer().data()[osn_offset + 1];
uint32_t abs_send_time = 0; nack_->OnReceivedPacket(osn, true);
LOG_WARN("!!!!!!!!!!! osn = {}, abs {}", osn,
rtp_packet.GetAbsoluteSendTimestamp(&abs_send_time));
nack_->OnReceivedPacket(rtp_packet.SequenceNumber(), true);
} else { } else {
nack_->OnReceivedPacket(rtp_packet.SequenceNumber(), false); nack_->OnReceivedPacket(rtp_packet.SequenceNumber(), false);
} }

View File

@@ -49,9 +49,6 @@ void VideoChannelSend::OnSentRtpPacket(
if (packet->retransmitted_sequence_number()) { if (packet->retransmitted_sequence_number()) {
rtp_packet_history_.MarkPacketAsSent( rtp_packet_history_.MarkPacketAsSent(
*packet->retransmitted_sequence_number()); *packet->retransmitted_sequence_number());
LOG_WARN("resend seq {}, original seq {} mark as sent",
packet->SequenceNumber(),
packet->retransmitted_sequence_number().value());
} else if (packet->PayloadType() != rtp::PAYLOAD_TYPE::H264 - 1) { } else if (packet->PayloadType() != rtp::PAYLOAD_TYPE::H264 - 1) {
rtp_packet_history_.PutRtpPacket(std::move(packet), clock_->CurrentTime()); rtp_packet_history_.PutRtpPacket(std::move(packet), clock_->CurrentTime());
} }
@@ -132,9 +129,6 @@ int32_t VideoChannelSend::ReSendPacket(uint16_t packet_id) {
retransmit_packet->set_retransmitted_sequence_number( retransmit_packet->set_retransmitted_sequence_number(
stored_packet.SequenceNumber()); stored_packet.SequenceNumber());
LOG_WARN(
"???????????? resend seq {}",
retransmit_packet->retransmitted_sequence_number().value());
retransmit_packet->set_original_ssrc(stored_packet.Ssrc()); retransmit_packet->set_original_ssrc(stored_packet.Ssrc());
retransmit_packet->BuildRtxPacket(); retransmit_packet->BuildRtxPacket();