mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 12:15:34 +08:00
[fix] mark original sequence number as sent for rtx packets
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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) &
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user