# Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. # # Use of this source code is governed by a BSD-style license # that can be found in the LICENSE file in the root of the source # tree. An additional intellectual property rights grant can be found # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. import("../../../webrtc.gni") config("bwe_test_logging") { if (rtc_enable_bwe_test_logging) { defines = [ "BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=1" ] } else { defines = [ "BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=0" ] } } rtc_library("goog_cc") { configs += [ ":bwe_test_logging" ] sources = [ "goog_cc_network_control.cc", "goog_cc_network_control.h", ] deps = [ ":alr_detector", ":delay_based_bwe", ":estimators", ":loss_based_controller", ":probe_controller", ":pushback_controller", "../..:module_api", "../../..:webrtc_common", "../../../api:network_state_predictor_api", "../../../api/rtc_event_log", "../../../api/transport:field_trial_based_config", "../../../api/transport:network_control", "../../../api/transport:webrtc_key_value_config", "../../../api/units:data_rate", "../../../api/units:data_size", "../../../api/units:time_delta", "../../../api/units:timestamp", "../../../logging:rtc_event_bwe", "../../../logging:rtc_event_pacing", "../../../rtc_base:checks", "../../../rtc_base:logging", "../../../rtc_base:macromagic", "../../../rtc_base/experiments:alr_experiment", "../../../rtc_base/experiments:field_trial_parser", "../../../rtc_base/experiments:rate_control_settings", "../../../system_wrappers", "../../remote_bitrate_estimator", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_library("link_capacity_estimator") { sources = [ "link_capacity_estimator.cc", "link_capacity_estimator.h", ] deps = [ "../../../api/units:data_rate", "../../../rtc_base:safe_minmax", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_library("pushback_controller") { sources = [ "congestion_window_pushback_controller.cc", "congestion_window_pushback_controller.h", ] deps = [ "../../../api/transport:network_control", "../../../api/transport:webrtc_key_value_config", "../../../api/units:data_size", "../../../rtc_base:checks", "../../../rtc_base/experiments:rate_control_settings", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_library("alr_detector") { sources = [ "alr_detector.cc", "alr_detector.h", ] deps = [ "../../../api/rtc_event_log", "../../../api/transport:field_trial_based_config", "../../../api/transport:webrtc_key_value_config", "../../../logging:rtc_event_pacing", "../../../rtc_base:checks", "../../../rtc_base:safe_conversions", "../../../rtc_base:timeutils", "../../../rtc_base/experiments:alr_experiment", "../../../rtc_base/experiments:field_trial_parser", "../../pacing:interval_budget", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_library("estimators") { configs += [ ":bwe_test_logging" ] sources = [ "acknowledged_bitrate_estimator.cc", "acknowledged_bitrate_estimator.h", "acknowledged_bitrate_estimator_interface.cc", "acknowledged_bitrate_estimator_interface.h", "bitrate_estimator.cc", "bitrate_estimator.h", "delay_increase_detector_interface.h", "probe_bitrate_estimator.cc", "probe_bitrate_estimator.h", "robust_throughput_estimator.cc", "robust_throughput_estimator.h", "trendline_estimator.cc", "trendline_estimator.h", ] deps = [ "../../../api:network_state_predictor_api", "../../../api/rtc_event_log", "../../../api/transport:network_control", "../../../api/transport:webrtc_key_value_config", "../../../api/units:data_rate", "../../../api/units:timestamp", "../../../logging:rtc_event_bwe", "../../../rtc_base:checks", "../../../rtc_base:logging", "../../../rtc_base:macromagic", "../../../rtc_base:rtc_numerics", "../../../rtc_base:safe_conversions", "../../../rtc_base:safe_minmax", "../../../rtc_base/experiments:field_trial_parser", "../../remote_bitrate_estimator", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_library("loss_based_controller") { configs += [ ":bwe_test_logging" ] sources = [ "loss_based_bandwidth_estimation.cc", "loss_based_bandwidth_estimation.h", "send_side_bandwidth_estimation.cc", "send_side_bandwidth_estimation.h", ] deps = [ "../../../api/rtc_event_log", "../../../api/transport:network_control", "../../../api/units:data_rate", "../../../api/units:time_delta", "../../../api/units:timestamp", "../../../logging:rtc_event_bwe", "../../../rtc_base:checks", "../../../rtc_base:logging", "../../../rtc_base/experiments:field_trial_parser", "../../../system_wrappers:field_trial", "../../../system_wrappers:metrics", "../../remote_bitrate_estimator", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_library("delay_based_bwe") { configs += [ ":bwe_test_logging" ] sources = [ "delay_based_bwe.cc", "delay_based_bwe.h", ] deps = [ ":estimators", "../../../api:network_state_predictor_api", "../../../api/rtc_event_log", "../../../api/transport:network_control", "../../../api/transport:network_control", "../../../api/transport:webrtc_key_value_config", "../../../logging:rtc_event_bwe", "../../../rtc_base:checks", "../../../rtc_base:rtc_base_approved", "../../../rtc_base/experiments:field_trial_parser", "../../../system_wrappers:metrics", "../../pacing", "../../remote_bitrate_estimator", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_library("probe_controller") { sources = [ "probe_controller.cc", "probe_controller.h", ] deps = [ "../../../api/rtc_event_log", "../../../api/transport:network_control", "../../../api/transport:webrtc_key_value_config", "../../../api/units:data_rate", "../../../api/units:time_delta", "../../../api/units:timestamp", "../../../logging:rtc_event_bwe", "../../../logging:rtc_event_pacing", "../../../rtc_base:checks", "../../../rtc_base:logging", "../../../rtc_base:macromagic", "../../../rtc_base:safe_conversions", "../../../rtc_base/experiments:field_trial_parser", "../../../rtc_base/system:unused", "../../../system_wrappers:metrics", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } if (rtc_include_tests) { rtc_library("test_goog_cc_printer") { testonly = true sources = [ "test/goog_cc_printer.cc", "test/goog_cc_printer.h", ] deps = [ ":alr_detector", ":delay_based_bwe", ":estimators", ":goog_cc", "../../../api/rtc_event_log", "../../../api/transport:goog_cc", "../../../api/transport:network_control", "../../../api/units:timestamp", "../../../rtc_base:checks", "../../../test/logging:log_writer", "../../remote_bitrate_estimator", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_library("goog_cc_unittests") { testonly = true sources = [ "acknowledged_bitrate_estimator_unittest.cc", "alr_detector_unittest.cc", "congestion_window_pushback_controller_unittest.cc", "delay_based_bwe_unittest.cc", "delay_based_bwe_unittest_helper.cc", "delay_based_bwe_unittest_helper.h", "goog_cc_network_control_unittest.cc", "probe_bitrate_estimator_unittest.cc", "probe_controller_unittest.cc", "robust_throughput_estimator_unittest.cc", "send_side_bandwidth_estimation_unittest.cc", "trendline_estimator_unittest.cc", ] deps = [ ":alr_detector", ":delay_based_bwe", ":estimators", ":goog_cc", ":loss_based_controller", ":probe_controller", ":pushback_controller", "../../../api/rtc_event_log", "../../../api/transport:field_trial_based_config", "../../../api/transport:goog_cc", "../../../api/transport:network_control", "../../../api/transport:webrtc_key_value_config", "../../../api/units:data_rate", "../../../api/units:timestamp", "../../../logging:mocks", "../../../logging:rtc_event_bwe", "../../../rtc_base:checks", "../../../rtc_base:rtc_base_approved", "../../../rtc_base:rtc_base_tests_utils", "../../../rtc_base/experiments:alr_experiment", "../../../system_wrappers", "../../../test:field_trial", "../../../test:test_support", "../../../test/scenario", "../../pacing", "//testing/gmock", ] } }