Fix unscaled timestamps passed to nack_tracker
If timestamp_scaler_ is used, then rtp_header.timestamp, passed to UpdateLastDecodedPacket, will advance at a different rate than the scaled timestamp packet->timestamp, passed to UpdateLastDecodedPacket. NackTracker::EstimateTimestamp uses timestamp_last_received_rtp_, and NackTracker::TimeToPlay uses timestamp_last_decoded_rtp_. This difference causes TimeToPlay to continuously increase to huge values, so that every missing packet will be returned from GetNackList, even if RTT > real time to play. Change-Id: Ie6ca347972edea98a202c9cdd26c6ab3f45a73c4 Bug: None Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/222841 Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34361}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
9233af3e22
commit
f2ed401679
@ -628,8 +628,7 @@ int NetEqImpl::InsertPacketInternal(const RTPHeader& rtp_header,
|
||||
if (update_sample_rate_and_channels) {
|
||||
nack_->Reset();
|
||||
}
|
||||
nack_->UpdateLastReceivedPacket(rtp_header.sequenceNumber,
|
||||
rtp_header.timestamp);
|
||||
nack_->UpdateLastReceivedPacket(main_sequence_number, main_timestamp);
|
||||
}
|
||||
|
||||
// Check for RED payload type, and separate payloads into several packets.
|
||||
|
||||
Reference in New Issue
Block a user