Cleanup of bwe_defines.h Delete unused macros BWE_MIN and BWE_MAX. Move enum RateControlState: Make it a private enum class in AimdRateControl, the only user. Change users of the header file that only need BandwidthUsage, to instead include api/network_state_predictor.h, the file defining this class. As a result, fewer dependencies on modules/remote_bitrate_estimator. Bug: None Change-Id: I4450c79dd58e1875d64dd74d1ae2cb7d911a14b3 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195222 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Reviewed-by: Björn Terelius <terelius@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Commit-Queue: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32704}
diff --git a/audio/BUILD.gn b/audio/BUILD.gn index 04ad6fa..6901e33 100644 --- a/audio/BUILD.gn +++ b/audio/BUILD.gn
@@ -80,7 +80,6 @@ "../modules/audio_processing:audio_frame_proxies", "../modules/audio_processing:rms_level", "../modules/pacing", - "../modules/remote_bitrate_estimator", "../modules/rtp_rtcp", "../modules/rtp_rtcp:rtp_rtcp_format", "../modules/utility",
diff --git a/audio/DEPS b/audio/DEPS index 16f8194..9b89dc3 100644 --- a/audio/DEPS +++ b/audio/DEPS
@@ -11,7 +11,6 @@ "+modules/bitrate_controller", "+modules/congestion_controller", "+modules/pacing", - "+modules/remote_bitrate_estimator", "+modules/rtp_rtcp", "+modules/utility", "+system_wrappers",
diff --git a/logging/BUILD.gn b/logging/BUILD.gn index 7111f0a..b30d531 100644 --- a/logging/BUILD.gn +++ b/logging/BUILD.gn
@@ -97,10 +97,10 @@ ] deps = [ + "../api:network_state_predictor_api", "../api:scoped_refptr", "../api/rtc_event_log", "../api/units:data_rate", - "../modules/remote_bitrate_estimator", ] absl_deps = [ "//third_party/abseil-cpp/absl/memory", @@ -229,8 +229,8 @@ ":rtc_event_video", ":rtc_stream_config", "../api:array_view", + "../api:network_state_predictor_api", "../modules/audio_coding:audio_network_adaptor", - "../modules/remote_bitrate_estimator", "../modules/rtp_rtcp:rtp_rtcp_format", ] sources += [ @@ -323,6 +323,7 @@ ":rtc_event_log_proto", ":rtc_stream_config", "../api:function_view", + "../api:network_state_predictor_api", "../api:rtp_headers", "../api:rtp_parameters", "../api/rtc_event_log", @@ -334,7 +335,6 @@ "../modules:module_api", "../modules:module_api_public", "../modules/audio_coding:audio_network_adaptor", - "../modules/remote_bitrate_estimator", "../modules/rtp_rtcp", "../modules/rtp_rtcp:rtp_rtcp_format", "../rtc_base:checks", @@ -379,6 +379,7 @@ ":rtc_event_video", ":rtc_stream_config", "../api:array_view", + "../api:network_state_predictor_api", "../api:rtc_event_log_output_file", "../api:rtp_headers", "../api:rtp_parameters", @@ -388,7 +389,6 @@ "../call", "../call:call_interfaces", "../modules/audio_coding:audio_network_adaptor", - "../modules/remote_bitrate_estimator", "../modules/rtp_rtcp:rtp_rtcp_format", "../rtc_base:checks", "../rtc_base:rtc_base_approved",
diff --git a/logging/rtc_event_log/DEPS b/logging/rtc_event_log/DEPS index 325114c..fe8a911 100644 --- a/logging/rtc_event_log/DEPS +++ b/logging/rtc_event_log/DEPS
@@ -2,7 +2,6 @@ "+call", "+modules/audio_coding/audio_network_adaptor", "+modules/congestion_controller", - "+modules/remote_bitrate_estimator/include", "+modules/rtp_rtcp", "+system_wrappers", ]
diff --git a/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc b/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc index 143df88..dfbad76 100644 --- a/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc +++ b/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc
@@ -15,6 +15,7 @@ #include <vector> #include "absl/types/optional.h" +#include "api/network_state_predictor.h" #include "api/rtp_headers.h" #include "api/rtp_parameters.h" #include "api/transport/network_types.h" @@ -38,7 +39,6 @@ #include "logging/rtc_event_log/events/rtc_event_video_send_stream_config.h" #include "logging/rtc_event_log/rtc_stream_config.h" #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" #include "modules/rtp_rtcp/source/rtcp_packet/app.h" #include "modules/rtp_rtcp/source/rtcp_packet/bye.h"
diff --git a/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc b/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc index 574080b..87782d5 100644 --- a/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc +++ b/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc
@@ -12,6 +12,7 @@ #include "absl/types/optional.h" #include "api/array_view.h" +#include "api/network_state_predictor.h" #include "logging/rtc_event_log/encoder/blob_encoding.h" #include "logging/rtc_event_log/encoder/delta_encoding.h" #include "logging/rtc_event_log/encoder/rtc_event_log_encoder_common.h" @@ -43,7 +44,6 @@ #include "logging/rtc_event_log/events/rtc_event_video_send_stream_config.h" #include "logging/rtc_event_log/rtc_stream_config.h" #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/rtp_rtcp/include/rtp_cvo.h" #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" #include "modules/rtp_rtcp/source/rtcp_packet/app.h"
diff --git a/logging/rtc_event_log/encoder/rtc_event_log_encoder_unittest.cc b/logging/rtc_event_log/encoder/rtc_event_log_encoder_unittest.cc index 76740a4..6fae2d9 100644 --- a/logging/rtc_event_log/encoder/rtc_event_log_encoder_unittest.cc +++ b/logging/rtc_event_log/encoder/rtc_event_log_encoder_unittest.cc
@@ -35,7 +35,6 @@ #include "logging/rtc_event_log/rtc_event_log_parser.h" #include "logging/rtc_event_log/rtc_event_log_unittest_helper.h" #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/rtp_rtcp/source/rtcp_packet/bye.h" #include "modules/rtp_rtcp/source/rtp_header_extensions.h" #include "rtc_base/fake_clock.h"
diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc index dcc8742..94d9ece 100644 --- a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc +++ b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc
@@ -11,7 +11,7 @@ #include "logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h" #include "absl/memory/memory.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" +#include "api/network_state_predictor.h" namespace webrtc {
diff --git a/logging/rtc_event_log/logged_events.h b/logging/rtc_event_log/logged_events.h index 192f7cf..7821215 100644 --- a/logging/rtc_event_log/logged_events.h +++ b/logging/rtc_event_log/logged_events.h
@@ -14,6 +14,7 @@ #include <vector> #include "absl/types/optional.h" +#include "api/network_state_predictor.h" #include "api/rtp_headers.h" #include "api/units/data_rate.h" #include "api/units/time_delta.h" @@ -25,7 +26,6 @@ #include "logging/rtc_event_log/events/rtc_event_probe_result_failure.h" #include "logging/rtc_event_log/rtc_stream_config.h" #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/rtp_rtcp/source/rtcp_packet/extended_reports.h" #include "modules/rtp_rtcp/source/rtcp_packet/fir.h" #include "modules/rtp_rtcp/source/rtcp_packet/loss_notification.h"
diff --git a/logging/rtc_event_log/rtc_event_log_parser.cc b/logging/rtc_event_log/rtc_event_log_parser.cc index dcecc50..aeedf8c 100644 --- a/logging/rtc_event_log/rtc_event_log_parser.cc +++ b/logging/rtc_event_log/rtc_event_log_parser.cc
@@ -22,6 +22,7 @@ #include "absl/memory/memory.h" #include "absl/types/optional.h" +#include "api/network_state_predictor.h" #include "api/rtc_event_log/rtc_event_log.h" #include "api/rtp_headers.h" #include "api/rtp_parameters.h" @@ -32,7 +33,6 @@ #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h" #include "modules/include/module_common_types.h" #include "modules/include/module_common_types_public.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/rtp_rtcp/include/rtp_cvo.h" #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" #include "modules/rtp_rtcp/source/byte_io.h"
diff --git a/logging/rtc_event_log/rtc_event_log_unittest_helper.cc b/logging/rtc_event_log/rtc_event_log_unittest_helper.cc index 1c13cc6..2896c13 100644 --- a/logging/rtc_event_log/rtc_event_log_unittest_helper.cc +++ b/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
@@ -23,10 +23,10 @@ #include "absl/types/optional.h" #include "api/array_view.h" +#include "api/network_state_predictor.h" #include "api/rtp_headers.h" #include "api/rtp_parameters.h" #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/rtp_rtcp/include/rtp_cvo.h" #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" #include "modules/rtp_rtcp/source/rtcp_packet/dlrr.h"
diff --git a/modules/congestion_controller/goog_cc/delay_based_bwe.cc b/modules/congestion_controller/goog_cc/delay_based_bwe.cc index 1c02301..2390c14 100644 --- a/modules/congestion_controller/goog_cc/delay_based_bwe.cc +++ b/modules/congestion_controller/goog_cc/delay_based_bwe.cc
@@ -22,6 +22,7 @@ #include "api/rtc_event_log/rtc_event_log.h" #include "logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h" #include "modules/congestion_controller/goog_cc/trendline_estimator.h" +#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/remote_bitrate_estimator/test/bwe_test_logging.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h"
diff --git a/modules/congestion_controller/goog_cc/delay_based_bwe.h b/modules/congestion_controller/goog_cc/delay_based_bwe.h index 74650dc..85ad0dd 100644 --- a/modules/congestion_controller/goog_cc/delay_based_bwe.h +++ b/modules/congestion_controller/goog_cc/delay_based_bwe.h
@@ -24,7 +24,6 @@ #include "modules/congestion_controller/goog_cc/delay_increase_detector_interface.h" #include "modules/congestion_controller/goog_cc/probe_bitrate_estimator.h" #include "modules/remote_bitrate_estimator/aimd_rate_control.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/remote_bitrate_estimator/inter_arrival.h" #include "rtc_base/experiments/struct_parameters_parser.h" #include "rtc_base/race_checker.h"
diff --git a/modules/congestion_controller/goog_cc/delay_increase_detector_interface.h b/modules/congestion_controller/goog_cc/delay_increase_detector_interface.h index 8fe3f66..eaadb0d 100644 --- a/modules/congestion_controller/goog_cc/delay_increase_detector_interface.h +++ b/modules/congestion_controller/goog_cc/delay_increase_detector_interface.h
@@ -12,7 +12,7 @@ #include <stdint.h> -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" +#include "api/network_state_predictor.h" #include "rtc_base/constructor_magic.h" namespace webrtc {
diff --git a/modules/congestion_controller/goog_cc/trendline_estimator.cc b/modules/congestion_controller/goog_cc/trendline_estimator.cc index c04db73..1008bad 100644 --- a/modules/congestion_controller/goog_cc/trendline_estimator.cc +++ b/modules/congestion_controller/goog_cc/trendline_estimator.cc
@@ -17,7 +17,7 @@ #include "absl/strings/match.h" #include "absl/types/optional.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" +#include "api/network_state_predictor.h" #include "modules/remote_bitrate_estimator/test/bwe_test_logging.h" #include "rtc_base/checks.h" #include "rtc_base/experiments/struct_parameters_parser.h"
diff --git a/modules/congestion_controller/goog_cc/trendline_estimator.h b/modules/congestion_controller/goog_cc/trendline_estimator.h index 2db2903..75b971d 100644 --- a/modules/congestion_controller/goog_cc/trendline_estimator.h +++ b/modules/congestion_controller/goog_cc/trendline_estimator.h
@@ -20,7 +20,6 @@ #include "api/network_state_predictor.h" #include "api/transport/webrtc_key_value_config.h" #include "modules/congestion_controller/goog_cc/delay_increase_detector_interface.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "rtc_base/constructor_magic.h" #include "rtc_base/experiments/struct_parameters_parser.h"
diff --git a/modules/remote_bitrate_estimator/aimd_rate_control.cc b/modules/remote_bitrate_estimator/aimd_rate_control.cc index da13176..2ca298b 100644 --- a/modules/remote_bitrate_estimator/aimd_rate_control.cc +++ b/modules/remote_bitrate_estimator/aimd_rate_control.cc
@@ -78,7 +78,7 @@ current_bitrate_(max_configured_bitrate_), latest_estimated_throughput_(current_bitrate_), link_capacity_(), - rate_control_state_(kRcHold), + rate_control_state_(RateControlState::kRcHold), time_last_bitrate_change_(Timestamp::MinusInfinity()), time_last_bitrate_decrease_(Timestamp::MinusInfinity()), time_first_throughput_estimate_(Timestamp::MinusInfinity()), @@ -280,10 +280,10 @@ 1.5 * estimated_throughput + DataRate::KilobitsPerSec(10); switch (rate_control_state_) { - case kRcHold: + case RateControlState::kRcHold: break; - case kRcIncrease: + case RateControlState::kRcIncrease: if (estimated_throughput > link_capacity_.UpperBound()) link_capacity_.Reset(); @@ -316,7 +316,7 @@ time_last_bitrate_change_ = at_time; break; - case kRcDecrease: { + case RateControlState::kRcDecrease: { DataRate decreased_bitrate = DataRate::PlusInfinity(); // Set bit rate to something slightly lower than the measured throughput @@ -356,7 +356,7 @@ bitrate_is_initialized_ = true; link_capacity_.OnOveruseDetected(estimated_throughput); // Stay on hold until the pipes are cleared. - rate_control_state_ = kRcHold; + rate_control_state_ = RateControlState::kRcHold; time_last_bitrate_change_ = at_time; time_last_bitrate_decrease_ = at_time; break; @@ -403,18 +403,18 @@ Timestamp at_time) { switch (input.bw_state) { case BandwidthUsage::kBwNormal: - if (rate_control_state_ == kRcHold) { + if (rate_control_state_ == RateControlState::kRcHold) { time_last_bitrate_change_ = at_time; - rate_control_state_ = kRcIncrease; + rate_control_state_ = RateControlState::kRcIncrease; } break; case BandwidthUsage::kBwOverusing: - if (rate_control_state_ != kRcDecrease) { - rate_control_state_ = kRcDecrease; + if (rate_control_state_ != RateControlState::kRcDecrease) { + rate_control_state_ = RateControlState::kRcDecrease; } break; case BandwidthUsage::kBwUnderusing: - rate_control_state_ = kRcHold; + rate_control_state_ = RateControlState::kRcHold; break; default: assert(false);
diff --git a/modules/remote_bitrate_estimator/aimd_rate_control.h b/modules/remote_bitrate_estimator/aimd_rate_control.h index c9e9470..3e0d541 100644 --- a/modules/remote_bitrate_estimator/aimd_rate_control.h +++ b/modules/remote_bitrate_estimator/aimd_rate_control.h
@@ -65,6 +65,8 @@ TimeDelta GetExpectedBandwidthPeriod() const; private: + enum class RateControlState { kRcHold, kRcIncrease, kRcDecrease }; + friend class GoogCcStatePrinter; // Update the target bitrate based on, among other things, the current rate // control state, the current target bitrate and the estimated throughput.
diff --git a/modules/remote_bitrate_estimator/include/bwe_defines.h b/modules/remote_bitrate_estimator/include/bwe_defines.h index 40fbfe0..b3ca184 100644 --- a/modules/remote_bitrate_estimator/include/bwe_defines.h +++ b/modules/remote_bitrate_estimator/include/bwe_defines.h
@@ -17,9 +17,6 @@ #include "api/network_state_predictor.h" #include "api/units/data_rate.h" -#define BWE_MAX(a, b) ((a) > (b) ? (a) : (b)) -#define BWE_MIN(a, b) ((a) < (b) ? (a) : (b)) - namespace webrtc { namespace congestion_controller { @@ -39,8 +36,6 @@ kBweNamesMax = 4 }; -enum RateControlState { kRcHold, kRcIncrease, kRcDecrease }; - struct RateControlInput { RateControlInput(BandwidthUsage bw_state, const absl::optional<DataRate>& estimated_throughput);
diff --git a/modules/remote_bitrate_estimator/overuse_detector.cc b/modules/remote_bitrate_estimator/overuse_detector.cc index 44cbe50..710b3b2 100644 --- a/modules/remote_bitrate_estimator/overuse_detector.cc +++ b/modules/remote_bitrate_estimator/overuse_detector.cc
@@ -16,7 +16,6 @@ #include <algorithm> #include <string> -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/remote_bitrate_estimator/test/bwe_test_logging.h" #include "rtc_base/checks.h" #include "rtc_base/numerics/safe_minmax.h"
diff --git a/modules/remote_bitrate_estimator/overuse_detector.h b/modules/remote_bitrate_estimator/overuse_detector.h index 1df6cab..4e72e8e 100644 --- a/modules/remote_bitrate_estimator/overuse_detector.h +++ b/modules/remote_bitrate_estimator/overuse_detector.h
@@ -12,8 +12,8 @@ #include <stdint.h> +#include "api/network_state_predictor.h" #include "api/transport/webrtc_key_value_config.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "rtc_base/constructor_magic.h" namespace webrtc {
diff --git a/modules/remote_bitrate_estimator/overuse_estimator.cc b/modules/remote_bitrate_estimator/overuse_estimator.cc index e97e06b..74449be 100644 --- a/modules/remote_bitrate_estimator/overuse_estimator.cc +++ b/modules/remote_bitrate_estimator/overuse_estimator.cc
@@ -16,7 +16,7 @@ #include <algorithm> -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" +#include "api/network_state_predictor.h" #include "modules/remote_bitrate_estimator/test/bwe_test_logging.h" #include "rtc_base/logging.h"
diff --git a/modules/remote_bitrate_estimator/overuse_estimator.h b/modules/remote_bitrate_estimator/overuse_estimator.h index d5f675e..a082d9d 100644 --- a/modules/remote_bitrate_estimator/overuse_estimator.h +++ b/modules/remote_bitrate_estimator/overuse_estimator.h
@@ -14,7 +14,7 @@ #include <deque> -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" +#include "api/network_state_predictor.h" #include "rtc_base/constructor_magic.h" namespace webrtc {
diff --git a/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc b/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc index e8f835c..4196f6d 100644 --- a/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc +++ b/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc
@@ -15,6 +15,7 @@ #include <algorithm> #include "api/transport/field_trial_based_config.h" +#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h" #include "rtc_base/checks.h" #include "rtc_base/constructor_magic.h"
diff --git a/modules/rtp_rtcp/source/rtcp_sender.h b/modules/rtp_rtcp/source/rtcp_sender.h index 22b2bb7..b7238c3 100644 --- a/modules/rtp_rtcp/source/rtcp_sender.h +++ b/modules/rtp_rtcp/source/rtcp_sender.h
@@ -20,7 +20,6 @@ #include "absl/types/optional.h" #include "api/call/transport.h" #include "api/video/video_bitrate_allocation.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h" #include "modules/rtp_rtcp/include/receive_statistics.h" #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn index 8a10d14..9ba498c 100644 --- a/rtc_tools/BUILD.gn +++ b/rtc_tools/BUILD.gn
@@ -340,6 +340,7 @@ deps = [ ":chart_proto", "../api:function_view", + "../api:network_state_predictor_api", "../rtc_base:deprecation", "../rtc_base:ignore_wundef",
diff --git a/rtc_tools/rtc_event_log_visualizer/analyzer.cc b/rtc_tools/rtc_event_log_visualizer/analyzer.cc index 6d84b1b..a7153c6 100644 --- a/rtc_tools/rtc_event_log_visualizer/analyzer.cc +++ b/rtc_tools/rtc_event_log_visualizer/analyzer.cc
@@ -21,6 +21,7 @@ #include "absl/algorithm/container.h" #include "absl/strings/string_view.h" #include "api/function_view.h" +#include "api/network_state_predictor.h" #include "api/transport/field_trial_based_config.h" #include "api/transport/goog_cc_factory.h" #include "call/audio_receive_stream.h" @@ -38,7 +39,6 @@ #include "modules/congestion_controller/rtp/transport_feedback_adapter.h" #include "modules/pacing/paced_sender.h" #include "modules/pacing/packet_router.h" -#include "modules/remote_bitrate_estimator/include/bwe_defines.h" #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" #include "modules/rtp_rtcp/source/rtcp_packet.h" #include "modules/rtp_rtcp/source/rtcp_packet/common_header.h"