| # 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") | 
 |  | 
 | rtc_library("pcc") { | 
 |   sources = [ | 
 |     "pcc_factory.cc", | 
 |     "pcc_factory.h", | 
 |   ] | 
 |   deps = [ | 
 |     ":pcc_controller", | 
 |     "../../../api/transport:network_control", | 
 |     "../../../api/units:time_delta", | 
 |   ] | 
 | } | 
 |  | 
 | rtc_library("pcc_controller") { | 
 |   sources = [ | 
 |     "pcc_network_controller.cc", | 
 |     "pcc_network_controller.h", | 
 |   ] | 
 |   deps = [ | 
 |     ":bitrate_controller", | 
 |     ":monitor_interval", | 
 |     ":rtt_tracker", | 
 |     "../../../api/transport:network_control", | 
 |     "../../../api/units:data_rate", | 
 |     "../../../api/units:data_size", | 
 |     "../../../api/units:time_delta", | 
 |     "../../../api/units:timestamp", | 
 |     "../../../rtc_base:checks", | 
 |     "../../../rtc_base:random", | 
 |   ] | 
 |   absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
 | } | 
 |  | 
 | rtc_library("monitor_interval") { | 
 |   sources = [ | 
 |     "monitor_interval.cc", | 
 |     "monitor_interval.h", | 
 |   ] | 
 |   deps = [ | 
 |     "../../../api/transport:network_control", | 
 |     "../../../api/units:data_rate", | 
 |     "../../../api/units:data_size", | 
 |     "../../../api/units:time_delta", | 
 |     "../../../api/units:timestamp", | 
 |     "../../../rtc_base:logging", | 
 |   ] | 
 | } | 
 |  | 
 | rtc_library("rtt_tracker") { | 
 |   sources = [ | 
 |     "rtt_tracker.cc", | 
 |     "rtt_tracker.h", | 
 |   ] | 
 |   deps = [ | 
 |     "../../../api/transport:network_control", | 
 |     "../../../api/units:time_delta", | 
 |     "../../../api/units:timestamp", | 
 |   ] | 
 | } | 
 |  | 
 | rtc_library("utility_function") { | 
 |   sources = [ | 
 |     "utility_function.cc", | 
 |     "utility_function.h", | 
 |   ] | 
 |   deps = [ | 
 |     ":monitor_interval", | 
 |     "../../../api/transport:network_control", | 
 |     "../../../api/units:data_rate", | 
 |     "../../../rtc_base:checks", | 
 |   ] | 
 | } | 
 |  | 
 | rtc_library("bitrate_controller") { | 
 |   sources = [ | 
 |     "bitrate_controller.cc", | 
 |     "bitrate_controller.h", | 
 |   ] | 
 |   deps = [ | 
 |     ":monitor_interval", | 
 |     ":utility_function", | 
 |     "../../../api/transport:network_control", | 
 |     "../../../api/units:data_rate", | 
 |   ] | 
 |   absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] | 
 | } | 
 |  | 
 | if (rtc_include_tests && !build_with_chromium) { | 
 |   rtc_library("pcc_unittests") { | 
 |     testonly = true | 
 |     sources = [ | 
 |       "bitrate_controller_unittest.cc", | 
 |       "monitor_interval_unittest.cc", | 
 |       "pcc_network_controller_unittest.cc", | 
 |       "rtt_tracker_unittest.cc", | 
 |       "utility_function_unittest.cc", | 
 |     ] | 
 |     deps = [ | 
 |       ":bitrate_controller", | 
 |       ":monitor_interval", | 
 |       ":pcc", | 
 |       ":pcc_controller", | 
 |       ":rtt_tracker", | 
 |       ":utility_function", | 
 |       "../../../api/transport:network_control", | 
 |       "../../../api/units:data_rate", | 
 |       "../../../api/units:data_size", | 
 |       "../../../api/units:time_delta", | 
 |       "../../../api/units:timestamp", | 
 |       "../../../test:test_support", | 
 |       "../../../test/scenario", | 
 |     ] | 
 |   } | 
 | } |