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:
Mirko Bonadei
2018-10-15 18:23:59 +00:00
committed by Commit Bot
parent a5778e0d56
commit f714ee1f8f
8 changed files with 33 additions and 46 deletions

View File

@ -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",

View File

@ -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;
} }

View File

@ -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_);

View File

@ -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

View File

@ -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_

View File

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

View File

@ -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);

View File

@ -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) {