xref: /aosp_15_r20/external/webrtc/modules/video_coding/svc/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
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_source_set("scalability_mode_util") {
12  sources = [
13    "scalability_mode_util.cc",
14    "scalability_mode_util.h",
15  ]
16  deps = [
17    "../../../api/video_codecs:scalability_mode",
18    "../../../api/video_codecs:video_codecs_api",
19    "../../../rtc_base:checks",
20  ]
21  absl_deps = [
22    "//third_party/abseil-cpp/absl/strings",
23    "//third_party/abseil-cpp/absl/types:optional",
24  ]
25}
26
27rtc_source_set("scalable_video_controller") {
28  sources = [
29    "scalable_video_controller.h",
30    "scalable_video_controller_no_layering.cc",
31    "scalable_video_controller_no_layering.h",
32  ]
33  deps = [
34    "../../../api/transport/rtp:dependency_descriptor",
35    "../../../api/video:video_bitrate_allocation",
36    "../../../common_video/generic_frame_descriptor",
37    "../../../rtc_base:checks",
38  ]
39  absl_deps = [
40    "//third_party/abseil-cpp/absl/container:inlined_vector",
41    "//third_party/abseil-cpp/absl/types:optional",
42  ]
43}
44
45rtc_source_set("scalability_structures") {
46  sources = [
47    "create_scalability_structure.cc",
48    "create_scalability_structure.h",
49    "scalability_structure_full_svc.cc",
50    "scalability_structure_full_svc.h",
51    "scalability_structure_key_svc.cc",
52    "scalability_structure_key_svc.h",
53    "scalability_structure_l2t2_key_shift.cc",
54    "scalability_structure_l2t2_key_shift.h",
55    "scalability_structure_simulcast.cc",
56    "scalability_structure_simulcast.h",
57  ]
58  deps = [
59    ":scalable_video_controller",
60    "../../../api/transport/rtp:dependency_descriptor",
61    "../../../api/video:video_bitrate_allocation",
62    "../../../api/video_codecs:scalability_mode",
63    "../../../common_video/generic_frame_descriptor",
64    "../../../rtc_base:checks",
65    "../../../rtc_base:logging",
66  ]
67  absl_deps = [
68    "//third_party/abseil-cpp/absl/base:core_headers",
69    "//third_party/abseil-cpp/absl/strings",
70    "//third_party/abseil-cpp/absl/types:optional",
71  ]
72}
73
74rtc_source_set("svc_rate_allocator") {
75  sources = [
76    "svc_rate_allocator.cc",
77    "svc_rate_allocator.h",
78  ]
79  deps = [
80    ":scalability_structures",
81    "../../../api/video:video_bitrate_allocation",
82    "../../../api/video:video_bitrate_allocator",
83    "../../../api/video:video_codec_constants",
84    "../../../api/video_codecs:video_codecs_api",
85    "../../../rtc_base:checks",
86    "../../../rtc_base/experiments:stable_target_rate_experiment",
87  ]
88  absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector" ]
89}
90
91if (rtc_include_tests) {
92  rtc_source_set("scalability_structure_tests") {
93    testonly = true
94    sources = [
95      "scalability_mode_util_unittest.cc",
96      "scalability_structure_full_svc_unittest.cc",
97      "scalability_structure_key_svc_unittest.cc",
98      "scalability_structure_l2t2_key_shift_unittest.cc",
99      "scalability_structure_test_helpers.cc",
100      "scalability_structure_test_helpers.h",
101      "scalability_structure_unittest.cc",
102    ]
103    deps = [
104      ":scalability_mode_util",
105      ":scalability_structures",
106      ":scalable_video_controller",
107      "..:chain_diff_calculator",
108      "..:frame_dependencies_calculator",
109      "../../../api:array_view",
110      "../../../api/transport/rtp:dependency_descriptor",
111      "../../../api/video:video_bitrate_allocation",
112      "../../../api/video:video_frame_type",
113      "../../../api/video_codecs:scalability_mode",
114      "../../../common_video/generic_frame_descriptor",
115      "../../../rtc_base:stringutils",
116      "../../../test:test_support",
117    ]
118    absl_deps = [
119      "//third_party/abseil-cpp/absl/strings",
120      "//third_party/abseil-cpp/absl/types:optional",
121    ]
122  }
123
124  rtc_source_set("svc_rate_allocator_tests") {
125    testonly = true
126    sources = [ "svc_rate_allocator_unittest.cc" ]
127    deps = [
128      ":svc_rate_allocator",
129      "..:webrtc_vp9_helpers",
130      "../../../rtc_base:checks",
131      "../../../test:field_trial",
132      "../../../test:test_support",
133    ]
134  }
135}
136