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}
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index d8b4b84..d6b8cab 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -503,6 +503,8 @@
"../api/rtc_event_log",
"../api/rtc_event_log:rtc_event_log_factory",
"../api/task_queue:default_task_queue_factory",
+ "../api/units:time_delta",
+ "../api/units:timestamp",
"../call",
"../call:call_interfaces",
"../modules/audio_coding:audio_network_adaptor",
diff --git a/logging/rtc_event_log/rtc_event_log_parser.cc b/logging/rtc_event_log/rtc_event_log_parser.cc
index a67c95a..406818b 100644
--- a/logging/rtc_event_log/rtc_event_log_parser.cc
+++ b/logging/rtc_event_log/rtc_event_log_parser.cc
@@ -2324,7 +2324,7 @@
};
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 =
[&](const LoggedRtcpPacketTransportFeedback& logged_rtcp) {
@@ -2334,13 +2334,12 @@
// 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
// manually inspect time stamps.
- if (!last_feedback_base_time_us) {
+ if (!last_feedback_base_time.IsFinite()) {
feedback_base_time = log_feedback_time;
} else {
- feedback_base_time += TimeDelta::Micros(
- feedback.GetBaseDeltaUs(*last_feedback_base_time_us));
+ feedback_base_time += feedback.GetBaseDelta(last_feedback_base_time);
}
- last_feedback_base_time_us = feedback.GetBaseTimeUs();
+ last_feedback_base_time = feedback.BaseTime();
std::vector<LoggedPacketInfo*> packet_feedbacks;
packet_feedbacks.reserve(feedback.GetAllPackets().size());
@@ -2362,7 +2361,7 @@
continue;
}
if (packet.received()) {
- receive_timestamp += TimeDelta::Micros(packet.delta_us());
+ receive_timestamp += packet.delta();
if (sent->reported_recv_time.IsInfinite()) {
sent->reported_recv_time = receive_timestamp;
sent->log_feedback_time = log_feedback_time;
diff --git a/logging/rtc_event_log/rtc_event_log_unittest_helper.cc b/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
index e77a671..b4ee9d7 100644
--- a/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
+++ b/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
@@ -26,6 +26,8 @@
#include "api/network_state_predictor.h"
#include "api/rtp_headers.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/rtp_rtcp/include/rtp_cvo.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
@@ -354,14 +356,14 @@
rtcp::TransportFeedback EventGenerator::NewTransportFeedback() {
rtcp::TransportFeedback transport_feedback;
uint16_t base_seq_no = prng_.Rand<uint16_t>();
- int64_t base_time_us = prng_.Rand<uint32_t>();
- transport_feedback.SetBase(base_seq_no, base_time_us);
- transport_feedback.AddReceivedPacket(base_seq_no, base_time_us);
- int64_t time_us = base_time_us;
+ Timestamp base_time = Timestamp::Micros(prng_.Rand<uint32_t>());
+ transport_feedback.SetBase(base_seq_no, base_time);
+ transport_feedback.AddReceivedPacket(base_seq_no, base_time);
+ Timestamp time = base_time;
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>()) {
- transport_feedback.AddReceivedPacket(base_seq_no + i, time_us);
+ transport_feedback.AddReceivedPacket(base_seq_no + i, time);
}
}
return transport_feedback;
@@ -1252,9 +1254,9 @@
logged_transport_feedback.transport_feedback.GetReceivedPackets()[i]
.sequence_number());
EXPECT_EQ(
- original_transport_feedback.GetReceivedPackets()[i].delta_us(),
+ original_transport_feedback.GetReceivedPackets()[i].delta(),
logged_transport_feedback.transport_feedback.GetReceivedPackets()[i]
- .delta_us());
+ .delta());
}
}