Revert "Deprecates legacy transport feedback adapter."
This reverts commit a5778e0d560ffb3e07637547ba8468f4762a2b3e. Reason for revert: ../../rtc_tools/event_log_visualizer/analyzer.cc(1084,3): error: use of undeclared identifier 'webrtc_cc' webrtc_cc::TransportFeedbackAdapter transport_feedback(&clock); Original change's description: > 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} TBR=terelius@webrtc.org,srte@webrtc.org Change-Id: I768149f9f4c5db740c2d5938cb3df1d54a8283d4 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9586 Reviewed-on: https://webrtc-review.googlesource.com/c/106141 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25185}
This commit is contained in:

committed by
Commit Bot

parent
a5778e0d56
commit
f714ee1f8f
@ -280,7 +280,7 @@ if (rtc_enable_protobuf) {
|
|||||||
"../api:libjingle_peerconnection_api",
|
"../api:libjingle_peerconnection_api",
|
||||||
"../call:video_stream_api",
|
"../call:video_stream_api",
|
||||||
"../modules/audio_coding:audio_network_adaptor",
|
"../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/remote_bitrate_estimator:remote_bitrate_estimator",
|
||||||
"../modules/rtp_rtcp",
|
"../modules/rtp_rtcp",
|
||||||
"../modules/rtp_rtcp:rtp_rtcp_format",
|
"../modules/rtp_rtcp:rtp_rtcp_format",
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#include "api/rtpparameters.h"
|
#include "api/rtpparameters.h"
|
||||||
#include "logging/rtc_event_log/rtc_event_log.h"
|
#include "logging/rtc_event_log/rtc_event_log.h"
|
||||||
#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.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/remote_bitrate_estimator/include/bwe_defines.h"
|
||||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||||
#include "modules/rtp_rtcp/source/byte_io.h"
|
#include "modules/rtp_rtcp/source/byte_io.h"
|
||||||
@ -1438,8 +1438,7 @@ const std::vector<MatchedSendArrivalTimes> GetNetworkTrace(
|
|||||||
clock.AdvanceTimeMicroseconds(time_us - clock.TimeInMicroseconds());
|
clock.AdvanceTimeMicroseconds(time_us - clock.TimeInMicroseconds());
|
||||||
if (clock.TimeInMicroseconds() >= NextRtcpTime()) {
|
if (clock.TimeInMicroseconds() >= NextRtcpTime()) {
|
||||||
RTC_DCHECK_EQ(clock.TimeInMicroseconds(), NextRtcpTime());
|
RTC_DCHECK_EQ(clock.TimeInMicroseconds(), NextRtcpTime());
|
||||||
feedback_adapter.ProcessTransportFeedback(
|
feedback_adapter.OnTransportFeedback(rtcp_iterator->transport_feedback);
|
||||||
rtcp_iterator->transport_feedback);
|
|
||||||
std::vector<PacketFeedback> feedback =
|
std::vector<PacketFeedback> feedback =
|
||||||
feedback_adapter.GetTransportFeedbackVector();
|
feedback_adapter.GetTransportFeedbackVector();
|
||||||
SortPacketFeedbackVectorWithLoss(&feedback);
|
SortPacketFeedbackVectorWithLoss(&feedback);
|
||||||
@ -1453,25 +1452,14 @@ const std::vector<MatchedSendArrivalTimes> GetNetworkTrace(
|
|||||||
if (clock.TimeInMicroseconds() >= NextRtpTime()) {
|
if (clock.TimeInMicroseconds() >= NextRtpTime()) {
|
||||||
RTC_DCHECK_EQ(clock.TimeInMicroseconds(), NextRtpTime());
|
RTC_DCHECK_EQ(clock.TimeInMicroseconds(), NextRtpTime());
|
||||||
const RtpPacketType& rtp_packet = *rtp_iterator->second;
|
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) {
|
if (rtp_packet.rtp.header.extension.hasTransportSequenceNumber) {
|
||||||
feedback_adapter.AddPacket(
|
feedback_adapter.AddPacket(
|
||||||
rtp_packet.rtp.header.ssrc,
|
rtp_packet.rtp.header.ssrc,
|
||||||
rtp_packet.rtp.header.extension.transportSequenceNumber,
|
rtp_packet.rtp.header.extension.transportSequenceNumber,
|
||||||
rtp_packet.rtp.total_length, PacedPacketInfo());
|
rtp_packet.rtp.total_length, PacedPacketInfo());
|
||||||
sent_packet.packet_id =
|
feedback_adapter.OnSentPacket(
|
||||||
rtp_packet.rtp.header.extension.transportSequenceNumber;
|
rtp_packet.rtp.header.extension.transportSequenceNumber,
|
||||||
sent_packet.info.included_in_feedback = true;
|
rtp_packet.rtp.log_time_ms());
|
||||||
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;
|
++rtp_iterator;
|
||||||
}
|
}
|
||||||
|
@ -136,7 +136,7 @@ class SendSideCongestionController
|
|||||||
RTC_GUARDED_BY(probe_lock_);
|
RTC_GUARDED_BY(probe_lock_);
|
||||||
|
|
||||||
const std::unique_ptr<RateLimiter> retransmission_rate_limiter_;
|
const std::unique_ptr<RateLimiter> retransmission_rate_limiter_;
|
||||||
LegacyTransportFeedbackAdapter transport_feedback_adapter_;
|
TransportFeedbackAdapter transport_feedback_adapter_;
|
||||||
rtc::CriticalSection network_state_lock_;
|
rtc::CriticalSection network_state_lock_;
|
||||||
uint32_t last_reported_bitrate_bps_ RTC_GUARDED_BY(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_);
|
uint8_t last_reported_fraction_loss_ RTC_GUARDED_BY(network_state_lock_);
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "rtc_base/numerics/mod_ops.h"
|
#include "rtc_base/numerics/mod_ops.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
namespace webrtc_cc {
|
||||||
namespace {
|
namespace {
|
||||||
void SortPacketFeedbackVector(std::vector<webrtc::PacketFeedback>* input) {
|
void SortPacketFeedbackVector(std::vector<webrtc::PacketFeedback>* input) {
|
||||||
std::sort(input->begin(), input->end(), PacketFeedbackComparator());
|
std::sort(input->begin(), input->end(), PacketFeedbackComparator());
|
||||||
@ -256,4 +257,5 @@ std::vector<PacketFeedback>
|
|||||||
TransportFeedbackAdapter::GetTransportFeedbackVector() const {
|
TransportFeedbackAdapter::GetTransportFeedbackVector() const {
|
||||||
return last_packet_feedback_vector_;
|
return last_packet_feedback_vector_;
|
||||||
}
|
}
|
||||||
|
} // namespace webrtc_cc
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -30,6 +30,7 @@ namespace rtcp {
|
|||||||
class TransportFeedback;
|
class TransportFeedback;
|
||||||
} // namespace rtcp
|
} // namespace rtcp
|
||||||
|
|
||||||
|
namespace webrtc_cc {
|
||||||
class TransportFeedbackAdapter {
|
class TransportFeedbackAdapter {
|
||||||
public:
|
public:
|
||||||
explicit TransportFeedbackAdapter(const Clock* clock);
|
explicit TransportFeedbackAdapter(const Clock* clock);
|
||||||
@ -75,6 +76,7 @@ class TransportFeedbackAdapter {
|
|||||||
RTC_GUARDED_BY(&observers_lock_);
|
RTC_GUARDED_BY(&observers_lock_);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace webrtc_cc
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
#endif // MODULES_CONGESTION_CONTROLLER_RTP_TRANSPORT_FEEDBACK_ADAPTER_H_
|
#endif // MODULES_CONGESTION_CONTROLLER_RTP_TRANSPORT_FEEDBACK_ADAPTER_H_
|
||||||
|
@ -26,8 +26,7 @@ const int64_t kBaseTimestampScaleFactor =
|
|||||||
rtcp::TransportFeedback::kDeltaScaleFactor * (1 << 8);
|
rtcp::TransportFeedback::kDeltaScaleFactor * (1 << 8);
|
||||||
const int64_t kBaseTimestampRangeSizeUs = kBaseTimestampScaleFactor * (1 << 24);
|
const int64_t kBaseTimestampRangeSizeUs = kBaseTimestampScaleFactor * (1 << 24);
|
||||||
|
|
||||||
LegacyTransportFeedbackAdapter::LegacyTransportFeedbackAdapter(
|
TransportFeedbackAdapter::TransportFeedbackAdapter(const Clock* clock)
|
||||||
const Clock* clock)
|
|
||||||
: send_time_history_(clock, kSendTimeHistoryWindowMs),
|
: send_time_history_(clock, kSendTimeHistoryWindowMs),
|
||||||
clock_(clock),
|
clock_(clock),
|
||||||
current_offset_ms_(kNoTimestamp),
|
current_offset_ms_(kNoTimestamp),
|
||||||
@ -35,11 +34,11 @@ LegacyTransportFeedbackAdapter::LegacyTransportFeedbackAdapter(
|
|||||||
local_net_id_(0),
|
local_net_id_(0),
|
||||||
remote_net_id_(0) {}
|
remote_net_id_(0) {}
|
||||||
|
|
||||||
LegacyTransportFeedbackAdapter::~LegacyTransportFeedbackAdapter() {
|
TransportFeedbackAdapter::~TransportFeedbackAdapter() {
|
||||||
RTC_DCHECK(observers_.empty());
|
RTC_DCHECK(observers_.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
void LegacyTransportFeedbackAdapter::RegisterPacketFeedbackObserver(
|
void TransportFeedbackAdapter::RegisterPacketFeedbackObserver(
|
||||||
PacketFeedbackObserver* observer) {
|
PacketFeedbackObserver* observer) {
|
||||||
rtc::CritScope cs(&observers_lock_);
|
rtc::CritScope cs(&observers_lock_);
|
||||||
RTC_DCHECK(observer);
|
RTC_DCHECK(observer);
|
||||||
@ -48,7 +47,7 @@ void LegacyTransportFeedbackAdapter::RegisterPacketFeedbackObserver(
|
|||||||
observers_.push_back(observer);
|
observers_.push_back(observer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LegacyTransportFeedbackAdapter::DeRegisterPacketFeedbackObserver(
|
void TransportFeedbackAdapter::DeRegisterPacketFeedbackObserver(
|
||||||
PacketFeedbackObserver* observer) {
|
PacketFeedbackObserver* observer) {
|
||||||
rtc::CritScope cs(&observers_lock_);
|
rtc::CritScope cs(&observers_lock_);
|
||||||
RTC_DCHECK(observer);
|
RTC_DCHECK(observer);
|
||||||
@ -57,8 +56,7 @@ void LegacyTransportFeedbackAdapter::DeRegisterPacketFeedbackObserver(
|
|||||||
observers_.erase(it);
|
observers_.erase(it);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LegacyTransportFeedbackAdapter::AddPacket(
|
void TransportFeedbackAdapter::AddPacket(uint32_t ssrc,
|
||||||
uint32_t ssrc,
|
|
||||||
uint16_t sequence_number,
|
uint16_t sequence_number,
|
||||||
size_t length,
|
size_t length,
|
||||||
const PacedPacketInfo& pacing_info) {
|
const PacedPacketInfo& pacing_info) {
|
||||||
@ -78,21 +76,20 @@ void LegacyTransportFeedbackAdapter::AddPacket(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LegacyTransportFeedbackAdapter::OnSentPacket(uint16_t sequence_number,
|
void TransportFeedbackAdapter::OnSentPacket(uint16_t sequence_number,
|
||||||
int64_t send_time_ms) {
|
int64_t send_time_ms) {
|
||||||
rtc::CritScope cs(&lock_);
|
rtc::CritScope cs(&lock_);
|
||||||
send_time_history_.OnSentPacket(sequence_number, send_time_ms);
|
send_time_history_.OnSentPacket(sequence_number, send_time_ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LegacyTransportFeedbackAdapter::SetNetworkIds(uint16_t local_id,
|
void TransportFeedbackAdapter::SetNetworkIds(uint16_t local_id,
|
||||||
uint16_t remote_id) {
|
uint16_t remote_id) {
|
||||||
rtc::CritScope cs(&lock_);
|
rtc::CritScope cs(&lock_);
|
||||||
local_net_id_ = local_id;
|
local_net_id_ = local_id;
|
||||||
remote_net_id_ = remote_id;
|
remote_net_id_ = remote_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<PacketFeedback>
|
std::vector<PacketFeedback> TransportFeedbackAdapter::GetPacketFeedbackVector(
|
||||||
LegacyTransportFeedbackAdapter::GetPacketFeedbackVector(
|
|
||||||
const rtcp::TransportFeedback& feedback) {
|
const rtcp::TransportFeedback& feedback) {
|
||||||
int64_t timestamp_us = feedback.GetBaseTimeUs();
|
int64_t timestamp_us = feedback.GetBaseTimeUs();
|
||||||
int64_t now_ms = clock_->TimeInMilliseconds();
|
int64_t now_ms = clock_->TimeInMilliseconds();
|
||||||
@ -180,7 +177,7 @@ LegacyTransportFeedbackAdapter::GetPacketFeedbackVector(
|
|||||||
return packet_feedback_vector;
|
return packet_feedback_vector;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LegacyTransportFeedbackAdapter::OnTransportFeedback(
|
void TransportFeedbackAdapter::OnTransportFeedback(
|
||||||
const rtcp::TransportFeedback& feedback) {
|
const rtcp::TransportFeedback& feedback) {
|
||||||
last_packet_feedback_vector_ = GetPacketFeedbackVector(feedback);
|
last_packet_feedback_vector_ = GetPacketFeedbackVector(feedback);
|
||||||
{
|
{
|
||||||
@ -192,17 +189,17 @@ void LegacyTransportFeedbackAdapter::OnTransportFeedback(
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::vector<PacketFeedback>
|
std::vector<PacketFeedback>
|
||||||
LegacyTransportFeedbackAdapter::GetTransportFeedbackVector() const {
|
TransportFeedbackAdapter::GetTransportFeedbackVector() const {
|
||||||
return last_packet_feedback_vector_;
|
return last_packet_feedback_vector_;
|
||||||
}
|
}
|
||||||
|
|
||||||
absl::optional<int64_t> LegacyTransportFeedbackAdapter::GetMinFeedbackLoopRtt()
|
absl::optional<int64_t> TransportFeedbackAdapter::GetMinFeedbackLoopRtt()
|
||||||
const {
|
const {
|
||||||
rtc::CritScope cs(&lock_);
|
rtc::CritScope cs(&lock_);
|
||||||
return min_feedback_rtt_;
|
return min_feedback_rtt_;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t LegacyTransportFeedbackAdapter::GetOutstandingBytes() const {
|
size_t TransportFeedbackAdapter::GetOutstandingBytes() const {
|
||||||
rtc::CritScope cs(&lock_);
|
rtc::CritScope cs(&lock_);
|
||||||
return send_time_history_.GetOutstandingData(local_net_id_, remote_net_id_)
|
return send_time_history_.GetOutstandingData(local_net_id_, remote_net_id_)
|
||||||
.bytes();
|
.bytes();
|
||||||
|
@ -29,12 +29,10 @@ namespace rtcp {
|
|||||||
class TransportFeedback;
|
class TransportFeedback;
|
||||||
} // namespace rtcp
|
} // namespace rtcp
|
||||||
|
|
||||||
// Deprecated, use version in
|
class TransportFeedbackAdapter {
|
||||||
// modules/congeestion_controller/rtp/transport_feedback_adapter.h
|
|
||||||
class LegacyTransportFeedbackAdapter {
|
|
||||||
public:
|
public:
|
||||||
explicit LegacyTransportFeedbackAdapter(const Clock* clock);
|
explicit TransportFeedbackAdapter(const Clock* clock);
|
||||||
virtual ~LegacyTransportFeedbackAdapter();
|
virtual ~TransportFeedbackAdapter();
|
||||||
|
|
||||||
void RegisterPacketFeedbackObserver(PacketFeedbackObserver* observer);
|
void RegisterPacketFeedbackObserver(PacketFeedbackObserver* observer);
|
||||||
void DeRegisterPacketFeedbackObserver(PacketFeedbackObserver* observer);
|
void DeRegisterPacketFeedbackObserver(PacketFeedbackObserver* observer);
|
||||||
|
@ -52,7 +52,7 @@ class LegacyTransportFeedbackAdapterTest : public ::testing::Test {
|
|||||||
virtual ~LegacyTransportFeedbackAdapterTest() {}
|
virtual ~LegacyTransportFeedbackAdapterTest() {}
|
||||||
|
|
||||||
virtual void SetUp() {
|
virtual void SetUp() {
|
||||||
adapter_.reset(new LegacyTransportFeedbackAdapter(&clock_));
|
adapter_.reset(new TransportFeedbackAdapter(&clock_));
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void TearDown() { adapter_.reset(); }
|
virtual void TearDown() { adapter_.reset(); }
|
||||||
@ -75,7 +75,7 @@ class LegacyTransportFeedbackAdapterTest : public ::testing::Test {
|
|||||||
static constexpr uint32_t kSsrc = 8492;
|
static constexpr uint32_t kSsrc = 8492;
|
||||||
|
|
||||||
SimulatedClock clock_;
|
SimulatedClock clock_;
|
||||||
std::unique_ptr<LegacyTransportFeedbackAdapter> adapter_;
|
std::unique_ptr<TransportFeedbackAdapter> adapter_;
|
||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(LegacyTransportFeedbackAdapterTest, ObserverSanity) {
|
TEST_F(LegacyTransportFeedbackAdapterTest, ObserverSanity) {
|
||||||
|
Reference in New Issue
Block a user