This CL fixes a bug in the feedback based GoogCC where packets lost was swapped with expected packets received. Since this version of GoogCC isn't yet used this wasn't discovered. There was also a lack of unit test coverage. To ensure reasonable behavior, unit tests was added. Unit tests was also converted from relevant unit tests on send side congestion controller for the regular GoogCC controller. Bug: webrtc:9586 Change-Id: I83c40ff4766104820cb72ec1e8b95c5782def19a Reviewed-on: https://webrtc-review.googlesource.com/59401 Commit-Queue: Sebastian Jansson <srte@webrtc.org> Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24498}
197 lines
5.6 KiB
Plaintext
197 lines
5.6 KiB
Plaintext
# 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_static_library("goog_cc") {
|
|
configs += [ ":bwe_test_logging" ]
|
|
sources = [
|
|
"goog_cc_factory.cc",
|
|
"goog_cc_network_control.cc",
|
|
"goog_cc_network_control.h",
|
|
"include/goog_cc_factory.h",
|
|
]
|
|
|
|
deps = [
|
|
":alr_detector",
|
|
":delay_based_bwe",
|
|
":estimators",
|
|
":probe_controller",
|
|
"../..:module_api",
|
|
"../../..:webrtc_common",
|
|
"../../../api/transport:network_control",
|
|
"../../../logging:rtc_event_log_api",
|
|
"../../../logging:rtc_event_pacing",
|
|
"../../../rtc_base:checks",
|
|
"../../../rtc_base:rtc_base_approved",
|
|
"../../../rtc_base/experiments:alr_experiment",
|
|
"../../../system_wrappers",
|
|
"../../../system_wrappers:field_trial_api",
|
|
"../../../system_wrappers:metrics_api",
|
|
"../../bitrate_controller",
|
|
"../../remote_bitrate_estimator",
|
|
"../../rtp_rtcp:rtp_rtcp_format",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("alr_detector") {
|
|
sources = [
|
|
"alr_detector.cc",
|
|
"alr_detector.h",
|
|
]
|
|
deps = [
|
|
"../../..:webrtc_common",
|
|
"../../../logging:rtc_event_log_api",
|
|
"../../../logging:rtc_event_pacing",
|
|
"../../../rtc_base:checks",
|
|
"../../../rtc_base:rtc_base_approved",
|
|
"../../../rtc_base/experiments:alr_experiment",
|
|
"../../../system_wrappers:field_trial_api",
|
|
"../../pacing:interval_budget",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
rtc_source_set("estimators") {
|
|
configs += [ ":bwe_test_logging" ]
|
|
sources = [
|
|
"acknowledged_bitrate_estimator.cc",
|
|
"acknowledged_bitrate_estimator.h",
|
|
"bitrate_estimator.cc",
|
|
"bitrate_estimator.h",
|
|
"delay_increase_detector_interface.h",
|
|
"median_slope_estimator.cc",
|
|
"median_slope_estimator.h",
|
|
"probe_bitrate_estimator.cc",
|
|
"probe_bitrate_estimator.h",
|
|
"trendline_estimator.cc",
|
|
"trendline_estimator.h",
|
|
]
|
|
|
|
# TODO(jschuh): Bug 1348: fix this warning.
|
|
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
|
|
|
|
deps = [
|
|
"../../../logging:rtc_event_bwe",
|
|
"../../../logging:rtc_event_log_api",
|
|
"../../../rtc_base:checks",
|
|
"../../../rtc_base:rtc_base_approved",
|
|
"../../../rtc_base:rtc_numerics",
|
|
"../../../rtc_base:safe_minmax",
|
|
"../../../system_wrappers:field_trial_api",
|
|
"../../../system_wrappers:metrics_api",
|
|
"../../remote_bitrate_estimator",
|
|
"../../rtp_rtcp:rtp_rtcp_format",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("delay_based_bwe") {
|
|
configs += [ ":bwe_test_logging" ]
|
|
sources = [
|
|
"delay_based_bwe.cc",
|
|
"delay_based_bwe.h",
|
|
]
|
|
|
|
deps = [
|
|
":estimators",
|
|
"../../../logging:rtc_event_bwe",
|
|
"../../../logging:rtc_event_log_api",
|
|
"../../../rtc_base:checks",
|
|
"../../../rtc_base:rtc_base_approved",
|
|
"../../../system_wrappers:field_trial_api",
|
|
"../../../system_wrappers:metrics_api",
|
|
"../../pacing",
|
|
"../../remote_bitrate_estimator",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("probe_controller") {
|
|
sources = [
|
|
"probe_controller.cc",
|
|
"probe_controller.h",
|
|
]
|
|
|
|
deps = [
|
|
"../../../api/transport:network_control",
|
|
"../../../logging:rtc_event_log_api",
|
|
"../../../logging:rtc_event_pacing",
|
|
"../../../rtc_base:checks",
|
|
"../../../rtc_base:rtc_base_approved",
|
|
"../../../rtc_base/system:unused",
|
|
"../../../system_wrappers:field_trial_api",
|
|
"../../../system_wrappers:metrics_api",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
if (rtc_include_tests) {
|
|
rtc_source_set("test_goog_cc_printer") {
|
|
testonly = true
|
|
sources = [
|
|
"test/goog_cc_printer.cc",
|
|
"test/goog_cc_printer.h",
|
|
]
|
|
deps = [
|
|
":goog_cc",
|
|
"..:test_controller_printer",
|
|
]
|
|
}
|
|
rtc_source_set("goog_cc_unittests") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"acknowledged_bitrate_estimator_unittest.cc",
|
|
"alr_detector_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",
|
|
"median_slope_estimator_unittest.cc",
|
|
"probe_bitrate_estimator_unittest.cc",
|
|
"probe_controller_unittest.cc",
|
|
"trendline_estimator_unittest.cc",
|
|
]
|
|
deps = [
|
|
":alr_detector",
|
|
":delay_based_bwe",
|
|
":estimators",
|
|
":goog_cc",
|
|
":probe_controller",
|
|
"../../../api/transport:network_control",
|
|
"../../../api/transport:network_control_test",
|
|
"../../../logging:mocks",
|
|
"../../../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",
|
|
"../../pacing",
|
|
"../../remote_bitrate_estimator",
|
|
"../../rtp_rtcp:rtp_rtcp_format",
|
|
"//system_wrappers:field_trial_api",
|
|
"//testing/gmock",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
]
|
|
}
|
|
}
|