commit ef754d45f2126e87e2aec3192e137011532be660 parent 7e9015af7aabfb591d2e347da518b204caa62f0f Author: Dan Baker <dbaker@mozilla.com> Date: Tue, 2 Dec 2025 00:43:08 -0700 Bug 2000941 - Vendor libwebrtc from 5477ae9ac4 Upstream commit: https://webrtc.googlesource.com/src/+/5477ae9ac4062cf2633bba6d6a1305719f071595 Delete RtcEventGenericAckReceived as unused This was introduced as part "pluggable media transport" project that is discontinued. Removing this event removes one of the (test-only) usages of the global clock. Bug: webrtc:42234929, webrtc:42223992 Change-Id: Ieea0c1a1258f775777b7faa78ef974ce5bcb86b9 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/411580 Reviewed-by: Björn Terelius <terelius@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#45740} Diffstat:
19 files changed, 5 insertions(+), 466 deletions(-)
diff --git a/third_party/libwebrtc/README.mozilla.last-vendor b/third_party/libwebrtc/README.mozilla.last-vendor @@ -1,4 +1,4 @@ # ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc -libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-12-02T07:39:58.584232+00:00. +libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-12-02T07:42:44.400041+00:00. # base of lastest vendoring -0891b89570 +5477ae9ac4 diff --git a/third_party/libwebrtc/api/rtc_event_log/rtc_event.h b/third_party/libwebrtc/api/rtc_event_log/rtc_event.h @@ -52,7 +52,6 @@ class RtcEvent { VideoSendStreamConfig, GenericPacketSent, GenericPacketReceived, - GenericAckReceived, FrameDecoded, NetEqSetMinimumDelay, BeginV3Log = 0x2501580, diff --git a/third_party/libwebrtc/logging/BUILD.gn b/third_party/libwebrtc/logging/BUILD.gn @@ -201,8 +201,6 @@ rtc_library("rtc_event_frame_events") { rtc_library("rtc_event_generic_packet_events") { visibility = [ "*" ] sources = [ - "rtc_event_log/events/rtc_event_generic_ack_received.cc", - "rtc_event_log/events/rtc_event_generic_ack_received.h", "rtc_event_log/events/rtc_event_generic_packet_received.cc", "rtc_event_log/events/rtc_event_generic_packet_received.h", "rtc_event_log/events/rtc_event_generic_packet_sent.cc", @@ -214,7 +212,6 @@ rtc_library("rtc_event_generic_packet_events") { "../api:array_view", "../api/rtc_event_log", "../api/units:timestamp", - "../rtc_base:timeutils", "//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/strings:string_view", ] diff --git a/third_party/libwebrtc/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc b/third_party/libwebrtc/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc @@ -378,7 +378,6 @@ std::string RtcEventLogEncoderLegacy::Encode(const RtcEvent& event) { case RtcEvent::Type::RouteChangeEvent: case RtcEvent::Type::GenericPacketReceived: case RtcEvent::Type::GenericPacketSent: - case RtcEvent::Type::GenericAckReceived: case RtcEvent::Type::FrameDecoded: case RtcEvent::Type::NetEqSetMinimumDelay: // These are unsupported in the old format, but shouldn't crash. diff --git a/third_party/libwebrtc/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc b/third_party/libwebrtc/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc @@ -45,7 +45,6 @@ #include "logging/rtc_event_log/events/rtc_event_dtls_transport_state.h" #include "logging/rtc_event_log/events/rtc_event_dtls_writable_state.h" #include "logging/rtc_event_log/events/rtc_event_frame_decoded.h" -#include "logging/rtc_event_log/events/rtc_event_generic_ack_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_sent.h" #include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h" @@ -903,12 +902,6 @@ std::string RtcEventLogEncoderNewFormat::EncodeBatch( generic_packets_sent.push_back(rtc_event); break; } - case RtcEvent::Type::GenericAckReceived: { - auto* rtc_event = - static_cast<const RtcEventGenericAckReceived* const>(it->get()); - generic_acks_received.push_back(rtc_event); - break; - } case RtcEvent::Type::FrameDecoded: { auto* rtc_event = static_cast<const RtcEventFrameDecoded* const>(it->get()); @@ -948,7 +941,6 @@ std::string RtcEventLogEncoderNewFormat::EncodeBatch( for (const auto& kv : frames_decoded) { EncodeFramesDecoded(kv.second, &event_stream); } - EncodeGenericAcksReceived(generic_acks_received, &event_stream); EncodeGenericPacketsReceived(generic_packets_received, &event_stream); EncodeGenericPacketsSent(generic_packets_sent, &event_stream); EncodeIceCandidatePairConfig(ice_candidate_configs, &event_stream); @@ -1794,82 +1786,6 @@ void RtcEventLogEncoderNewFormat::EncodeGenericPacketsReceived( } } -void RtcEventLogEncoderNewFormat::EncodeGenericAcksReceived( - ArrayView<const RtcEventGenericAckReceived*> batch, - rtclog2::EventStream* event_stream) { - if (batch.empty()) { - return; - } - const RtcEventGenericAckReceived* const base_event = batch[0]; - rtclog2::GenericAckReceived* proto_batch = - event_stream->add_generic_acks_received(); - proto_batch->set_timestamp_ms(base_event->timestamp_ms()); - proto_batch->set_packet_number(base_event->packet_number()); - proto_batch->set_acked_packet_number(base_event->acked_packet_number()); - std::optional<uint64_t> base_receive_timestamp; - if (base_event->receive_acked_packet_time_ms()) { - int64_t receive_acked_packet_time_ms = - base_event->receive_acked_packet_time_ms().value(); - base_receive_timestamp = ToUnsigned(receive_acked_packet_time_ms); - proto_batch->set_receive_acked_packet_time_ms(receive_acked_packet_time_ms); - } - - // Delta encoding - proto_batch->set_number_of_deltas(batch.size() - 1); - std::vector<std::optional<uint64_t>> values(batch.size() - 1); - std::string encoded_deltas; - - if (batch.size() == 1) { - return; - } - - // timestamp_ms - for (size_t i = 0; i < values.size(); ++i) { - const RtcEventGenericAckReceived* event = batch[i + 1]; - values[i] = ToUnsigned(event->timestamp_ms()); - } - encoded_deltas = EncodeDeltas(ToUnsigned(base_event->timestamp_ms()), values); - if (!encoded_deltas.empty()) { - proto_batch->set_timestamp_ms_deltas(encoded_deltas); - } - - // packet_number - for (size_t i = 0; i < values.size(); ++i) { - const RtcEventGenericAckReceived* event = batch[i + 1]; - values[i] = ToUnsigned(event->packet_number()); - } - encoded_deltas = - EncodeDeltas(ToUnsigned(base_event->packet_number()), values); - if (!encoded_deltas.empty()) { - proto_batch->set_packet_number_deltas(encoded_deltas); - } - - // acked packet number - for (size_t i = 0; i < values.size(); ++i) { - const RtcEventGenericAckReceived* event = batch[i + 1]; - values[i] = ToUnsigned(event->acked_packet_number()); - } - encoded_deltas = - EncodeDeltas(ToUnsigned(base_event->acked_packet_number()), values); - if (!encoded_deltas.empty()) { - proto_batch->set_acked_packet_number_deltas(encoded_deltas); - } - - // receive timestamp - for (size_t i = 0; i < values.size(); ++i) { - const RtcEventGenericAckReceived* event = batch[i + 1]; - if (event->receive_acked_packet_time_ms()) { - values[i] = ToUnsigned(event->receive_acked_packet_time_ms().value()); - } else { - values[i] = std::nullopt; - } - } - encoded_deltas = EncodeDeltas(base_receive_timestamp, values); - if (!encoded_deltas.empty()) { - proto_batch->set_receive_acked_packet_time_ms_deltas(encoded_deltas); - } -} - void RtcEventLogEncoderNewFormat::EncodeRtpPacketOutgoing( const std::map<uint32_t, std::vector<const RtcEventRtpPacketOutgoing*>>& batch, diff --git a/third_party/libwebrtc/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.h b/third_party/libwebrtc/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.h @@ -102,9 +102,6 @@ class RtcEventLogEncoderNewFormat final : public RtcEventLogEncoder { rtclog2::EventStream* event_stream); void EncodeFramesDecoded(ArrayView<const RtcEventFrameDecoded* const> batch, rtclog2::EventStream* event_stream); - void EncodeGenericAcksReceived( - ArrayView<const RtcEventGenericAckReceived*> batch, - rtclog2::EventStream* event_stream); void EncodeGenericPacketsReceived( ArrayView<const RtcEventGenericPacketReceived*> batch, rtclog2::EventStream* event_stream); diff --git a/third_party/libwebrtc/logging/rtc_event_log/encoder/rtc_event_log_encoder_unittest.cc b/third_party/libwebrtc/logging/rtc_event_log/encoder/rtc_event_log_encoder_unittest.cc @@ -668,30 +668,6 @@ TEST_P(RtcEventLogEncoderTest, RtcEventGenericPacketSent) { } } -TEST_P(RtcEventLogEncoderTest, RtcEventGenericAcksReceived) { - if (encoding_type_ == RtcEventLog::EncodingType::Legacy) { - return; - } - std::unique_ptr<RtcEventLogEncoder> encoder = CreateEncoder(); - std::vector<std::unique_ptr<RtcEventGenericAckReceived>> events(event_count_); - for (size_t i = 0; i < event_count_; ++i) { - events[i] = (i == 0 || !force_repeated_fields_) - ? gen_.NewGenericAckReceived() - : events[0]->Copy(); - history_.push_back(events[i]->Copy()); - } - - encoded_ += encoder->EncodeBatch(history_.begin(), history_.end()); - ASSERT_TRUE(parsed_log_.ParseString(encoded_).ok()); - - const auto& decoded_events = parsed_log_.generic_acks_received(); - ASSERT_EQ(decoded_events.size(), event_count_); - - for (size_t i = 0; i < event_count_; ++i) { - verifier_.VerifyLoggedGenericAckReceived(*events[i], decoded_events[i]); - } -} - TEST_P(RtcEventLogEncoderTest, RtcEventDtlsTransportState) { std::unique_ptr<RtcEventLogEncoder> encoder = CreateEncoder(); std::vector<std::unique_ptr<RtcEventDtlsTransportState>> events(event_count_); diff --git a/third_party/libwebrtc/logging/rtc_event_log/encoder/rtc_event_log_encoder_v3.cc b/third_party/libwebrtc/logging/rtc_event_log/encoder/rtc_event_log_encoder_v3.cc @@ -31,7 +31,6 @@ #include "logging/rtc_event_log/events/rtc_event_dtls_writable_state.h" #include "logging/rtc_event_log/events/rtc_event_end_log.h" #include "logging/rtc_event_log/events/rtc_event_frame_decoded.h" -#include "logging/rtc_event_log/events/rtc_event_generic_ack_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_sent.h" #include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h" @@ -93,8 +92,6 @@ RtcEventLogEncoderV3::RtcEventLogEncoderV3() { encoders_[RtcEvent::Type::DtlsWritableState] = RtcEventDtlsWritableState::Encode; encoders_[RtcEvent::Type::FrameDecoded] = RtcEventFrameDecoded::Encode; - encoders_[RtcEvent::Type::GenericAckReceived] = - RtcEventGenericAckReceived::Encode; encoders_[RtcEvent::Type::GenericPacketReceived] = RtcEventGenericPacketReceived::Encode; encoders_[RtcEvent::Type::GenericPacketSent] = diff --git a/third_party/libwebrtc/logging/rtc_event_log/events/rtc_event_generic_ack_received.cc b/third_party/libwebrtc/logging/rtc_event_log/events/rtc_event_generic_ack_received.cc @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2019 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#include "logging/rtc_event_log/events/rtc_event_generic_ack_received.h" - -#include <cstdint> -#include <memory> -#include <optional> -#include <vector> - -#include "absl/memory/memory.h" -#include "api/array_view.h" -#include "api/rtc_event_log/rtc_event.h" -#include "rtc_base/time_utils.h" - -namespace webrtc { - -std::vector<std::unique_ptr<RtcEventGenericAckReceived>> -RtcEventGenericAckReceived::CreateLogs( - int64_t packet_number, - ArrayView<const AckedPacket> acked_packets) { - std::vector<std::unique_ptr<RtcEventGenericAckReceived>> result; - int64_t time_us = TimeMicros(); - result.reserve(acked_packets.size()); - for (const AckedPacket& packet : acked_packets) { - result.emplace_back(new RtcEventGenericAckReceived( - time_us, packet_number, packet.packet_number, - packet.receive_acked_packet_time_ms)); - } - return result; -} - -RtcEventGenericAckReceived::RtcEventGenericAckReceived( - int64_t timestamp_us, - int64_t packet_number, - int64_t acked_packet_number, - std::optional<int64_t> receive_acked_packet_time_ms) - : RtcEvent(timestamp_us), - packet_number_(packet_number), - acked_packet_number_(acked_packet_number), - receive_acked_packet_time_ms_(receive_acked_packet_time_ms) {} - -std::unique_ptr<RtcEventGenericAckReceived> RtcEventGenericAckReceived::Copy() - const { - return absl::WrapUnique(new RtcEventGenericAckReceived(*this)); -} - -RtcEventGenericAckReceived::~RtcEventGenericAckReceived() = default; - -} // namespace webrtc diff --git a/third_party/libwebrtc/logging/rtc_event_log/events/rtc_event_generic_ack_received.h b/third_party/libwebrtc/logging/rtc_event_log/events/rtc_event_generic_ack_received.h @@ -1,120 +0,0 @@ -/* - * Copyright (c) 2019 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_GENERIC_ACK_RECEIVED_H_ -#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_GENERIC_ACK_RECEIVED_H_ - -#include <cstdint> -#include <memory> -#include <optional> -#include <string> -#include <vector> - -#include "absl/strings/string_view.h" -#include "api/array_view.h" -#include "api/rtc_event_log/rtc_event.h" -#include "api/units/timestamp.h" -#include "logging/rtc_event_log/events/rtc_event_log_parse_status.h" - -namespace webrtc { - -struct LoggedGenericAckReceived { - LoggedGenericAckReceived() = default; - LoggedGenericAckReceived(Timestamp timestamp, - int64_t packet_number, - int64_t acked_packet_number, - std::optional<int64_t> receive_acked_packet_time_ms) - : timestamp(timestamp), - packet_number(packet_number), - acked_packet_number(acked_packet_number), - receive_acked_packet_time_ms(receive_acked_packet_time_ms) {} - - int64_t log_time_us() const { return timestamp.us(); } - int64_t log_time_ms() const { return timestamp.ms(); } - Timestamp log_time() const { return timestamp; } - - Timestamp timestamp = Timestamp::MinusInfinity(); - int64_t packet_number; - int64_t acked_packet_number; - std::optional<int64_t> receive_acked_packet_time_ms; -}; - -struct AckedPacket { - // The packet number that was acked. - int64_t packet_number; - - // The time where the packet was received. Not every ACK will - // include the receive timestamp. - std::optional<int64_t> receive_acked_packet_time_ms; -}; - -class RtcEventGenericAckReceived final : public RtcEvent { - public: - static constexpr Type kType = Type::GenericAckReceived; - - // For a collection of acked packets, it creates a vector of logs to log with - // the same timestamp. - static std::vector<std::unique_ptr<RtcEventGenericAckReceived>> CreateLogs( - int64_t packet_number, - ArrayView<const AckedPacket> acked_packets); - - ~RtcEventGenericAckReceived() override; - - std::unique_ptr<RtcEventGenericAckReceived> Copy() const; - - Type GetType() const override { return kType; } - bool IsConfigEvent() const override { return false; } - - // An identifier of the packet which contained an ack. - int64_t packet_number() const { return packet_number_; } - - // An identifier of the acked packet. - int64_t acked_packet_number() const { return acked_packet_number_; } - - // Timestamp when the `acked_packet_number` was received by the remote side. - std::optional<int64_t> receive_acked_packet_time_ms() const { - return receive_acked_packet_time_ms_; - } - - static std::string Encode(ArrayView<const RtcEvent*> /* batch */) { - // TODO(terelius): Implement - return ""; - } - - static RtcEventLogParseStatus Parse( - absl::string_view /* encoded_bytes */, - bool /* batched */, - std::vector<LoggedGenericAckReceived>& /* output */) { - // TODO(terelius): Implement - return RtcEventLogParseStatus::Error("Not Implemented", __FILE__, __LINE__); - } - - private: - RtcEventGenericAckReceived(const RtcEventGenericAckReceived&) = default; - - // When the ack is received, `packet_number` identifies the packet which - // contained an ack for `acked_packet_number`, and contains the - // `receive_acked_packet_time_ms` on which the `acked_packet_number` was - // received on the remote side. The `receive_acked_packet_time_ms` may be - // null. - RtcEventGenericAckReceived( - int64_t timestamp_us, - int64_t packet_number, - int64_t acked_packet_number, - std::optional<int64_t> receive_acked_packet_time_ms); - - const int64_t packet_number_; - const int64_t acked_packet_number_; - const std::optional<int64_t> receive_acked_packet_time_ms_; -}; - -} // namespace webrtc - -#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_GENERIC_ACK_RECEIVED_H_ diff --git a/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log2.proto b/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log2.proto @@ -37,7 +37,7 @@ message EventStream { repeated DtlsWritableState dtls_writable_states = 28; repeated GenericPacketSent generic_packets_sent = 29; repeated GenericPacketReceived generic_packets_received = 30; - repeated GenericAckReceived generic_acks_received = 31; + repeated GenericAckReceived generic_acks_received = 31 [deprecated = true]; repeated RouteChange route_changes = 32; repeated RemoteEstimates remote_estimates = 33; repeated NetEqSetMinimumDelay neteq_set_minimum_delay = 34; diff --git a/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log_parser.cc b/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log_parser.cc @@ -51,7 +51,6 @@ #include "logging/rtc_event_log/events/rtc_event_dtls_writable_state.h" #include "logging/rtc_event_log/events/rtc_event_end_log.h" #include "logging/rtc_event_log/events/rtc_event_frame_decoded.h" -#include "logging/rtc_event_log/events/rtc_event_generic_ack_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_sent.h" #include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h" @@ -1372,7 +1371,6 @@ ParsedRtcEventLog::ParseStatus ParsedRtcEventLog::ParseStream( StoreFirstAndLastTimestamp(outgoing_rtcp_packets()); StoreFirstAndLastTimestamp(generic_packets_sent_); StoreFirstAndLastTimestamp(generic_packets_received_); - StoreFirstAndLastTimestamp(generic_acks_received_); StoreFirstAndLastTimestamp(remote_estimate_events_); // Stop events could be missing due to file size limits. If so, use the @@ -1599,10 +1597,6 @@ ParsedRtcEventLog::ParseStatus ParsedRtcEventLog::ParseStreamInternalV3( case static_cast<uint32_t>(RtcEvent::Type::FrameDecoded): RtcEventFrameDecoded::Parse(event_fields, batched, decoded_frames_); break; - case static_cast<uint32_t>(RtcEvent::Type::GenericAckReceived): - RtcEventGenericAckReceived::Parse(event_fields, batched, - generic_acks_received_); - break; case static_cast<uint32_t>(RtcEvent::Type::GenericPacketReceived): RtcEventGenericPacketReceived::Parse(event_fields, batched, generic_packets_received_); @@ -2794,8 +2788,6 @@ ParsedRtcEventLog::ParseStatus ParsedRtcEventLog::StoreParsedNewFormatEvent( return StoreGenericPacketReceivedEvent(stream.generic_packets_received(0)); } else if (stream.generic_packets_sent_size() == 1) { return StoreGenericPacketSentEvent(stream.generic_packets_sent(0)); - } else if (stream.generic_acks_received_size() == 1) { - return StoreGenericAckReceivedEvent(stream.generic_acks_received(0)); } else if (stream.frame_decoded_events_size() == 1) { return StoreFrameDecodedEvents(stream.frame_decoded_events(0)); } else if (stream.neteq_set_minimum_delay_size() == 1) { @@ -3336,84 +3328,6 @@ ParsedRtcEventLog::ParseStatus ParsedRtcEventLog::StoreFrameDecodedEvents( return ParseStatus::Success(); } -ParsedRtcEventLog::ParseStatus ParsedRtcEventLog::StoreGenericAckReceivedEvent( - const rtclog2::GenericAckReceived& proto) { - RTC_PARSE_CHECK_OR_RETURN(proto.has_timestamp_ms()); - RTC_PARSE_CHECK_OR_RETURN(proto.has_packet_number()); - RTC_PARSE_CHECK_OR_RETURN(proto.has_acked_packet_number()); - // receive_acked_packet_time_ms is optional. - - std::optional<int64_t> base_receive_acked_packet_time_ms; - if (proto.has_receive_acked_packet_time_ms()) { - base_receive_acked_packet_time_ms = proto.receive_acked_packet_time_ms(); - } - generic_acks_received_.push_back( - {Timestamp::Millis(proto.timestamp_ms()), proto.packet_number(), - proto.acked_packet_number(), base_receive_acked_packet_time_ms}); - - const size_t number_of_deltas = - proto.has_number_of_deltas() ? proto.number_of_deltas() : 0u; - if (number_of_deltas == 0) { - return ParseStatus::Success(); - } - - // timestamp_ms - std::vector<std::optional<uint64_t>> timestamp_ms_values = - DecodeDeltas(proto.timestamp_ms_deltas(), - ToUnsigned(proto.timestamp_ms()), number_of_deltas); - RTC_PARSE_CHECK_OR_RETURN_EQ(timestamp_ms_values.size(), number_of_deltas); - - // packet_number - std::vector<std::optional<uint64_t>> packet_number_values = - DecodeDeltas(proto.packet_number_deltas(), - ToUnsigned(proto.packet_number()), number_of_deltas); - RTC_PARSE_CHECK_OR_RETURN_EQ(packet_number_values.size(), number_of_deltas); - - // acked_packet_number - std::vector<std::optional<uint64_t>> acked_packet_number_values = - DecodeDeltas(proto.acked_packet_number_deltas(), - ToUnsigned(proto.acked_packet_number()), number_of_deltas); - RTC_PARSE_CHECK_OR_RETURN_EQ(acked_packet_number_values.size(), - number_of_deltas); - - // optional receive_acked_packet_time_ms - const std::optional<uint64_t> unsigned_receive_acked_packet_time_ms_base = - proto.has_receive_acked_packet_time_ms() - ? std::optional<uint64_t>( - ToUnsigned(proto.receive_acked_packet_time_ms())) - : std::optional<uint64_t>(); - std::vector<std::optional<uint64_t>> receive_acked_packet_time_ms_values = - DecodeDeltas(proto.receive_acked_packet_time_ms_deltas(), - unsigned_receive_acked_packet_time_ms_base, - number_of_deltas); - RTC_PARSE_CHECK_OR_RETURN_EQ(receive_acked_packet_time_ms_values.size(), - number_of_deltas); - - for (size_t i = 0; i < number_of_deltas; i++) { - int64_t timestamp_ms; - RTC_PARSE_CHECK_OR_RETURN( - ToSigned(timestamp_ms_values[i].value(), ×tamp_ms)); - int64_t packet_number; - RTC_PARSE_CHECK_OR_RETURN( - ToSigned(packet_number_values[i].value(), &packet_number)); - int64_t acked_packet_number; - RTC_PARSE_CHECK_OR_RETURN( - ToSigned(acked_packet_number_values[i].value(), &acked_packet_number)); - std::optional<int64_t> receive_acked_packet_time_ms; - - if (receive_acked_packet_time_ms_values[i].has_value()) { - int64_t value; - RTC_PARSE_CHECK_OR_RETURN( - ToSigned(receive_acked_packet_time_ms_values[i].value(), &value)); - receive_acked_packet_time_ms = value; - } - generic_acks_received_.push_back({Timestamp::Millis(timestamp_ms), - packet_number, acked_packet_number, - receive_acked_packet_time_ms}); - } - return ParseStatus::Success(); -} - ParsedRtcEventLog::ParseStatus ParsedRtcEventLog::StoreGenericPacketSentEvent( const rtclog2::GenericPacketSent& proto) { RTC_PARSE_CHECK_OR_RETURN(proto.has_timestamp_ms()); diff --git a/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log_parser.h b/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log_parser.h @@ -40,7 +40,6 @@ #include "logging/rtc_event_log/events/rtc_event_dtls_writable_state.h" #include "logging/rtc_event_log/events/rtc_event_end_log.h" #include "logging/rtc_event_log/events/rtc_event_frame_decoded.h" -#include "logging/rtc_event_log/events/rtc_event_generic_ack_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_sent.h" #include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h" @@ -661,10 +660,6 @@ class ParsedRtcEventLog { return generic_packets_sent_; } - const std::vector<LoggedGenericAckReceived>& generic_acks_received() const { - return generic_acks_received_; - } - // Media const std::map<uint32_t, std::vector<LoggedFrameDecoded>>& decoded_frames() const { @@ -777,8 +772,6 @@ class ParsedRtcEventLog { ParseStatus StoreDtlsWritableState(const rtclog2::DtlsWritableState& proto); ParsedRtcEventLog::ParseStatus StoreFrameDecodedEvents( const rtclog2::FrameDecodedEvents& proto); - ParseStatus StoreGenericAckReceivedEvent( - const rtclog2::GenericAckReceived& proto); ParseStatus StoreGenericPacketReceivedEvent( const rtclog2::GenericPacketReceived& proto); ParseStatus StoreGenericPacketSentEvent( @@ -921,7 +914,6 @@ class ParsedRtcEventLog { std::vector<LoggedGenericPacketReceived> generic_packets_received_; std::vector<LoggedGenericPacketSent> generic_packets_sent_; - std::vector<LoggedGenericAckReceived> generic_acks_received_; std::vector<LoggedRouteChangeEvent> route_change_events_; std::vector<LoggedRemoteEstimateEvent> remote_estimate_events_; diff --git a/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log_unittest.cc b/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log_unittest.cc @@ -36,7 +36,6 @@ #include "logging/rtc_event_log/events/rtc_event_dtls_transport_state.h" #include "logging/rtc_event_log/events/rtc_event_dtls_writable_state.h" #include "logging/rtc_event_log/events/rtc_event_frame_decoded.h" -#include "logging/rtc_event_log/events/rtc_event_generic_ack_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_sent.h" #include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h" @@ -96,7 +95,6 @@ struct EventCounts { size_t outgoing_rtcp_packets = 0; size_t generic_packets_sent = 0; size_t generic_packets_received = 0; - size_t generic_acks_received = 0; size_t total_nonconfig_events() const { return alr_states + route_changes + audio_playouts + ana_configs + @@ -105,7 +103,7 @@ struct EventCounts { probe_successes + probe_failures + ice_configs + ice_events + incoming_rtp_packets + outgoing_rtp_packets + incoming_rtcp_packets + outgoing_rtcp_packets + generic_packets_sent + - generic_packets_received + generic_acks_received; + generic_packets_received; } size_t total_config_events() const { @@ -197,8 +195,6 @@ class RtcEventLogSession dtls_writable_state_list_; std::map<uint32_t, std::vector<std::unique_ptr<RtcEventFrameDecoded>>> frame_decoded_event_map_; - std::vector<std::unique_ptr<RtcEventGenericAckReceived>> - generic_acks_received_; std::vector<std::unique_ptr<RtcEventGenericPacketReceived>> generic_packets_received_; std::vector<std::unique_ptr<RtcEventGenericPacketSent>> generic_packets_sent_; @@ -588,15 +584,6 @@ void RtcEventLogSession::WriteLog(EventCounts count, } selection -= count.generic_packets_received; - if (selection < count.generic_acks_received) { - auto event = gen_.NewGenericAckReceived(); - generic_acks_received_.push_back(event->Copy()); - event_log->Log(std::move(event)); - count.generic_acks_received--; - continue; - } - selection -= count.generic_acks_received; - RTC_DCHECK_NOTREACHED(); } @@ -826,13 +813,6 @@ void RtcEventLogSession::ReadAndVerifyLog() { parsed_generic_packets_sent[i]); } - auto& parsed_generic_acks_received = parsed_log.generic_acks_received(); - ASSERT_EQ(parsed_generic_acks_received.size(), generic_acks_received_.size()); - for (size_t i = 0; i < parsed_generic_acks_received.size(); i++) { - verifier_.VerifyLoggedGenericAckReceived(*generic_acks_received_[i], - parsed_generic_acks_received[i]); - } - EXPECT_EQ(first_timestamp_ms_, parsed_log.first_timestamp().ms()); EXPECT_EQ(last_timestamp_ms_, parsed_log.last_timestamp().ms()); @@ -870,7 +850,6 @@ TEST_P(RtcEventLogSession, StartLoggingFromBeginning) { count.frame_decoded_events = 50; count.generic_packets_sent = 100; count.generic_packets_received = 100; - count.generic_acks_received = 20; count.route_changes = 4; } @@ -904,7 +883,6 @@ TEST_P(RtcEventLogSession, StartLoggingInTheMiddle) { count.frame_decoded_events = 250; count.generic_packets_sent = 500; count.generic_packets_received = 500; - count.generic_acks_received = 50; count.route_changes = 10; } diff --git a/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.cc b/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.cc @@ -46,7 +46,6 @@ #include "logging/rtc_event_log/events/rtc_event_dtls_writable_state.h" #include "logging/rtc_event_log/events/rtc_event_end_log.h" #include "logging/rtc_event_log/events/rtc_event_frame_decoded.h" -#include "logging/rtc_event_log/events/rtc_event_generic_ack_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_sent.h" #include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h" @@ -631,17 +630,6 @@ EventGenerator::NewGenericPacketReceived() { return std::make_unique<RtcEventGenericPacketReceived>( received_packet_number_++, prng_.Rand(40, 250)); } -std::unique_ptr<RtcEventGenericAckReceived> -EventGenerator::NewGenericAckReceived() { - std::optional<int64_t> receive_timestamp = std::nullopt; - if (prng_.Rand(0, 2) > 0) { - receive_timestamp = prng_.Rand(0, 100000); - } - AckedPacket packet[1] = {{.packet_number = prng_.Rand(40, 250), - .receive_acked_packet_time_ms = receive_timestamp}}; - return std::move(RtcEventGenericAckReceived::CreateLogs( - received_packet_number_++, packet)[0]); -} void EventGenerator::RandomizeRtpPacket( size_t payload_size, @@ -1196,17 +1184,6 @@ void EventVerifier::VerifyLoggedGenericPacketReceived( logged_event.packet_length); } -void EventVerifier::VerifyLoggedGenericAckReceived( - const RtcEventGenericAckReceived& original_event, - const LoggedGenericAckReceived& logged_event) const { - EXPECT_EQ(original_event.timestamp_ms(), logged_event.log_time_ms()); - EXPECT_EQ(original_event.packet_number(), logged_event.packet_number); - EXPECT_EQ(original_event.acked_packet_number(), - logged_event.acked_packet_number); - EXPECT_EQ(original_event.receive_acked_packet_time_ms(), - logged_event.receive_acked_packet_time_ms); -} - void EventVerifier::VerifyLoggedRtcpPacketIncoming( const RtcEventRtcpPacketIncoming& original_event, const LoggedRtcpPacketIncoming& logged_event) const { diff --git a/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.h b/third_party/libwebrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.h @@ -31,7 +31,6 @@ #include "logging/rtc_event_log/events/rtc_event_dtls_writable_state.h" #include "logging/rtc_event_log/events/rtc_event_end_log.h" #include "logging/rtc_event_log/events/rtc_event_frame_decoded.h" -#include "logging/rtc_event_log/events/rtc_event_generic_ack_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_sent.h" #include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h" @@ -80,7 +79,6 @@ class EventGenerator { std::unique_ptr<RtcEventDtlsTransportState> NewDtlsTransportState(); std::unique_ptr<RtcEventDtlsWritableState> NewDtlsWritableState(); std::unique_ptr<RtcEventFrameDecoded> NewFrameDecodedEvent(uint32_t ssrc); - std::unique_ptr<RtcEventGenericAckReceived> NewGenericAckReceived(); std::unique_ptr<RtcEventGenericPacketReceived> NewGenericPacketReceived(); std::unique_ptr<RtcEventGenericPacketSent> NewGenericPacketSent(); std::unique_ptr<RtcEventIceCandidatePair> NewIceCandidatePair(); @@ -243,10 +241,6 @@ class EventVerifier { const RtcEventGenericPacketReceived& original_event, const LoggedGenericPacketReceived& logged_event) const; - void VerifyLoggedGenericAckReceived( - const RtcEventGenericAckReceived& original_event, - const LoggedGenericAckReceived& logged_event) const; - template <typename EventType, typename ParsedType> void VerifyLoggedRtpPacket(const EventType& /* original_event */, const ParsedType& /* logged_event */) { diff --git a/third_party/libwebrtc/logging/rtc_event_log/rtc_event_processor_order.h b/third_party/libwebrtc/logging/rtc_event_log/rtc_event_processor_order.h @@ -28,7 +28,6 @@ #include "logging/rtc_event_log/events/rtc_event_dtls_writable_state.h" #include "logging/rtc_event_log/events/rtc_event_end_log.h" #include "logging/rtc_event_log/events/rtc_event_frame_decoded.h" -#include "logging/rtc_event_log/events/rtc_event_generic_ack_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_sent.h" #include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h" @@ -329,16 +328,6 @@ class TieBreaker<LoggedGenericPacketReceived> { }; template <> -class TieBreaker<LoggedGenericAckReceived> { - public: - static constexpr int type_order = static_cast<int>(TypeOrder::GenericAckIn); - static std::optional<uint16_t> transport_seq_num_accessor( - const LoggedGenericAckReceived&) { - return std::optional<uint16_t>(); - } -}; - -template <> class TieBreaker<LoggedGenericPacketSent> { public: static constexpr int type_order = diff --git a/third_party/libwebrtc/moz-patch-stack/s0102.patch b/third_party/libwebrtc/moz-patch-stack/s0102.patch @@ -412,7 +412,7 @@ index 1954875050..8dee85583a 100644 deps = [ ":generated_jni", diff --git a/logging/BUILD.gn b/logging/BUILD.gn -index 401dca948a..cadd4bab1b 100644 +index f55ee1199f..64873f8bab 100644 --- a/logging/BUILD.gn +++ b/logging/BUILD.gn @@ -11,8 +11,8 @@ if (rtc_enable_protobuf) { diff --git a/third_party/libwebrtc/rtc_tools/rtc_event_log_to_text/converter.cc b/third_party/libwebrtc/rtc_tools/rtc_event_log_to_text/converter.cc @@ -34,7 +34,6 @@ #include "logging/rtc_event_log/events/rtc_event_dtls_writable_state.h" #include "logging/rtc_event_log/events/rtc_event_end_log.h" #include "logging/rtc_event_log/events/rtc_event_frame_decoded.h" -#include "logging/rtc_event_log/events/rtc_event_generic_ack_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_received.h" #include "logging/rtc_event_log/events/rtc_event_generic_packet_sent.h" #include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h" @@ -506,12 +505,6 @@ bool Convert(std::string inputfile, event.payload_length, event.padding_length); }; - auto generic_ack_received_handler = - [&](const LoggedGenericAckReceived& event) { - fprintf(output, "GENERIC_ACK_RECV %" PRId64 " <contents omitted>\n", - event.log_time_ms()); - }; - auto decoded_frame_handler = [&](const LoggedFrameDecoded& event) { static const std::map<VideoCodecType, std::string> codec_name{ {VideoCodecType::kVideoCodecGeneric, "GENERIC"}, @@ -701,8 +694,6 @@ bool Convert(std::string inputfile, generic_packet_received_handler); processor.AddEvents(parsed_log.generic_packets_sent(), generic_packet_sent_handler); - processor.AddEvents(parsed_log.generic_acks_received(), - generic_ack_received_handler); // Video frames for (const auto& kv : parsed_log.decoded_frames()) {