Fix NACK logic for empty packets
This was broken in cl https://webrtc-review.googlesource.com/c/src/+/93261. Bug: chromium:875391, webrtc:7135 Change-Id: Id2051bde8a5248dd5aeefa782f9d63513d107df4 Reviewed-on: https://webrtc-review.googlesource.com/95146 Reviewed-by: Philip Eliasson <philipel@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24378}
This commit is contained in:
@ -396,9 +396,10 @@ void RtpVideoStreamReceiver::RemoveSecondarySink(
|
||||
|
||||
void RtpVideoStreamReceiver::ReceivePacket(const RtpPacketReceived& packet) {
|
||||
if (packet.payload_size() == 0) {
|
||||
// Keep-alive packet.
|
||||
// Padding or keep-alive packet.
|
||||
// TODO(nisse): Could drop empty packets earlier, but need to figure out how
|
||||
// they should be counted in stats.
|
||||
NotifyReceiverOfEmptyPacket(packet.SequenceNumber());
|
||||
return;
|
||||
}
|
||||
if (packet.PayloadType() == config_.rtp.red_payload_type) {
|
||||
@ -464,7 +465,7 @@ void RtpVideoStreamReceiver::ParseAndHandleEncapsulatingHeader(
|
||||
rtp_receive_statistics_->FecPacketReceived(header, packet_length);
|
||||
// Notify video_receiver about received FEC packets to avoid NACKing these
|
||||
// packets.
|
||||
NotifyReceiverOfFecPacket(header);
|
||||
NotifyReceiverOfEmptyPacket(header.sequenceNumber);
|
||||
}
|
||||
if (ulpfec_receiver_->AddReceivedRedPacket(
|
||||
header, packet, packet_length, config_.rtp.ulpfec_payload_type) !=
|
||||
@ -481,15 +482,9 @@ void RtpVideoStreamReceiver::ParseAndHandleEncapsulatingHeader(
|
||||
void RtpVideoStreamReceiver::NotifyReceiverOfEmptyPacket(uint16_t seq_num) {
|
||||
reference_finder_->PaddingReceived(seq_num);
|
||||
packet_buffer_->PaddingReceived(seq_num);
|
||||
}
|
||||
|
||||
void RtpVideoStreamReceiver::NotifyReceiverOfFecPacket(
|
||||
const RTPHeader& header) {
|
||||
if (nack_module_) {
|
||||
nack_module_->OnReceivedPacket(header.sequenceNumber,
|
||||
/* is_keyframe = */ false);
|
||||
nack_module_->OnReceivedPacket(seq_num, /* is_keyframe = */ false);
|
||||
}
|
||||
NotifyReceiverOfEmptyPacket(header.sequenceNumber);
|
||||
}
|
||||
|
||||
bool RtpVideoStreamReceiver::DeliverRtcp(const uint8_t* rtcp_packet,
|
||||
|
@ -144,7 +144,6 @@ class RtpVideoStreamReceiver : public RtpData,
|
||||
size_t packet_length,
|
||||
const RTPHeader& header);
|
||||
void NotifyReceiverOfEmptyPacket(uint16_t seq_num);
|
||||
void NotifyReceiverOfFecPacket(const RTPHeader& header);
|
||||
bool IsPacketRetransmitted(const RTPHeader& header) const;
|
||||
void UpdateHistograms();
|
||||
bool IsRedEnabled() const;
|
||||
|
Reference in New Issue
Block a user