Deprecates legacy transport feedback adapter.
Bug: webrtc:9586
Change-Id: Ib8c9cec1eb7f3cfa90b18b4b64171fa1b06713cf
Reviewed-on: https://webrtc-review.googlesource.com/c/105984
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25184}
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index 3871193..6340b49 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -280,7 +280,7 @@
"../api:libjingle_peerconnection_api",
"../call:video_stream_api",
"../modules/audio_coding:audio_network_adaptor",
- "../modules/congestion_controller:transport_feedback",
+ "../modules/congestion_controller/rtp: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 5fa69ed..64d2e13 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/transport_feedback_adapter.h"
+#include "modules/congestion_controller/rtp/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,7 +1438,8 @@
clock.AdvanceTimeMicroseconds(time_us - clock.TimeInMicroseconds());
if (clock.TimeInMicroseconds() >= NextRtcpTime()) {
RTC_DCHECK_EQ(clock.TimeInMicroseconds(), NextRtcpTime());
- feedback_adapter.OnTransportFeedback(rtcp_iterator->transport_feedback);
+ feedback_adapter.ProcessTransportFeedback(
+ rtcp_iterator->transport_feedback);
std::vector<PacketFeedback> feedback =
feedback_adapter.GetTransportFeedbackVector();
SortPacketFeedbackVectorWithLoss(&feedback);
@@ -1452,14 +1453,25 @@
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());
- feedback_adapter.OnSentPacket(
- rtp_packet.rtp.header.extension.transportSequenceNumber,
- rtp_packet.rtp.log_time_ms());
+ 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);
}
++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 ba26272..06856a3 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 @@
RTC_GUARDED_BY(probe_lock_);
const std::unique_ptr<RateLimiter> retransmission_rate_limiter_;
- TransportFeedbackAdapter transport_feedback_adapter_;
+ LegacyTransportFeedbackAdapter 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 6ff1740..3480708 100644
--- a/modules/congestion_controller/rtp/transport_feedback_adapter.cc
+++ b/modules/congestion_controller/rtp/transport_feedback_adapter.cc
@@ -19,7 +19,6 @@
#include "rtc_base/numerics/mod_ops.h"
namespace webrtc {
-namespace webrtc_cc {
namespace {
void SortPacketFeedbackVector(std::vector<webrtc::PacketFeedback>* input) {
std::sort(input->begin(), input->end(), PacketFeedbackComparator());
@@ -257,5 +256,4 @@
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 8bc5547..1741d6d 100644
--- a/modules/congestion_controller/rtp/transport_feedback_adapter.h
+++ b/modules/congestion_controller/rtp/transport_feedback_adapter.h
@@ -30,7 +30,6 @@
class TransportFeedback;
} // namespace rtcp
-namespace webrtc_cc {
class TransportFeedbackAdapter {
public:
explicit TransportFeedbackAdapter(const Clock* clock);
@@ -76,7 +75,6 @@
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 7f07c73..b8b620d 100644
--- a/modules/congestion_controller/transport_feedback_adapter.cc
+++ b/modules/congestion_controller/transport_feedback_adapter.cc
@@ -26,7 +26,8 @@
rtcp::TransportFeedback::kDeltaScaleFactor * (1 << 8);
const int64_t kBaseTimestampRangeSizeUs = kBaseTimestampScaleFactor * (1 << 24);
-TransportFeedbackAdapter::TransportFeedbackAdapter(const Clock* clock)
+LegacyTransportFeedbackAdapter::LegacyTransportFeedbackAdapter(
+ const Clock* clock)
: send_time_history_(clock, kSendTimeHistoryWindowMs),
clock_(clock),
current_offset_ms_(kNoTimestamp),
@@ -34,11 +35,11 @@
local_net_id_(0),
remote_net_id_(0) {}
-TransportFeedbackAdapter::~TransportFeedbackAdapter() {
+LegacyTransportFeedbackAdapter::~LegacyTransportFeedbackAdapter() {
RTC_DCHECK(observers_.empty());
}
-void TransportFeedbackAdapter::RegisterPacketFeedbackObserver(
+void LegacyTransportFeedbackAdapter::RegisterPacketFeedbackObserver(
PacketFeedbackObserver* observer) {
rtc::CritScope cs(&observers_lock_);
RTC_DCHECK(observer);
@@ -47,7 +48,7 @@
observers_.push_back(observer);
}
-void TransportFeedbackAdapter::DeRegisterPacketFeedbackObserver(
+void LegacyTransportFeedbackAdapter::DeRegisterPacketFeedbackObserver(
PacketFeedbackObserver* observer) {
rtc::CritScope cs(&observers_lock_);
RTC_DCHECK(observer);
@@ -56,10 +57,11 @@
observers_.erase(it);
}
-void TransportFeedbackAdapter::AddPacket(uint32_t ssrc,
- uint16_t sequence_number,
- size_t length,
- const PacedPacketInfo& pacing_info) {
+void LegacyTransportFeedbackAdapter::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();
@@ -76,20 +78,21 @@
}
}
-void TransportFeedbackAdapter::OnSentPacket(uint16_t sequence_number,
- int64_t send_time_ms) {
+void LegacyTransportFeedbackAdapter::OnSentPacket(uint16_t sequence_number,
+ int64_t send_time_ms) {
rtc::CritScope cs(&lock_);
send_time_history_.OnSentPacket(sequence_number, send_time_ms);
}
-void TransportFeedbackAdapter::SetNetworkIds(uint16_t local_id,
- uint16_t remote_id) {
+void LegacyTransportFeedbackAdapter::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<PacketFeedback> TransportFeedbackAdapter::GetPacketFeedbackVector(
+std::vector<PacketFeedback>
+LegacyTransportFeedbackAdapter::GetPacketFeedbackVector(
const rtcp::TransportFeedback& feedback) {
int64_t timestamp_us = feedback.GetBaseTimeUs();
int64_t now_ms = clock_->TimeInMilliseconds();
@@ -177,7 +180,7 @@
return packet_feedback_vector;
}
-void TransportFeedbackAdapter::OnTransportFeedback(
+void LegacyTransportFeedbackAdapter::OnTransportFeedback(
const rtcp::TransportFeedback& feedback) {
last_packet_feedback_vector_ = GetPacketFeedbackVector(feedback);
{
@@ -189,17 +192,17 @@
}
std::vector<PacketFeedback>
-TransportFeedbackAdapter::GetTransportFeedbackVector() const {
+LegacyTransportFeedbackAdapter::GetTransportFeedbackVector() const {
return last_packet_feedback_vector_;
}
-absl::optional<int64_t> TransportFeedbackAdapter::GetMinFeedbackLoopRtt()
+absl::optional<int64_t> LegacyTransportFeedbackAdapter::GetMinFeedbackLoopRtt()
const {
rtc::CritScope cs(&lock_);
return min_feedback_rtt_;
}
-size_t TransportFeedbackAdapter::GetOutstandingBytes() const {
+size_t LegacyTransportFeedbackAdapter::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 206236c..c6ac2ad 100644
--- a/modules/congestion_controller/transport_feedback_adapter.h
+++ b/modules/congestion_controller/transport_feedback_adapter.h
@@ -29,10 +29,12 @@
class TransportFeedback;
} // namespace rtcp
-class TransportFeedbackAdapter {
+// Deprecated, use version in
+// modules/congeestion_controller/rtp/transport_feedback_adapter.h
+class LegacyTransportFeedbackAdapter {
public:
- explicit TransportFeedbackAdapter(const Clock* clock);
- virtual ~TransportFeedbackAdapter();
+ explicit LegacyTransportFeedbackAdapter(const Clock* clock);
+ virtual ~LegacyTransportFeedbackAdapter();
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 39aa72e..dc4eab1 100644
--- a/modules/congestion_controller/transport_feedback_adapter_unittest.cc
+++ b/modules/congestion_controller/transport_feedback_adapter_unittest.cc
@@ -52,7 +52,7 @@
virtual ~LegacyTransportFeedbackAdapterTest() {}
virtual void SetUp() {
- adapter_.reset(new TransportFeedbackAdapter(&clock_));
+ adapter_.reset(new LegacyTransportFeedbackAdapter(&clock_));
}
virtual void TearDown() { adapter_.reset(); }
@@ -75,7 +75,7 @@
static constexpr uint32_t kSsrc = 8492;
SimulatedClock clock_;
- std::unique_ptr<TransportFeedbackAdapter> adapter_;
+ std::unique_ptr<LegacyTransportFeedbackAdapter> adapter_;
};
TEST_F(LegacyTransportFeedbackAdapterTest, ObserverSanity) {