diff --git a/logging/BUILD.gn b/logging/BUILD.gn index 6340b49e74..3871193bad 100644 --- a/logging/BUILD.gn +++ b/logging/BUILD.gn @@ -280,7 +280,7 @@ if (rtc_enable_protobuf) { "../api:libjingle_peerconnection_api", "../call:video_stream_api", "../modules/audio_coding:audio_network_adaptor", - "../modules/congestion_controller/rtp:transport_feedback", + "../modules/congestion_controller:transport_feedback", "../modules/remote_bitrate_estimator:remote_bitrate_estimator", "../modules/rtp_rtcp", "../modules/rtp_rtcp:rtp_rtcp_format", diff --git a/logging/rtc_event_log/rtc_event_log_parser_new.cc b/logging/rtc_event_log/rtc_event_log_parser_new.cc index 64d2e13479..5fa69ed637 100644 --- a/logging/rtc_event_log/rtc_event_log_parser_new.cc +++ b/logging/rtc_event_log/rtc_event_log_parser_new.cc @@ -26,7 +26,7 @@ #include "api/rtpparameters.h" #include "logging/rtc_event_log/rtc_event_log.h" #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h" -#include "modules/congestion_controller/rtp/transport_feedback_adapter.h" +#include "modules/congestion_controller/transport_feedback_adapter.h" #include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" #include "modules/rtp_rtcp/source/byte_io.h" @@ -1438,8 +1438,7 @@ const std::vector GetNetworkTrace( clock.AdvanceTimeMicroseconds(time_us - clock.TimeInMicroseconds()); if (clock.TimeInMicroseconds() >= NextRtcpTime()) { RTC_DCHECK_EQ(clock.TimeInMicroseconds(), NextRtcpTime()); - feedback_adapter.ProcessTransportFeedback( - rtcp_iterator->transport_feedback); + feedback_adapter.OnTransportFeedback(rtcp_iterator->transport_feedback); std::vector feedback = feedback_adapter.GetTransportFeedbackVector(); SortPacketFeedbackVectorWithLoss(&feedback); @@ -1453,25 +1452,14 @@ const std::vector GetNetworkTrace( if (clock.TimeInMicroseconds() >= NextRtpTime()) { RTC_DCHECK_EQ(clock.TimeInMicroseconds(), NextRtpTime()); const RtpPacketType& rtp_packet = *rtp_iterator->second; - rtc::SentPacket sent_packet; - sent_packet.send_time_ms = rtp_packet.rtp.log_time_ms(); - sent_packet.info.packet_size_bytes = rtp_packet.rtp.total_length; if (rtp_packet.rtp.header.extension.hasTransportSequenceNumber) { feedback_adapter.AddPacket( rtp_packet.rtp.header.ssrc, rtp_packet.rtp.header.extension.transportSequenceNumber, rtp_packet.rtp.total_length, PacedPacketInfo()); - sent_packet.packet_id = - rtp_packet.rtp.header.extension.transportSequenceNumber; - sent_packet.info.included_in_feedback = true; - sent_packet.info.included_in_allocation = true; - feedback_adapter.ProcessSentPacket(sent_packet); - } else { - sent_packet.info.included_in_feedback = false; - // TODO(srte): Make it possible to indicate that all packets are part of - // allocation. - sent_packet.info.included_in_allocation = false; - feedback_adapter.ProcessSentPacket(sent_packet); + feedback_adapter.OnSentPacket( + rtp_packet.rtp.header.extension.transportSequenceNumber, + rtp_packet.rtp.log_time_ms()); } ++rtp_iterator; } diff --git a/modules/congestion_controller/include/send_side_congestion_controller.h b/modules/congestion_controller/include/send_side_congestion_controller.h index 06856a3c9d..ba26272e6f 100644 --- a/modules/congestion_controller/include/send_side_congestion_controller.h +++ b/modules/congestion_controller/include/send_side_congestion_controller.h @@ -136,7 +136,7 @@ class SendSideCongestionController RTC_GUARDED_BY(probe_lock_); const std::unique_ptr retransmission_rate_limiter_; - LegacyTransportFeedbackAdapter transport_feedback_adapter_; + TransportFeedbackAdapter transport_feedback_adapter_; rtc::CriticalSection network_state_lock_; uint32_t last_reported_bitrate_bps_ RTC_GUARDED_BY(network_state_lock_); uint8_t last_reported_fraction_loss_ RTC_GUARDED_BY(network_state_lock_); diff --git a/modules/congestion_controller/rtp/transport_feedback_adapter.cc b/modules/congestion_controller/rtp/transport_feedback_adapter.cc index 348070898f..6ff1740cce 100644 --- a/modules/congestion_controller/rtp/transport_feedback_adapter.cc +++ b/modules/congestion_controller/rtp/transport_feedback_adapter.cc @@ -19,6 +19,7 @@ #include "rtc_base/numerics/mod_ops.h" namespace webrtc { +namespace webrtc_cc { namespace { void SortPacketFeedbackVector(std::vector* input) { std::sort(input->begin(), input->end(), PacketFeedbackComparator()); @@ -256,4 +257,5 @@ std::vector TransportFeedbackAdapter::GetTransportFeedbackVector() const { return last_packet_feedback_vector_; } +} // namespace webrtc_cc } // namespace webrtc diff --git a/modules/congestion_controller/rtp/transport_feedback_adapter.h b/modules/congestion_controller/rtp/transport_feedback_adapter.h index 1741d6d66a..8bc5547afc 100644 --- a/modules/congestion_controller/rtp/transport_feedback_adapter.h +++ b/modules/congestion_controller/rtp/transport_feedback_adapter.h @@ -30,6 +30,7 @@ namespace rtcp { class TransportFeedback; } // namespace rtcp +namespace webrtc_cc { class TransportFeedbackAdapter { public: explicit TransportFeedbackAdapter(const Clock* clock); @@ -75,6 +76,7 @@ class TransportFeedbackAdapter { RTC_GUARDED_BY(&observers_lock_); }; +} // namespace webrtc_cc } // namespace webrtc #endif // MODULES_CONGESTION_CONTROLLER_RTP_TRANSPORT_FEEDBACK_ADAPTER_H_ diff --git a/modules/congestion_controller/transport_feedback_adapter.cc b/modules/congestion_controller/transport_feedback_adapter.cc index b8b620d008..7f07c73d60 100644 --- a/modules/congestion_controller/transport_feedback_adapter.cc +++ b/modules/congestion_controller/transport_feedback_adapter.cc @@ -26,8 +26,7 @@ const int64_t kBaseTimestampScaleFactor = rtcp::TransportFeedback::kDeltaScaleFactor * (1 << 8); const int64_t kBaseTimestampRangeSizeUs = kBaseTimestampScaleFactor * (1 << 24); -LegacyTransportFeedbackAdapter::LegacyTransportFeedbackAdapter( - const Clock* clock) +TransportFeedbackAdapter::TransportFeedbackAdapter(const Clock* clock) : send_time_history_(clock, kSendTimeHistoryWindowMs), clock_(clock), current_offset_ms_(kNoTimestamp), @@ -35,11 +34,11 @@ LegacyTransportFeedbackAdapter::LegacyTransportFeedbackAdapter( local_net_id_(0), remote_net_id_(0) {} -LegacyTransportFeedbackAdapter::~LegacyTransportFeedbackAdapter() { +TransportFeedbackAdapter::~TransportFeedbackAdapter() { RTC_DCHECK(observers_.empty()); } -void LegacyTransportFeedbackAdapter::RegisterPacketFeedbackObserver( +void TransportFeedbackAdapter::RegisterPacketFeedbackObserver( PacketFeedbackObserver* observer) { rtc::CritScope cs(&observers_lock_); RTC_DCHECK(observer); @@ -48,7 +47,7 @@ void LegacyTransportFeedbackAdapter::RegisterPacketFeedbackObserver( observers_.push_back(observer); } -void LegacyTransportFeedbackAdapter::DeRegisterPacketFeedbackObserver( +void TransportFeedbackAdapter::DeRegisterPacketFeedbackObserver( PacketFeedbackObserver* observer) { rtc::CritScope cs(&observers_lock_); RTC_DCHECK(observer); @@ -57,11 +56,10 @@ void LegacyTransportFeedbackAdapter::DeRegisterPacketFeedbackObserver( observers_.erase(it); } -void LegacyTransportFeedbackAdapter::AddPacket( - uint32_t ssrc, - uint16_t sequence_number, - size_t length, - const PacedPacketInfo& pacing_info) { +void TransportFeedbackAdapter::AddPacket(uint32_t ssrc, + uint16_t sequence_number, + size_t length, + const PacedPacketInfo& pacing_info) { { rtc::CritScope cs(&lock_); const int64_t creation_time_ms = clock_->TimeInMilliseconds(); @@ -78,21 +76,20 @@ void LegacyTransportFeedbackAdapter::AddPacket( } } -void LegacyTransportFeedbackAdapter::OnSentPacket(uint16_t sequence_number, - int64_t send_time_ms) { +void TransportFeedbackAdapter::OnSentPacket(uint16_t sequence_number, + int64_t send_time_ms) { rtc::CritScope cs(&lock_); send_time_history_.OnSentPacket(sequence_number, send_time_ms); } -void LegacyTransportFeedbackAdapter::SetNetworkIds(uint16_t local_id, - uint16_t remote_id) { +void TransportFeedbackAdapter::SetNetworkIds(uint16_t local_id, + uint16_t remote_id) { rtc::CritScope cs(&lock_); local_net_id_ = local_id; remote_net_id_ = remote_id; } -std::vector -LegacyTransportFeedbackAdapter::GetPacketFeedbackVector( +std::vector TransportFeedbackAdapter::GetPacketFeedbackVector( const rtcp::TransportFeedback& feedback) { int64_t timestamp_us = feedback.GetBaseTimeUs(); int64_t now_ms = clock_->TimeInMilliseconds(); @@ -180,7 +177,7 @@ LegacyTransportFeedbackAdapter::GetPacketFeedbackVector( return packet_feedback_vector; } -void LegacyTransportFeedbackAdapter::OnTransportFeedback( +void TransportFeedbackAdapter::OnTransportFeedback( const rtcp::TransportFeedback& feedback) { last_packet_feedback_vector_ = GetPacketFeedbackVector(feedback); { @@ -192,17 +189,17 @@ void LegacyTransportFeedbackAdapter::OnTransportFeedback( } std::vector -LegacyTransportFeedbackAdapter::GetTransportFeedbackVector() const { +TransportFeedbackAdapter::GetTransportFeedbackVector() const { return last_packet_feedback_vector_; } -absl::optional LegacyTransportFeedbackAdapter::GetMinFeedbackLoopRtt() +absl::optional TransportFeedbackAdapter::GetMinFeedbackLoopRtt() const { rtc::CritScope cs(&lock_); return min_feedback_rtt_; } -size_t LegacyTransportFeedbackAdapter::GetOutstandingBytes() const { +size_t TransportFeedbackAdapter::GetOutstandingBytes() const { rtc::CritScope cs(&lock_); return send_time_history_.GetOutstandingData(local_net_id_, remote_net_id_) .bytes(); diff --git a/modules/congestion_controller/transport_feedback_adapter.h b/modules/congestion_controller/transport_feedback_adapter.h index c6ac2ad9ad..206236ce8b 100644 --- a/modules/congestion_controller/transport_feedback_adapter.h +++ b/modules/congestion_controller/transport_feedback_adapter.h @@ -29,12 +29,10 @@ namespace rtcp { class TransportFeedback; } // namespace rtcp -// Deprecated, use version in -// modules/congeestion_controller/rtp/transport_feedback_adapter.h -class LegacyTransportFeedbackAdapter { +class TransportFeedbackAdapter { public: - explicit LegacyTransportFeedbackAdapter(const Clock* clock); - virtual ~LegacyTransportFeedbackAdapter(); + explicit TransportFeedbackAdapter(const Clock* clock); + virtual ~TransportFeedbackAdapter(); void RegisterPacketFeedbackObserver(PacketFeedbackObserver* observer); void DeRegisterPacketFeedbackObserver(PacketFeedbackObserver* observer); diff --git a/modules/congestion_controller/transport_feedback_adapter_unittest.cc b/modules/congestion_controller/transport_feedback_adapter_unittest.cc index dc4eab13d6..39aa72e816 100644 --- a/modules/congestion_controller/transport_feedback_adapter_unittest.cc +++ b/modules/congestion_controller/transport_feedback_adapter_unittest.cc @@ -52,7 +52,7 @@ class LegacyTransportFeedbackAdapterTest : public ::testing::Test { virtual ~LegacyTransportFeedbackAdapterTest() {} virtual void SetUp() { - adapter_.reset(new LegacyTransportFeedbackAdapter(&clock_)); + adapter_.reset(new TransportFeedbackAdapter(&clock_)); } virtual void TearDown() { adapter_.reset(); } @@ -75,7 +75,7 @@ class LegacyTransportFeedbackAdapterTest : public ::testing::Test { static constexpr uint32_t kSsrc = 8492; SimulatedClock clock_; - std::unique_ptr adapter_; + std::unique_ptr adapter_; }; TEST_F(LegacyTransportFeedbackAdapterTest, ObserverSanity) {