Move transport feedback adapter into its own target.
Bug: None Change-Id: I51833768a464896fd7b9306406ddbcc7e172b9cf Reviewed-on: https://webrtc-review.googlesource.com/43862 Reviewed-by: Björn Terelius <terelius@webrtc.org> Commit-Queue: Stefan Holmer <stefan@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21777}
This commit is contained in:
parent
65ce31158f
commit
4dbc7e4f2b
@ -26,8 +26,6 @@ rtc_static_library("congestion_controller") {
|
||||
"probe_controller.h",
|
||||
"receive_side_congestion_controller.cc",
|
||||
"send_side_congestion_controller.cc",
|
||||
"transport_feedback_adapter.cc",
|
||||
"transport_feedback_adapter.h",
|
||||
]
|
||||
|
||||
# TODO(jschuh): Bug 1348: fix this warning.
|
||||
@ -41,6 +39,7 @@ rtc_static_library("congestion_controller") {
|
||||
deps = [
|
||||
":delay_based_bwe",
|
||||
":estimators",
|
||||
":transport_feedback",
|
||||
"..:module_api",
|
||||
"../..:webrtc_common",
|
||||
"../../rtc_base:checks",
|
||||
@ -60,6 +59,24 @@ rtc_static_library("congestion_controller") {
|
||||
}
|
||||
}
|
||||
|
||||
rtc_static_library("transport_feedback") {
|
||||
visibility = [ "*" ]
|
||||
sources = [
|
||||
"send_time_history.cc",
|
||||
"send_time_history.h",
|
||||
"transport_feedback_adapter.cc",
|
||||
"transport_feedback_adapter.h",
|
||||
]
|
||||
|
||||
deps = [
|
||||
"../../modules:module_api",
|
||||
"../../rtc_base:checks",
|
||||
"../../rtc_base:rtc_base_approved",
|
||||
"../../system_wrappers:system_wrappers",
|
||||
"../rtp_rtcp:rtp_rtcp_format",
|
||||
]
|
||||
}
|
||||
|
||||
rtc_source_set("estimators") {
|
||||
configs += [ ":bwe_test_logging" ]
|
||||
sources = [
|
||||
@ -136,6 +153,7 @@ if (rtc_include_tests) {
|
||||
"probe_controller_unittest.cc",
|
||||
"receive_side_congestion_controller_unittest.cc",
|
||||
"send_side_congestion_controller_unittest.cc",
|
||||
"send_time_history_unittest.cc",
|
||||
"transport_feedback_adapter_unittest.cc",
|
||||
"trendline_estimator_unittest.cc",
|
||||
]
|
||||
@ -144,6 +162,7 @@ if (rtc_include_tests) {
|
||||
":delay_based_bwe",
|
||||
":estimators",
|
||||
":mock_congestion_controller",
|
||||
":transport_feedback",
|
||||
"../../logging:mocks",
|
||||
"../../rtc_base:checks",
|
||||
"../../rtc_base:rtc_base",
|
||||
|
||||
@ -152,6 +152,8 @@ class SendSideCongestionController : public CallStatsObserver,
|
||||
bool in_cwnd_experiment_;
|
||||
int64_t accepted_queue_ms_;
|
||||
bool was_in_alr_;
|
||||
const bool send_side_bwe_with_overhead_;
|
||||
size_t transport_overhead_bytes_per_packet_ RTC_GUARDED_BY(bwe_lock_);
|
||||
|
||||
rtc::RaceChecker worker_race_;
|
||||
|
||||
|
||||
@ -132,8 +132,10 @@ SendSideCongestionController::SendSideCongestionController(
|
||||
in_cwnd_experiment_(CwndExperimentEnabled()),
|
||||
accepted_queue_ms_(kDefaultAcceptedQueueMs),
|
||||
was_in_alr_(false),
|
||||
pacer_pushback_experiment_(
|
||||
IsPacerPushbackExperimentEnabled()) {
|
||||
send_side_bwe_with_overhead_(
|
||||
webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead")),
|
||||
transport_overhead_bytes_per_packet_(0),
|
||||
pacer_pushback_experiment_(IsPacerPushbackExperimentEnabled()) {
|
||||
delay_based_bwe_->SetMinBitrate(min_bitrate_bps_);
|
||||
if (in_cwnd_experiment_ &&
|
||||
!ReadCwndExperimentParameter(&accepted_queue_ms_)) {
|
||||
@ -267,8 +269,8 @@ void SendSideCongestionController::SignalNetworkState(NetworkState state) {
|
||||
|
||||
void SendSideCongestionController::SetTransportOverhead(
|
||||
size_t transport_overhead_bytes_per_packet) {
|
||||
transport_feedback_adapter_.SetTransportOverhead(
|
||||
rtc::dchecked_cast<int>(transport_overhead_bytes_per_packet));
|
||||
rtc::CritScope cs(&bwe_lock_);
|
||||
transport_overhead_bytes_per_packet_ = transport_overhead_bytes_per_packet;
|
||||
}
|
||||
|
||||
void SendSideCongestionController::OnSentPacket(
|
||||
@ -318,6 +320,10 @@ void SendSideCongestionController::AddPacket(
|
||||
uint16_t sequence_number,
|
||||
size_t length,
|
||||
const PacedPacketInfo& pacing_info) {
|
||||
if (send_side_bwe_with_overhead_) {
|
||||
rtc::CritScope cs(&bwe_lock_);
|
||||
length += transport_overhead_bytes_per_packet_;
|
||||
}
|
||||
transport_feedback_adapter_.AddPacket(ssrc, sequence_number, length,
|
||||
pacing_info);
|
||||
}
|
||||
|
||||
@ -8,7 +8,10 @@
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "modules/remote_bitrate_estimator/include/send_time_history.h"
|
||||
#include "modules/congestion_controller/send_time_history.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
|
||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
#include "rtc_base/checks.h"
|
||||
@ -8,8 +8,8 @@
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_INCLUDE_SEND_TIME_HISTORY_H_
|
||||
#define MODULES_REMOTE_BITRATE_ESTIMATOR_INCLUDE_SEND_TIME_HISTORY_H_
|
||||
#ifndef MODULES_CONGESTION_CONTROLLER_SEND_TIME_HISTORY_H_
|
||||
#define MODULES_CONGESTION_CONTROLLER_SEND_TIME_HISTORY_H_
|
||||
|
||||
#include <map>
|
||||
|
||||
@ -52,4 +52,4 @@ class SendTimeHistory {
|
||||
};
|
||||
|
||||
} // namespace webrtc
|
||||
#endif // MODULES_REMOTE_BITRATE_ESTIMATOR_INCLUDE_SEND_TIME_HISTORY_H_
|
||||
#endif // MODULES_CONGESTION_CONTROLLER_SEND_TIME_HISTORY_H_
|
||||
@ -13,7 +13,7 @@
|
||||
#include <random>
|
||||
#include <vector>
|
||||
|
||||
#include "modules/remote_bitrate_estimator/include/send_time_history.h"
|
||||
#include "modules/congestion_controller/send_time_history.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
#include "system_wrappers/include/clock.h"
|
||||
#include "test/gtest.h"
|
||||
@ -12,12 +12,11 @@
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "modules/congestion_controller/delay_based_bwe.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
|
||||
#include "rtc_base/checks.h"
|
||||
#include "rtc_base/logging.h"
|
||||
#include "rtc_base/numerics/mod_ops.h"
|
||||
#include "system_wrappers/include/field_trial.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
@ -28,10 +27,7 @@ const int64_t kBaseTimestampScaleFactor =
|
||||
const int64_t kBaseTimestampRangeSizeUs = kBaseTimestampScaleFactor * (1 << 24);
|
||||
|
||||
TransportFeedbackAdapter::TransportFeedbackAdapter(const Clock* clock)
|
||||
: send_side_bwe_with_overhead_(
|
||||
webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead")),
|
||||
transport_overhead_bytes_per_packet_(0),
|
||||
send_time_history_(clock, kSendTimeHistoryWindowMs),
|
||||
: send_time_history_(clock, kSendTimeHistoryWindowMs),
|
||||
clock_(clock),
|
||||
current_offset_ms_(kNoTimestamp),
|
||||
last_timestamp_us_(kNoTimestamp),
|
||||
@ -66,9 +62,6 @@ void TransportFeedbackAdapter::AddPacket(uint32_t ssrc,
|
||||
const PacedPacketInfo& pacing_info) {
|
||||
{
|
||||
rtc::CritScope cs(&lock_);
|
||||
if (send_side_bwe_with_overhead_) {
|
||||
length += transport_overhead_bytes_per_packet_;
|
||||
}
|
||||
const int64_t creation_time_ms = clock_->TimeInMilliseconds();
|
||||
send_time_history_.AddAndRemoveOld(
|
||||
PacketFeedback(creation_time_ms, sequence_number, length, local_net_id_,
|
||||
@ -77,7 +70,7 @@ void TransportFeedbackAdapter::AddPacket(uint32_t ssrc,
|
||||
|
||||
{
|
||||
rtc::CritScope cs(&observers_lock_);
|
||||
for (auto observer : observers_) {
|
||||
for (auto* observer : observers_) {
|
||||
observer->OnPacketAdded(ssrc, sequence_number);
|
||||
}
|
||||
}
|
||||
@ -89,12 +82,6 @@ void TransportFeedbackAdapter::OnSentPacket(uint16_t sequence_number,
|
||||
send_time_history_.OnSentPacket(sequence_number, send_time_ms);
|
||||
}
|
||||
|
||||
void TransportFeedbackAdapter::SetTransportOverhead(
|
||||
int transport_overhead_bytes_per_packet) {
|
||||
rtc::CritScope cs(&lock_);
|
||||
transport_overhead_bytes_per_packet_ = transport_overhead_bytes_per_packet;
|
||||
}
|
||||
|
||||
void TransportFeedbackAdapter::SetNetworkIds(uint16_t local_id,
|
||||
uint16_t remote_id) {
|
||||
rtc::CritScope cs(&lock_);
|
||||
@ -195,7 +182,7 @@ void TransportFeedbackAdapter::OnTransportFeedback(
|
||||
last_packet_feedback_vector_ = GetPacketFeedbackVector(feedback);
|
||||
{
|
||||
rtc::CritScope cs(&observers_lock_);
|
||||
for (auto observer : observers_) {
|
||||
for (auto* observer : observers_) {
|
||||
observer->OnPacketFeedbackVector(last_packet_feedback_vector_);
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
#include <deque>
|
||||
#include <vector>
|
||||
|
||||
#include "modules/remote_bitrate_estimator/include/send_time_history.h"
|
||||
#include "modules/congestion_controller/send_time_history.h"
|
||||
#include "rtc_base/criticalsection.h"
|
||||
#include "rtc_base/thread_annotations.h"
|
||||
#include "rtc_base/thread_checker.h"
|
||||
@ -59,9 +59,7 @@ class TransportFeedbackAdapter {
|
||||
std::vector<PacketFeedback> GetPacketFeedbackVector(
|
||||
const rtcp::TransportFeedback& feedback);
|
||||
|
||||
const bool send_side_bwe_with_overhead_;
|
||||
rtc::CriticalSection lock_;
|
||||
int transport_overhead_bytes_per_packet_ RTC_GUARDED_BY(&lock_);
|
||||
SendTimeHistory send_time_history_ RTC_GUARDED_BY(&lock_);
|
||||
const Clock* const clock_;
|
||||
int64_t current_offset_ms_;
|
||||
|
||||
@ -16,7 +16,6 @@ rtc_static_library("remote_bitrate_estimator") {
|
||||
"bwe_defines.cc",
|
||||
"include/bwe_defines.h",
|
||||
"include/remote_bitrate_estimator.h",
|
||||
"include/send_time_history.h",
|
||||
"inter_arrival.cc",
|
||||
"inter_arrival.h",
|
||||
"overuse_detector.cc",
|
||||
@ -29,7 +28,6 @@ rtc_static_library("remote_bitrate_estimator") {
|
||||
"remote_bitrate_estimator_single_stream.h",
|
||||
"remote_estimator_proxy.cc",
|
||||
"remote_estimator_proxy.h",
|
||||
"send_time_history.cc",
|
||||
"test/bwe_test_logging.h",
|
||||
]
|
||||
|
||||
@ -152,6 +150,7 @@ if (rtc_include_tests) {
|
||||
"../congestion_controller",
|
||||
"../congestion_controller:delay_based_bwe",
|
||||
"../congestion_controller:estimators",
|
||||
"../congestion_controller:transport_feedback",
|
||||
"../pacing",
|
||||
"../rtp_rtcp",
|
||||
"../rtp_rtcp:rtp_rtcp_format",
|
||||
@ -191,7 +190,6 @@ if (rtc_include_tests) {
|
||||
"remote_bitrate_estimator_unittest_helper.cc",
|
||||
"remote_bitrate_estimator_unittest_helper.h",
|
||||
"remote_estimator_proxy_unittest.cc",
|
||||
"send_time_history_unittest.cc",
|
||||
"test/bwe_test_framework_unittest.cc",
|
||||
"test/bwe_unittest.cc",
|
||||
"test/estimators/congestion_window_unittest.cc",
|
||||
|
||||
@ -20,7 +20,6 @@
|
||||
#include <vector>
|
||||
|
||||
#include "logging/rtc_event_log/mock/mock_rtc_event_log.h"
|
||||
#include "modules/remote_bitrate_estimator/include/send_time_history.h"
|
||||
#include "modules/remote_bitrate_estimator/test/bwe.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
|
||||
#include "logging/rtc_event_log/mock/mock_rtc_event_log.h"
|
||||
#include "modules/congestion_controller/acknowledged_bitrate_estimator.h"
|
||||
#include "modules/remote_bitrate_estimator/include/send_time_history.h"
|
||||
#include "modules/congestion_controller/send_time_history.h"
|
||||
#include "modules/remote_bitrate_estimator/test/bwe.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user