Drop the RTT as input to IsRetransmitOfOldPacket.
Bug: webrtc:7135 Change-Id: I532334934a757ba0ea6a2daf97b0f1cfd04246e6 Reviewed-on: https://webrtc-review.googlesource.com/12320 Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Stefan Holmer <stefan@webrtc.org> Commit-Queue: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23366}
This commit is contained in:
@ -916,9 +916,7 @@ bool Channel::IsPacketRetransmitted(const RTPHeader& header,
|
|||||||
if (!statistician)
|
if (!statistician)
|
||||||
return false;
|
return false;
|
||||||
// Check if this is a retransmission.
|
// Check if this is a retransmission.
|
||||||
int64_t min_rtt = 0;
|
return !in_order && statistician->IsRetransmitOfOldPacket(header);
|
||||||
_rtpRtcpModule->RTT(rtp_receiver_->SSRC(), NULL, NULL, &min_rtt, NULL);
|
|
||||||
return !in_order && statistician->IsRetransmitOfOldPacket(header, min_rtt);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t Channel::ReceivedRTCPPacket(const uint8_t* data, size_t length) {
|
int32_t Channel::ReceivedRTCPPacket(const uint8_t* data, size_t length) {
|
||||||
|
@ -49,8 +49,7 @@ class StreamStatistician {
|
|||||||
|
|
||||||
// Returns true if the packet with RTP header |header| is likely to be a
|
// Returns true if the packet with RTP header |header| is likely to be a
|
||||||
// retransmitted packet, false otherwise.
|
// retransmitted packet, false otherwise.
|
||||||
virtual bool IsRetransmitOfOldPacket(const RTPHeader& header,
|
virtual bool IsRetransmitOfOldPacket(const RTPHeader& header) const = 0;
|
||||||
int64_t min_rtt) const = 0;
|
|
||||||
|
|
||||||
// Returns true if |sequence_number| is received in order, false otherwise.
|
// Returns true if |sequence_number| is received in order, false otherwise.
|
||||||
virtual bool IsPacketInOrder(uint16_t sequence_number) const = 0;
|
virtual bool IsPacketInOrder(uint16_t sequence_number) const = 0;
|
||||||
|
@ -301,7 +301,7 @@ uint32_t StreamStatisticianImpl::BitrateReceived() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool StreamStatisticianImpl::IsRetransmitOfOldPacket(
|
bool StreamStatisticianImpl::IsRetransmitOfOldPacket(
|
||||||
const RTPHeader& header, int64_t min_rtt) const {
|
const RTPHeader& header) const {
|
||||||
rtc::CritScope cs(&stream_lock_);
|
rtc::CritScope cs(&stream_lock_);
|
||||||
if (InOrderPacketInternal(header.sequenceNumber)) {
|
if (InOrderPacketInternal(header.sequenceNumber)) {
|
||||||
return false;
|
return false;
|
||||||
@ -317,7 +317,7 @@ bool StreamStatisticianImpl::IsRetransmitOfOldPacket(
|
|||||||
uint32_t rtp_time_stamp_diff_ms = timestamp_diff / frequency_khz;
|
uint32_t rtp_time_stamp_diff_ms = timestamp_diff / frequency_khz;
|
||||||
|
|
||||||
int64_t max_delay_ms = 0;
|
int64_t max_delay_ms = 0;
|
||||||
if (min_rtt == 0) {
|
|
||||||
// Jitter standard deviation in samples.
|
// Jitter standard deviation in samples.
|
||||||
float jitter_std = sqrt(static_cast<float>(jitter_q4_ >> 4));
|
float jitter_std = sqrt(static_cast<float>(jitter_q4_ >> 4));
|
||||||
|
|
||||||
@ -329,9 +329,6 @@ bool StreamStatisticianImpl::IsRetransmitOfOldPacket(
|
|||||||
if (max_delay_ms == 0) {
|
if (max_delay_ms == 0) {
|
||||||
max_delay_ms = 1;
|
max_delay_ms = 1;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
max_delay_ms = (min_rtt / 3) + 1;
|
|
||||||
}
|
|
||||||
return time_diff_ms > rtp_time_stamp_diff_ms + max_delay_ms;
|
return time_diff_ms > rtp_time_stamp_diff_ms + max_delay_ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,8 +39,7 @@ class StreamStatisticianImpl : public StreamStatistician {
|
|||||||
void GetReceiveStreamDataCounters(
|
void GetReceiveStreamDataCounters(
|
||||||
StreamDataCounters* data_counters) const override;
|
StreamDataCounters* data_counters) const override;
|
||||||
uint32_t BitrateReceived() const override;
|
uint32_t BitrateReceived() const override;
|
||||||
bool IsRetransmitOfOldPacket(const RTPHeader& header,
|
bool IsRetransmitOfOldPacket(const RTPHeader& header) const override;
|
||||||
int64_t min_rtt) const override;
|
|
||||||
bool IsPacketInOrder(uint16_t sequence_number) const override;
|
bool IsPacketInOrder(uint16_t sequence_number) const override;
|
||||||
|
|
||||||
void IncomingPacket(const RTPHeader& rtp_header,
|
void IncomingPacket(const RTPHeader& rtp_header,
|
||||||
|
@ -552,11 +552,8 @@ bool RtpVideoStreamReceiver::IsPacketRetransmitted(const RTPHeader& header,
|
|||||||
rtp_receive_statistics_->GetStatistician(header.ssrc);
|
rtp_receive_statistics_->GetStatistician(header.ssrc);
|
||||||
if (!statistician)
|
if (!statistician)
|
||||||
return false;
|
return false;
|
||||||
// Check if this is a retransmission.
|
|
||||||
int64_t min_rtt = 0;
|
|
||||||
rtp_rtcp_->RTT(config_.rtp.remote_ssrc, nullptr, nullptr, &min_rtt, nullptr);
|
|
||||||
return !in_order &&
|
return !in_order &&
|
||||||
statistician->IsRetransmitOfOldPacket(header, min_rtt);
|
statistician->IsRetransmitOfOldPacket(header);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RtpVideoStreamReceiver::UpdateHistograms() {
|
void RtpVideoStreamReceiver::UpdateHistograms() {
|
||||||
|
Reference in New Issue
Block a user