mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 13:50:40 +01:00
In RtcEventLogParser use strict time types to access rtcp::TransportFeedback
Bug: webrtc:13757 Change-Id: I0aa6e1134acd8ff53eadb24ac051203d74b5050f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265380 Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Björn Terelius <terelius@webrtc.org> Auto-Submit: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Björn Terelius <terelius@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37152}
This commit is contained in:
parent
5b298ab9dd
commit
640b51eeae
3 changed files with 17 additions and 14 deletions
|
@ -503,6 +503,8 @@ if (rtc_enable_protobuf) {
|
||||||
"../api/rtc_event_log",
|
"../api/rtc_event_log",
|
||||||
"../api/rtc_event_log:rtc_event_log_factory",
|
"../api/rtc_event_log:rtc_event_log_factory",
|
||||||
"../api/task_queue:default_task_queue_factory",
|
"../api/task_queue:default_task_queue_factory",
|
||||||
|
"../api/units:time_delta",
|
||||||
|
"../api/units:timestamp",
|
||||||
"../call",
|
"../call",
|
||||||
"../call:call_interfaces",
|
"../call:call_interfaces",
|
||||||
"../modules/audio_coding:audio_network_adaptor",
|
"../modules/audio_coding:audio_network_adaptor",
|
||||||
|
|
|
@ -2324,7 +2324,7 @@ std::vector<LoggedPacketInfo> ParsedRtcEventLog::GetPacketInfos(
|
||||||
};
|
};
|
||||||
|
|
||||||
Timestamp feedback_base_time = Timestamp::MinusInfinity();
|
Timestamp feedback_base_time = Timestamp::MinusInfinity();
|
||||||
absl::optional<int64_t> last_feedback_base_time_us;
|
Timestamp last_feedback_base_time = Timestamp::MinusInfinity();
|
||||||
|
|
||||||
auto feedback_handler =
|
auto feedback_handler =
|
||||||
[&](const LoggedRtcpPacketTransportFeedback& logged_rtcp) {
|
[&](const LoggedRtcpPacketTransportFeedback& logged_rtcp) {
|
||||||
|
@ -2334,13 +2334,12 @@ std::vector<LoggedPacketInfo> ParsedRtcEventLog::GetPacketInfos(
|
||||||
// Add timestamp deltas to a local time base selected on first packet
|
// Add timestamp deltas to a local time base selected on first packet
|
||||||
// arrival. This won't be the true time base, but makes it easier to
|
// arrival. This won't be the true time base, but makes it easier to
|
||||||
// manually inspect time stamps.
|
// manually inspect time stamps.
|
||||||
if (!last_feedback_base_time_us) {
|
if (!last_feedback_base_time.IsFinite()) {
|
||||||
feedback_base_time = log_feedback_time;
|
feedback_base_time = log_feedback_time;
|
||||||
} else {
|
} else {
|
||||||
feedback_base_time += TimeDelta::Micros(
|
feedback_base_time += feedback.GetBaseDelta(last_feedback_base_time);
|
||||||
feedback.GetBaseDeltaUs(*last_feedback_base_time_us));
|
|
||||||
}
|
}
|
||||||
last_feedback_base_time_us = feedback.GetBaseTimeUs();
|
last_feedback_base_time = feedback.BaseTime();
|
||||||
|
|
||||||
std::vector<LoggedPacketInfo*> packet_feedbacks;
|
std::vector<LoggedPacketInfo*> packet_feedbacks;
|
||||||
packet_feedbacks.reserve(feedback.GetAllPackets().size());
|
packet_feedbacks.reserve(feedback.GetAllPackets().size());
|
||||||
|
@ -2362,7 +2361,7 @@ std::vector<LoggedPacketInfo> ParsedRtcEventLog::GetPacketInfos(
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (packet.received()) {
|
if (packet.received()) {
|
||||||
receive_timestamp += TimeDelta::Micros(packet.delta_us());
|
receive_timestamp += packet.delta();
|
||||||
if (sent->reported_recv_time.IsInfinite()) {
|
if (sent->reported_recv_time.IsInfinite()) {
|
||||||
sent->reported_recv_time = receive_timestamp;
|
sent->reported_recv_time = receive_timestamp;
|
||||||
sent->log_feedback_time = log_feedback_time;
|
sent->log_feedback_time = log_feedback_time;
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
#include "api/network_state_predictor.h"
|
#include "api/network_state_predictor.h"
|
||||||
#include "api/rtp_headers.h"
|
#include "api/rtp_headers.h"
|
||||||
#include "api/rtp_parameters.h"
|
#include "api/rtp_parameters.h"
|
||||||
|
#include "api/units/time_delta.h"
|
||||||
|
#include "api/units/timestamp.h"
|
||||||
#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
|
#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
|
||||||
#include "modules/rtp_rtcp/include/rtp_cvo.h"
|
#include "modules/rtp_rtcp/include/rtp_cvo.h"
|
||||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||||
|
@ -354,14 +356,14 @@ rtcp::Bye EventGenerator::NewBye() {
|
||||||
rtcp::TransportFeedback EventGenerator::NewTransportFeedback() {
|
rtcp::TransportFeedback EventGenerator::NewTransportFeedback() {
|
||||||
rtcp::TransportFeedback transport_feedback;
|
rtcp::TransportFeedback transport_feedback;
|
||||||
uint16_t base_seq_no = prng_.Rand<uint16_t>();
|
uint16_t base_seq_no = prng_.Rand<uint16_t>();
|
||||||
int64_t base_time_us = prng_.Rand<uint32_t>();
|
Timestamp base_time = Timestamp::Micros(prng_.Rand<uint32_t>());
|
||||||
transport_feedback.SetBase(base_seq_no, base_time_us);
|
transport_feedback.SetBase(base_seq_no, base_time);
|
||||||
transport_feedback.AddReceivedPacket(base_seq_no, base_time_us);
|
transport_feedback.AddReceivedPacket(base_seq_no, base_time);
|
||||||
int64_t time_us = base_time_us;
|
Timestamp time = base_time;
|
||||||
for (uint16_t i = 1u; i < 10u; i++) {
|
for (uint16_t i = 1u; i < 10u; i++) {
|
||||||
time_us += prng_.Rand(0, 100000);
|
time += TimeDelta::Micros(prng_.Rand(0, 100'000));
|
||||||
if (prng_.Rand<bool>()) {
|
if (prng_.Rand<bool>()) {
|
||||||
transport_feedback.AddReceivedPacket(base_seq_no + i, time_us);
|
transport_feedback.AddReceivedPacket(base_seq_no + i, time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return transport_feedback;
|
return transport_feedback;
|
||||||
|
@ -1252,9 +1254,9 @@ void EventVerifier::VerifyLoggedTransportFeedback(
|
||||||
logged_transport_feedback.transport_feedback.GetReceivedPackets()[i]
|
logged_transport_feedback.transport_feedback.GetReceivedPackets()[i]
|
||||||
.sequence_number());
|
.sequence_number());
|
||||||
EXPECT_EQ(
|
EXPECT_EQ(
|
||||||
original_transport_feedback.GetReceivedPackets()[i].delta_us(),
|
original_transport_feedback.GetReceivedPackets()[i].delta(),
|
||||||
logged_transport_feedback.transport_feedback.GetReceivedPackets()[i]
|
logged_transport_feedback.transport_feedback.GetReceivedPackets()[i]
|
||||||
.delta_us());
|
.delta());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue