Process RTP before RTCP in RTC event log analyzer.
This handles an unlikely corner case where you receive a RTCP feedback for a packet the same millisecond that you send it. Bug: None Change-Id: I77f460bef4073d4d9c5633c88f4d2dd8470f8577 Reviewed-on: https://webrtc-review.googlesource.com/c/113305 Commit-Queue: Björn Terelius <terelius@webrtc.org> Reviewed-by: Elad Alon <eladalon@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25911}
This commit is contained in:
committed by
Commit Bot
parent
75726f2852
commit
c60a77731d
@ -1819,20 +1819,6 @@ const std::vector<MatchedSendArrivalTimes> GetNetworkTrace(
|
||||
std::vector<MatchedSendArrivalTimes> rtp_rtcp_matched;
|
||||
while (time_us != std::numeric_limits<int64_t>::max()) {
|
||||
clock.AdvanceTimeMicroseconds(time_us - clock.TimeInMicroseconds());
|
||||
if (clock.TimeInMicroseconds() >= NextRtcpTime()) {
|
||||
RTC_DCHECK_EQ(clock.TimeInMicroseconds(), NextRtcpTime());
|
||||
feedback_adapter.ProcessTransportFeedback(
|
||||
rtcp_iterator->transport_feedback);
|
||||
std::vector<PacketFeedback> feedback =
|
||||
feedback_adapter.GetTransportFeedbackVector();
|
||||
SortPacketFeedbackVectorWithLoss(&feedback);
|
||||
for (const PacketFeedback& packet : feedback) {
|
||||
rtp_rtcp_matched.emplace_back(
|
||||
clock.TimeInMilliseconds(), packet.send_time_ms,
|
||||
packet.arrival_time_ms, packet.payload_size);
|
||||
}
|
||||
++rtcp_iterator;
|
||||
}
|
||||
if (clock.TimeInMicroseconds() >= NextRtpTime()) {
|
||||
RTC_DCHECK_EQ(clock.TimeInMicroseconds(), NextRtpTime());
|
||||
const RtpPacketType& rtp_packet = *rtp_iterator->second;
|
||||
@ -1858,6 +1844,20 @@ const std::vector<MatchedSendArrivalTimes> GetNetworkTrace(
|
||||
}
|
||||
++rtp_iterator;
|
||||
}
|
||||
if (clock.TimeInMicroseconds() >= NextRtcpTime()) {
|
||||
RTC_DCHECK_EQ(clock.TimeInMicroseconds(), NextRtcpTime());
|
||||
feedback_adapter.ProcessTransportFeedback(
|
||||
rtcp_iterator->transport_feedback);
|
||||
std::vector<PacketFeedback> feedback =
|
||||
feedback_adapter.GetTransportFeedbackVector();
|
||||
SortPacketFeedbackVectorWithLoss(&feedback);
|
||||
for (const PacketFeedback& packet : feedback) {
|
||||
rtp_rtcp_matched.emplace_back(
|
||||
clock.TimeInMilliseconds(), packet.send_time_ms,
|
||||
packet.arrival_time_ms, packet.payload_size);
|
||||
}
|
||||
++rtcp_iterator;
|
||||
}
|
||||
time_us = std::min(NextRtpTime(), NextRtcpTime());
|
||||
}
|
||||
return rtp_rtcp_matched;
|
||||
|
||||
Reference in New Issue
Block a user