blob: b8ce91d99a25e5a1747629bafc674d1a2e9a458f [file] [log] [blame]
Danil Chapovalovda7fe392020-10-15 15:57:17 +02001# 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
Niels Möller79d566b2022-04-29 11:03:13 +020011rtc_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",
Asa Perssoncde992d2022-05-16 22:37:34 +020018 "../../../api/video_codecs:video_codecs_api",
Niels Möller79d566b2022-04-29 11:03:13 +020019 "../../../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
Danil Chapovalovda7fe392020-10-15 15:57:17 +020027rtc_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",
Danil Chapovalov4b18e242020-10-16 16:14:58 +020051 "scalability_structure_key_svc.cc",
52 "scalability_structure_key_svc.h",
Danil Chapovalovda7fe392020-10-15 15:57:17 +020053 "scalability_structure_l2t2_key_shift.cc",
54 "scalability_structure_l2t2_key_shift.h",
Danil Chapovalov735e33f2021-02-18 14:39:52 +010055 "scalability_structure_simulcast.cc",
56 "scalability_structure_simulcast.h",
Danil Chapovalovda7fe392020-10-15 15:57:17 +020057 ]
58 deps = [
59 ":scalable_video_controller",
60 "../../../api/transport/rtp:dependency_descriptor",
Danil Chapovalov4b18e242020-10-16 16:14:58 +020061 "../../../api/video:video_bitrate_allocation",
Niels Möller79d566b2022-04-29 11:03:13 +020062 "../../../api/video_codecs:scalability_mode",
Danil Chapovalovda7fe392020-10-15 15:57:17 +020063 "../../../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
Danil Chapovalov649648e2020-11-05 18:06:00 +010074rtc_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
Danil Chapovalovda7fe392020-10-15 15:57:17 +020091if (rtc_include_tests) {
Danil Chapovalov649648e2020-11-05 18:06:00 +010092 rtc_source_set("scalability_structure_tests") {
Danil Chapovalovda7fe392020-10-15 15:57:17 +020093 testonly = true
94 sources = [
Niels Möller79d566b2022-04-29 11:03:13 +020095 "scalability_mode_util_unittest.cc",
Danil Chapovalovf91f8b52021-02-12 17:24:51 +010096 "scalability_structure_full_svc_unittest.cc",
Danil Chapovalov4b18e242020-10-16 16:14:58 +020097 "scalability_structure_key_svc_unittest.cc",
Danil Chapovalov71002a22020-10-23 19:04:11 +020098 "scalability_structure_l2t2_key_shift_unittest.cc",
Danil Chapovalovda7fe392020-10-15 15:57:17 +020099 "scalability_structure_test_helpers.cc",
100 "scalability_structure_test_helpers.h",
101 "scalability_structure_unittest.cc",
102 ]
103 deps = [
Niels Möller79d566b2022-04-29 11:03:13 +0200104 ":scalability_mode_util",
Danil Chapovalovda7fe392020-10-15 15:57:17 +0200105 ":scalability_structures",
106 ":scalable_video_controller",
107 "..:chain_diff_calculator",
108 "..:frame_dependencies_calculator",
Danil Chapovalov4b18e242020-10-16 16:14:58 +0200109 "../../../api:array_view",
Danil Chapovalovda7fe392020-10-15 15:57:17 +0200110 "../../../api/transport/rtp:dependency_descriptor",
111 "../../../api/video:video_bitrate_allocation",
112 "../../../api/video:video_frame_type",
Niels Möller79d566b2022-04-29 11:03:13 +0200113 "../../../api/video_codecs:scalability_mode",
Danil Chapovalovda7fe392020-10-15 15:57:17 +0200114 "../../../common_video/generic_frame_descriptor",
Niels Möller3c24c092022-06-30 15:42:51 +0200115 "../../../rtc_base:stringutils",
Danil Chapovalovda7fe392020-10-15 15:57:17 +0200116 "../../../test:test_support",
117 ]
Niels Möller79d566b2022-04-29 11:03:13 +0200118 absl_deps = [
119 "//third_party/abseil-cpp/absl/strings",
120 "//third_party/abseil-cpp/absl/types:optional",
121 ]
Danil Chapovalovda7fe392020-10-15 15:57:17 +0200122 }
Danil Chapovalov649648e2020-11-05 18:06:00 +0100123
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 }
Danil Chapovalovda7fe392020-10-15 15:57:17 +0200135}