blob: 101848a2e457b9b349b217239e3e1c6191e77b19 [file] [log] [blame]
ilnikd60d06a2017-04-05 03:02:20 -07001# Copyright (c) 2017 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")
10if (is_android) {
11 import("//build/config/android/config.gni")
12 import("//build/config/android/rules.gni")
13}
14
Niels Möller79d566b2022-04-29 11:03:13 +020015rtc_source_set("scalability_mode") {
Niels Möller9bda4902022-06-15 12:52:01 +020016 visibility = [ "*" ]
Byoungchan Leea1a7c632022-07-05 21:06:28 +090017 sources = [
18 "scalability_mode.cc",
19 "scalability_mode.h",
20 ]
21 deps = [
22 "../../rtc_base:checks",
23 "../../rtc_base/system:rtc_export",
24 ]
25 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Niels Möller79d566b2022-04-29 11:03:13 +020026}
27
Åsa Persson178937d2022-09-02 11:05:13 +020028rtc_source_set("scalability_mode_helper") {
29 visibility = [ "*" ]
30 sources = [
31 "scalability_mode_helper.cc",
32 "scalability_mode_helper.h",
33 ]
34 deps = [ "../../modules/video_coding/svc:scalability_mode_util" ]
35 absl_deps = [
36 "//third_party/abseil-cpp/absl/strings",
37 "//third_party/abseil-cpp/absl/types:optional",
38 ]
39}
40
Mirko Bonadei86d053c2019-10-17 21:32:04 +020041rtc_library("video_codecs_api") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000042 visibility = [ "*" ]
ilnikd60d06a2017-04-05 03:02:20 -070043 sources = [
Joe Downing87bcc1c2022-06-09 15:56:08 -070044 "av1_profile.cc",
45 "av1_profile.h",
Johannes Kronc3fcee72021-04-19 09:09:26 +020046 "h264_profile_level_id.cc",
47 "h264_profile_level_id.h",
Niels Möllerbe682d42018-03-27 08:31:45 +020048 "sdp_video_format.cc",
andersc063f0c02017-09-11 11:50:51 -070049 "sdp_video_format.h",
Niels Möller79924572022-07-05 14:22:27 +020050 "simulcast_stream.cc",
Niels Möllerc0a9f352022-05-20 13:38:49 +020051 "simulcast_stream.h",
Niels Möller5b69aa62020-08-14 15:32:14 +020052 "spatial_layer.cc",
53 "spatial_layer.h",
Niels Möllera46bd4b2018-06-08 14:03:44 +020054 "video_codec.cc",
Niels Möller802506c2018-05-31 10:44:51 +020055 "video_codec.h",
Niels Möllerbe682d42018-03-27 08:31:45 +020056 "video_decoder.cc",
ilnikd60d06a2017-04-05 03:02:20 -070057 "video_decoder.h",
Magnus Jedvertd4b0c052017-09-14 10:24:54 +020058 "video_decoder_factory.h",
mflodman351424e2017-08-10 02:43:14 -070059 "video_encoder.cc",
ilnikd60d06a2017-04-05 03:02:20 -070060 "video_encoder.h",
Magnus Jedvertd4b0c052017-09-14 10:24:54 +020061 "video_encoder_factory.h",
Elad Alonde3360e2019-03-06 21:14:54 +010062 "vp8_frame_buffer_controller.h",
Elad Alon411b49b2019-01-29 14:05:55 +010063 "vp8_frame_config.cc",
64 "vp8_frame_config.h",
Elad Aloncde8ab22019-03-20 11:56:20 +010065 "vp8_temporal_layers.cc",
Erik Språng4529fbc2018-10-12 10:30:31 +020066 "vp8_temporal_layers.h",
Johannes Kronc3fcee72021-04-19 09:09:26 +020067 "vp9_profile.cc",
68 "vp9_profile.h",
ilnikd60d06a2017-04-05 03:02:20 -070069 ]
70
71 deps = [
Niels Möller79d566b2022-04-29 11:03:13 +020072 ":scalability_mode",
Elad Alon8f01c4e2019-06-28 15:19:43 +020073 "..:fec_controller_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +010074 "..:scoped_refptr",
Johannes Kron20ee02c2021-04-20 15:53:52 +020075 "../../api:array_view",
Elad Alon411b49b2019-01-29 14:05:55 +010076 "../../modules/video_coding:codec_globals_headers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010077 "../../rtc_base:checks",
philipel99c4c732022-10-18 16:05:38 +020078 "../../rtc_base:logging",
Florent Castelli4467ad72022-04-04 15:18:46 +020079 "../../rtc_base:macromagic",
Florent Castellif86f6f92022-04-05 02:54:12 +020080 "../../rtc_base:refcount",
Florent Castelli57aa81b2022-04-04 17:14:02 +020081 "../../rtc_base:stringutils",
Mirko Bonadei276827c2018-10-16 14:13:50 +020082 "../../rtc_base/system:rtc_export",
Erik Språng4d9df382019-03-27 15:00:43 +010083 "../units:data_rate",
Niels Möller4dc66c52018-10-05 14:17:58 +020084 "../video:encoded_image",
Danil Chapovalovecc46ef2021-08-09 15:30:47 +020085 "../video:render_resolution",
Jonas Oreland0deda152022-09-23 12:08:57 +020086 "../video:resolution",
Erik Språngec475652018-05-15 15:12:55 +020087 "../video:video_bitrate_allocation",
Erik Språngf93eda12019-01-16 17:10:57 +010088 "../video:video_codec_constants",
Niels Möllerc6ce9c52018-05-11 11:15:30 +020089 "../video:video_frame",
Chen Xing5d24b162019-06-10 12:59:38 +020090 "../video:video_rtp_headers",
Mirko Bonadei2dcf3482020-06-05 14:30:41 +020091 ]
92 absl_deps = [
Steve Antona59dcc32019-03-25 13:53:07 -070093 "//third_party/abseil-cpp/absl/algorithm:container",
Erik Språngdbdd8392019-01-17 15:27:50 +010094 "//third_party/abseil-cpp/absl/container:inlined_vector",
Niels Möller3c7d5992018-10-19 15:29:54 +020095 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalov0bc58cf2018-06-21 13:32:56 +020096 "//third_party/abseil-cpp/absl/types:optional",
ilnikd60d06a2017-04-05 03:02:20 -070097 ]
98}
Anders Carlsson67537952018-05-03 11:28:29 +020099
Kári Tristan Helgasonb1633592019-03-22 11:19:08 +0100100rtc_source_set("bitstream_parser_api") {
101 visibility = [ "*" ]
Danil Chapovalov64f1f3f2020-01-16 14:41:10 +0100102 sources = [ "bitstream_parser.h" ]
103 deps = [ "..:array_view" ]
Mirko Bonadei9d9c2d52022-10-07 21:47:49 +0000104 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Kári Tristan Helgasonb1633592019-03-22 11:19:08 +0100105}
106
Mirko Bonadei86d053c2019-10-17 21:32:04 +0200107rtc_library("builtin_video_decoder_factory") {
Anders Carlsson67537952018-05-03 11:28:29 +0200108 visibility = [ "*" ]
109 allow_poison = [
110 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
111 "software_video_codecs",
112 ]
113 sources = [
114 "builtin_video_decoder_factory.cc",
115 "builtin_video_decoder_factory.h",
116 ]
117
118 deps = [
119 ":video_codecs_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +0100120 "../../api:scoped_refptr",
Anders Carlsson67537952018-05-03 11:28:29 +0200121 "../../media:rtc_internal_video_codecs",
Mirko Bonadeiac194142018-10-22 17:08:37 +0200122 "../../rtc_base/system:rtc_export",
Anders Carlsson67537952018-05-03 11:28:29 +0200123 ]
124}
125
Mirko Bonadei86d053c2019-10-17 21:32:04 +0200126rtc_library("builtin_video_encoder_factory") {
Anders Carlsson67537952018-05-03 11:28:29 +0200127 visibility = [ "*" ]
128 allow_poison = [
129 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
130 "software_video_codecs",
131 ]
132 sources = [
133 "builtin_video_encoder_factory.cc",
134 "builtin_video_encoder_factory.h",
135 ]
136
137 deps = [
138 ":video_codecs_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +0100139 "../../api:scoped_refptr",
Harald Alvestrand794d5992022-12-16 09:54:57 +0000140 "../../media:codec",
141 "../../media:media_constants",
Florent Castellie7862cc2018-12-06 13:38:24 +0100142 "../../media:rtc_encoder_simulcast_proxy",
Anders Carlsson67537952018-05-03 11:28:29 +0200143 "../../media:rtc_internal_video_codecs",
144 "../../media:rtc_media_base",
Yves Gerey3e707812018-11-28 16:47:49 +0100145 "../../rtc_base:checks",
Mirko Bonadeiac194142018-10-22 17:08:37 +0200146 "../../rtc_base/system:rtc_export",
Anders Carlsson67537952018-05-03 11:28:29 +0200147 ]
Åsa Perssonb7f91132023-01-02 19:46:13 +0100148 absl_deps = [
149 "//third_party/abseil-cpp/absl/strings",
150 "//third_party/abseil-cpp/absl/types:optional",
151 ]
Anders Carlsson67537952018-05-03 11:28:29 +0200152}
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200153
philipel6160ca52022-03-16 12:11:42 +0100154rtc_source_set("video_encoder_factory_template") {
155 visibility = [ "*" ]
156 allow_poison = [ "software_video_codecs" ]
157 public = [ "video_encoder_factory_template.h" ]
158
Niels Möller3b048132022-05-05 14:37:05 +0200159 deps = [
160 ":video_codecs_api",
philipel02bfcf52022-07-13 11:07:07 +0200161 "../../api:array_view",
Niels Möller3b048132022-05-05 14:37:05 +0200162 "../../modules/video_coding/svc:scalability_mode_util",
163 ]
philipel02bfcf52022-07-13 11:07:07 +0200164
philipel6160ca52022-03-16 12:11:42 +0100165 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
166}
167
168rtc_source_set("video_encoder_factory_template_libvpx_vp8_adapter") {
169 visibility = [ "*" ]
170 allow_poison = [ "software_video_codecs" ]
171 public = [ "video_encoder_factory_template_libvpx_vp8_adapter.h" ]
172
Niels Möller14d01502022-05-09 14:35:09 +0200173 deps = [
Mirko Bonadei9d9c2d52022-10-07 21:47:49 +0000174 ":video_codecs_api",
Niels Möller14d01502022-05-09 14:35:09 +0200175 "../../modules/video_coding:webrtc_vp8",
176 "../../modules/video_coding:webrtc_vp8_scalability",
177 ]
Byoungchan Leea1a7c632022-07-05 21:06:28 +0900178
179 absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector" ]
philipel6160ca52022-03-16 12:11:42 +0100180}
181
182rtc_source_set("video_encoder_factory_template_libvpx_vp9_adapter") {
183 visibility = [ "*" ]
184 allow_poison = [ "software_video_codecs" ]
185 public = [ "video_encoder_factory_template_libvpx_vp9_adapter.h" ]
186
187 deps = [ "../../modules/video_coding:webrtc_vp9" ]
188}
189
190rtc_source_set("video_encoder_factory_template_open_h264_adapter") {
191 visibility = [ "*" ]
192 allow_poison = [ "software_video_codecs" ]
193 public = [ "video_encoder_factory_template_open_h264_adapter.h" ]
194
195 deps = [ "../../modules/video_coding:webrtc_h264" ]
196}
197
198rtc_source_set("video_encoder_factory_template_libaom_av1_adapter") {
199 visibility = [ "*" ]
200 allow_poison = [ "software_video_codecs" ]
201 public = [ "video_encoder_factory_template_libaom_av1_adapter.h" ]
202
203 deps = [
Niels Möller79d566b2022-04-29 11:03:13 +0200204 ":scalability_mode",
Mirko Bonadei9d9c2d52022-10-07 21:47:49 +0000205 ":video_codecs_api",
Niels Möller3b048132022-05-05 14:37:05 +0200206 "../../modules/video_coding/codecs/av1:av1_svc_config",
philipel6160ca52022-03-16 12:11:42 +0100207 "../../modules/video_coding/codecs/av1:libaom_av1_encoder",
Niels Möller79d566b2022-04-29 11:03:13 +0200208 "../../modules/video_coding/svc:scalability_mode_util",
philipel6160ca52022-03-16 12:11:42 +0100209 ]
Byoungchan Leea1a7c632022-07-05 21:06:28 +0900210 absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector" ]
philipel6160ca52022-03-16 12:11:42 +0100211}
212
philipelf0232f32022-07-14 16:06:51 +0200213rtc_source_set("video_decoder_factory_template") {
214 visibility = [ "*" ]
215 allow_poison = [ "software_video_codecs" ]
216 public = [ "video_decoder_factory_template.h" ]
217
218 deps = [
219 ":video_codecs_api",
220 "../../api:array_view",
221 ]
222
223 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
224}
225
226rtc_source_set("video_decoder_factory_template_libvpx_vp8_adapter") {
227 visibility = [ "*" ]
228 allow_poison = [ "software_video_codecs" ]
229 public = [ "video_decoder_factory_template_libvpx_vp8_adapter.h" ]
230
Mirko Bonadei9d9c2d52022-10-07 21:47:49 +0000231 deps = [
232 ":video_codecs_api",
233 "../../modules/video_coding:webrtc_vp8",
234 ]
philipelf0232f32022-07-14 16:06:51 +0200235}
236
237rtc_source_set("video_decoder_factory_template_libvpx_vp9_adapter") {
238 visibility = [ "*" ]
239 allow_poison = [ "software_video_codecs" ]
240 public = [ "video_decoder_factory_template_libvpx_vp9_adapter.h" ]
241
242 deps = [ "../../modules/video_coding:webrtc_vp9" ]
243}
244
245rtc_source_set("video_decoder_factory_template_open_h264_adapter") {
246 visibility = [ "*" ]
247 allow_poison = [ "software_video_codecs" ]
248 public = [ "video_decoder_factory_template_open_h264_adapter.h" ]
249
250 deps = [ "../../modules/video_coding:webrtc_h264" ]
251}
252
253rtc_source_set("video_decoder_factory_template_dav1d_adapter") {
254 visibility = [ "*" ]
255 allow_poison = [ "software_video_codecs" ]
256 public = [ "video_decoder_factory_template_dav1d_adapter.h" ]
257
Mirko Bonadei9d9c2d52022-10-07 21:47:49 +0000258 deps = [
259 ":video_codecs_api",
260 "../../modules/video_coding/codecs/av1:dav1d_decoder",
261 ]
philipelf0232f32022-07-14 16:06:51 +0200262}
263
Mirko Bonadei86d053c2019-10-17 21:32:04 +0200264rtc_library("vp8_temporal_layers_factory") {
Erik Språng4529fbc2018-10-12 10:30:31 +0200265 visibility = [ "*" ]
266 allow_poison = [ "software_video_codecs" ]
267 sources = [
Elad Aloncde8ab22019-03-20 11:56:20 +0100268 "vp8_temporal_layers_factory.cc",
269 "vp8_temporal_layers_factory.h",
Erik Språng4529fbc2018-10-12 10:30:31 +0200270 ]
271
272 deps = [
273 ":video_codecs_api",
Elad Alon45befc52019-07-02 11:20:09 +0200274 "../:fec_controller_api",
Elad Aloncde8ab22019-03-20 11:56:20 +0100275 "../../modules/video_coding:video_coding_utility",
Erik Språng4529fbc2018-10-12 10:30:31 +0200276 "../../modules/video_coding:webrtc_vp8_temporal_layers",
Elad Aloncde8ab22019-03-20 11:56:20 +0100277 "../../rtc_base:checks",
Erik Språng4529fbc2018-10-12 10:30:31 +0200278 ]
279}
280
Mirko Bonadei86d053c2019-10-17 21:32:04 +0200281rtc_library("rtc_software_fallback_wrappers") {
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200282 visibility = [ "*" ]
283
284 sources = [
285 "video_decoder_software_fallback_wrapper.cc",
286 "video_decoder_software_fallback_wrapper.h",
287 "video_encoder_software_fallback_wrapper.cc",
288 "video_encoder_software_fallback_wrapper.h",
289 ]
290
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200291 deps = [
292 ":video_codecs_api",
Elad Alon8f01c4e2019-06-28 15:19:43 +0200293 "..:fec_controller_api",
Ilya Nikolaevskiy38e9b062020-10-08 14:36:33 +0000294 "../../api/video:video_frame",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200295 "../../media:rtc_media_base",
296 "../../modules/video_coding:video_codec_interface",
Erik Språng261f7922020-01-31 13:51:12 +0100297 "../../modules/video_coding:video_coding_utility",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200298 "../../rtc_base:checks",
Florent Castellia30aef32022-04-19 17:47:13 +0200299 "../../rtc_base:event_tracer",
Florent Castelli0af55ba2022-04-04 15:06:30 +0200300 "../../rtc_base:logging",
Mirko Bonadei66e76792019-04-02 11:33:59 +0200301 "../../rtc_base/system:rtc_export",
Mirko Bonadei17f48782018-09-28 08:51:10 +0200302 "../../system_wrappers:field_trial",
Johannes Kron57033032020-03-17 10:01:43 +0100303 "../../system_wrappers:metrics",
Yves Gerey3e707812018-11-28 16:47:49 +0100304 "../video:encoded_image",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200305 "../video:video_bitrate_allocation",
Yves Gerey3e707812018-11-28 16:47:49 +0100306 "../video:video_frame",
Chen Xing5d24b162019-06-10 12:59:38 +0200307 "../video:video_rtp_headers",
Mirko Bonadei2dcf3482020-06-05 14:30:41 +0200308 ]
309 absl_deps = [
Danil Chapovalov64f1f3f2020-01-16 14:41:10 +0100310 "//third_party/abseil-cpp/absl/base:core_headers",
Mirko Bonadei06d35592020-04-01 13:43:08 +0200311 "//third_party/abseil-cpp/absl/strings",
Yves Gerey3e707812018-11-28 16:47:49 +0100312 "//third_party/abseil-cpp/absl/types:optional",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200313 ]
314}