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());
   }
 }