1# Copyright (c) 2020 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS.  All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
9import("../../webrtc.gni")
10
11rtc_library("video_adaptation") {
12  sources = [
13    "encode_usage_resource.cc",
14    "encode_usage_resource.h",
15    "overuse_frame_detector.cc",
16    "overuse_frame_detector.h",
17    "quality_rampup_experiment_helper.cc",
18    "quality_rampup_experiment_helper.h",
19    "quality_scaler_resource.cc",
20    "quality_scaler_resource.h",
21    "video_stream_encoder_resource.cc",
22    "video_stream_encoder_resource.h",
23    "video_stream_encoder_resource_manager.cc",
24    "video_stream_encoder_resource_manager.h",
25  ]
26
27  deps = [
28    "../../api:rtp_parameters",
29    "../../api:scoped_refptr",
30    "../../api/adaptation:resource_adaptation_api",
31    "../../api/task_queue:task_queue",
32    "../../api/units:data_rate",
33    "../../api/video:video_adaptation",
34    "../../api/video:video_frame",
35    "../../api/video:video_stream_encoder",
36    "../../api/video_codecs:video_codecs_api",
37    "../../call/adaptation:resource_adaptation",
38    "../../modules/video_coding:video_coding_utility",
39    "../../rtc_base:checks",
40    "../../rtc_base:logging",
41    "../../rtc_base:macromagic",
42    "../../rtc_base:rtc_base_approved",
43    "../../rtc_base:rtc_event",
44    "../../rtc_base:rtc_numerics",
45    "../../rtc_base:rtc_task_queue",
46    "../../rtc_base:timeutils",
47    "../../rtc_base/experiments:balanced_degradation_settings",
48    "../../rtc_base/experiments:field_trial_parser",
49    "../../rtc_base/experiments:quality_rampup_experiment",
50    "../../rtc_base/experiments:quality_scaler_settings",
51    "../../rtc_base/synchronization:mutex",
52    "../../rtc_base/synchronization:sequence_checker",
53    "../../rtc_base/task_utils:repeating_task",
54    "../../rtc_base/task_utils:to_queued_task",
55    "../../system_wrappers:field_trial",
56    "../../system_wrappers:system_wrappers",
57  ]
58  absl_deps = [
59    "//third_party/abseil-cpp/absl/algorithm:container",
60    "//third_party/abseil-cpp/absl/base:core_headers",
61    "//third_party/abseil-cpp/absl/types:optional",
62  ]
63}
64
65if (rtc_include_tests) {
66  rtc_library("video_adaptation_tests") {
67    testonly = true
68
69    defines = []
70    sources = [
71      "overuse_frame_detector_unittest.cc",
72      "quality_scaler_resource_unittest.cc",
73    ]
74    deps = [
75      ":video_adaptation",
76      "../../api:scoped_refptr",
77      "../../api/task_queue:default_task_queue_factory",
78      "../../api/task_queue:task_queue",
79      "../../api/video:encoded_image",
80      "../../api/video:video_adaptation",
81      "../../api/video:video_frame_i420",
82      "../../api/video_codecs:video_codecs_api",
83      "../../call/adaptation:resource_adaptation",
84      "../../modules/video_coding:video_coding_utility",
85      "../../rtc_base:checks",
86      "../../rtc_base:logging",
87      "../../rtc_base:rtc_base_approved",
88      "../../rtc_base:rtc_base_tests_utils",
89      "../../rtc_base:rtc_event",
90      "../../rtc_base:rtc_numerics",
91      "../../rtc_base:rtc_task_queue",
92      "../../rtc_base:task_queue_for_test",
93      "../../test:field_trial",
94      "//test:rtc_expect_death",
95      "//test:test_support",
96      "//testing/gtest",
97    ]
98    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
99  }
100}
101