blob: fc5ae67c67e73cd42a3d03add5835a1ec27ba02e [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
Mirko Bonadei86d053c2019-10-17 21:32:04 +020028rtc_library("video_codecs_api") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000029 visibility = [ "*" ]
ilnikd60d06a2017-04-05 03:02:20 -070030 sources = [
Joe Downing87bcc1c2022-06-09 15:56:08 -070031 "av1_profile.cc",
32 "av1_profile.h",
Johannes Kronc3fcee72021-04-19 09:09:26 +020033 "h264_profile_level_id.cc",
34 "h264_profile_level_id.h",
Niels Möllerbe682d42018-03-27 08:31:45 +020035 "sdp_video_format.cc",
andersc063f0c02017-09-11 11:50:51 -070036 "sdp_video_format.h",
Niels Möller79924572022-07-05 14:22:27 +020037 "simulcast_stream.cc",
Niels Möllerc0a9f352022-05-20 13:38:49 +020038 "simulcast_stream.h",
Niels Möller5b69aa62020-08-14 15:32:14 +020039 "spatial_layer.cc",
40 "spatial_layer.h",
Niels Möllera46bd4b2018-06-08 14:03:44 +020041 "video_codec.cc",
Niels Möller802506c2018-05-31 10:44:51 +020042 "video_codec.h",
Niels Möllerbe682d42018-03-27 08:31:45 +020043 "video_decoder.cc",
ilnikd60d06a2017-04-05 03:02:20 -070044 "video_decoder.h",
Magnus Jedvertd4b0c052017-09-14 10:24:54 +020045 "video_decoder_factory.h",
mflodman351424e2017-08-10 02:43:14 -070046 "video_encoder.cc",
ilnikd60d06a2017-04-05 03:02:20 -070047 "video_encoder.h",
Niels Möller0a8f4352018-05-18 11:37:23 +020048 "video_encoder_config.cc",
49 "video_encoder_config.h",
Magnus Jedvertd4b0c052017-09-14 10:24:54 +020050 "video_encoder_factory.h",
Elad Alonde3360e2019-03-06 21:14:54 +010051 "vp8_frame_buffer_controller.h",
Elad Alon411b49b2019-01-29 14:05:55 +010052 "vp8_frame_config.cc",
53 "vp8_frame_config.h",
Elad Aloncde8ab22019-03-20 11:56:20 +010054 "vp8_temporal_layers.cc",
Erik Språng4529fbc2018-10-12 10:30:31 +020055 "vp8_temporal_layers.h",
Johannes Kronc3fcee72021-04-19 09:09:26 +020056 "vp9_profile.cc",
57 "vp9_profile.h",
ilnikd60d06a2017-04-05 03:02:20 -070058 ]
59
60 deps = [
Niels Möller79d566b2022-04-29 11:03:13 +020061 ":scalability_mode",
Elad Alon8f01c4e2019-06-28 15:19:43 +020062 "..:fec_controller_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +010063 "..:scoped_refptr",
Johannes Kron20ee02c2021-04-20 15:53:52 +020064 "../../api:array_view",
Elad Alon411b49b2019-01-29 14:05:55 +010065 "../../modules/video_coding:codec_globals_headers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010066 "../../rtc_base:checks",
Florent Castelli4467ad72022-04-04 15:18:46 +020067 "../../rtc_base:macromagic",
Florent Castellif86f6f92022-04-05 02:54:12 +020068 "../../rtc_base:refcount",
Florent Castelli57aa81b2022-04-04 17:14:02 +020069 "../../rtc_base:stringutils",
Mirko Bonadei276827c2018-10-16 14:13:50 +020070 "../../rtc_base/system:rtc_export",
Erik Språng4d9df382019-03-27 15:00:43 +010071 "../units:data_rate",
Niels Möller4dc66c52018-10-05 14:17:58 +020072 "../video:encoded_image",
Danil Chapovalovecc46ef2021-08-09 15:30:47 +020073 "../video:render_resolution",
Erik Språngec475652018-05-15 15:12:55 +020074 "../video:video_bitrate_allocation",
Erik Språngf93eda12019-01-16 17:10:57 +010075 "../video:video_codec_constants",
Niels Möllerc6ce9c52018-05-11 11:15:30 +020076 "../video:video_frame",
Chen Xing5d24b162019-06-10 12:59:38 +020077 "../video:video_rtp_headers",
Mirko Bonadei2dcf3482020-06-05 14:30:41 +020078 ]
79 absl_deps = [
Steve Antona59dcc32019-03-25 13:53:07 -070080 "//third_party/abseil-cpp/absl/algorithm:container",
Erik Språngdbdd8392019-01-17 15:27:50 +010081 "//third_party/abseil-cpp/absl/container:inlined_vector",
Niels Möller3c7d5992018-10-19 15:29:54 +020082 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalov0bc58cf2018-06-21 13:32:56 +020083 "//third_party/abseil-cpp/absl/types:optional",
ilnikd60d06a2017-04-05 03:02:20 -070084 ]
85}
Anders Carlsson67537952018-05-03 11:28:29 +020086
Kári Tristan Helgasonb1633592019-03-22 11:19:08 +010087rtc_source_set("bitstream_parser_api") {
88 visibility = [ "*" ]
Danil Chapovalov64f1f3f2020-01-16 14:41:10 +010089 sources = [ "bitstream_parser.h" ]
90 deps = [ "..:array_view" ]
Kári Tristan Helgasonb1633592019-03-22 11:19:08 +010091}
92
Mirko Bonadei86d053c2019-10-17 21:32:04 +020093rtc_library("builtin_video_decoder_factory") {
Anders Carlsson67537952018-05-03 11:28:29 +020094 visibility = [ "*" ]
95 allow_poison = [
96 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
97 "software_video_codecs",
98 ]
99 sources = [
100 "builtin_video_decoder_factory.cc",
101 "builtin_video_decoder_factory.h",
102 ]
103
104 deps = [
105 ":video_codecs_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +0100106 "../../api:scoped_refptr",
Anders Carlsson67537952018-05-03 11:28:29 +0200107 "../../media:rtc_internal_video_codecs",
Mirko Bonadeiac194142018-10-22 17:08:37 +0200108 "../../rtc_base/system:rtc_export",
Anders Carlsson67537952018-05-03 11:28:29 +0200109 ]
110}
111
Mirko Bonadei86d053c2019-10-17 21:32:04 +0200112rtc_library("builtin_video_encoder_factory") {
Anders Carlsson67537952018-05-03 11:28:29 +0200113 visibility = [ "*" ]
114 allow_poison = [
115 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
116 "software_video_codecs",
117 ]
118 sources = [
119 "builtin_video_encoder_factory.cc",
120 "builtin_video_encoder_factory.h",
121 ]
122
123 deps = [
124 ":video_codecs_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +0100125 "../../api:scoped_refptr",
Florent Castellie7862cc2018-12-06 13:38:24 +0100126 "../../media:rtc_encoder_simulcast_proxy",
Anders Carlsson67537952018-05-03 11:28:29 +0200127 "../../media:rtc_internal_video_codecs",
128 "../../media:rtc_media_base",
Yves Gerey3e707812018-11-28 16:47:49 +0100129 "../../rtc_base:checks",
Mirko Bonadeiac194142018-10-22 17:08:37 +0200130 "../../rtc_base/system:rtc_export",
Anders Carlsson67537952018-05-03 11:28:29 +0200131 ]
Mirko Bonadei2dcf3482020-06-05 14:30:41 +0200132 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Anders Carlsson67537952018-05-03 11:28:29 +0200133}
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200134
philipel6160ca52022-03-16 12:11:42 +0100135rtc_source_set("video_encoder_factory_template") {
136 visibility = [ "*" ]
137 allow_poison = [ "software_video_codecs" ]
138 public = [ "video_encoder_factory_template.h" ]
139
Niels Möller3b048132022-05-05 14:37:05 +0200140 deps = [
141 ":video_codecs_api",
philipel02bfcf52022-07-13 11:07:07 +0200142 "../../api:array_view",
Niels Möller3b048132022-05-05 14:37:05 +0200143 "../../modules/video_coding/svc:scalability_mode_util",
144 ]
philipel02bfcf52022-07-13 11:07:07 +0200145
philipel6160ca52022-03-16 12:11:42 +0100146 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
147}
148
149rtc_source_set("video_encoder_factory_template_libvpx_vp8_adapter") {
150 visibility = [ "*" ]
151 allow_poison = [ "software_video_codecs" ]
152 public = [ "video_encoder_factory_template_libvpx_vp8_adapter.h" ]
153
Niels Möller14d01502022-05-09 14:35:09 +0200154 deps = [
155 "../../modules/video_coding:webrtc_vp8",
156 "../../modules/video_coding:webrtc_vp8_scalability",
157 ]
Byoungchan Leea1a7c632022-07-05 21:06:28 +0900158
159 absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector" ]
philipel6160ca52022-03-16 12:11:42 +0100160}
161
162rtc_source_set("video_encoder_factory_template_libvpx_vp9_adapter") {
163 visibility = [ "*" ]
164 allow_poison = [ "software_video_codecs" ]
165 public = [ "video_encoder_factory_template_libvpx_vp9_adapter.h" ]
166
167 deps = [ "../../modules/video_coding:webrtc_vp9" ]
168}
169
170rtc_source_set("video_encoder_factory_template_open_h264_adapter") {
171 visibility = [ "*" ]
172 allow_poison = [ "software_video_codecs" ]
173 public = [ "video_encoder_factory_template_open_h264_adapter.h" ]
174
175 deps = [ "../../modules/video_coding:webrtc_h264" ]
176}
177
178rtc_source_set("video_encoder_factory_template_libaom_av1_adapter") {
179 visibility = [ "*" ]
180 allow_poison = [ "software_video_codecs" ]
181 public = [ "video_encoder_factory_template_libaom_av1_adapter.h" ]
182
183 deps = [
Niels Möller79d566b2022-04-29 11:03:13 +0200184 ":scalability_mode",
Niels Möller3b048132022-05-05 14:37:05 +0200185 "../../modules/video_coding/codecs/av1:av1_svc_config",
philipel6160ca52022-03-16 12:11:42 +0100186 "../../modules/video_coding/codecs/av1:libaom_av1_encoder",
Niels Möller79d566b2022-04-29 11:03:13 +0200187 "../../modules/video_coding/svc:scalability_mode_util",
philipel6160ca52022-03-16 12:11:42 +0100188 ]
Byoungchan Leea1a7c632022-07-05 21:06:28 +0900189 absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector" ]
philipel6160ca52022-03-16 12:11:42 +0100190}
191
philipelf0232f32022-07-14 16:06:51 +0200192rtc_source_set("video_decoder_factory_template") {
193 visibility = [ "*" ]
194 allow_poison = [ "software_video_codecs" ]
195 public = [ "video_decoder_factory_template.h" ]
196
197 deps = [
198 ":video_codecs_api",
199 "../../api:array_view",
200 ]
201
202 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
203}
204
205rtc_source_set("video_decoder_factory_template_libvpx_vp8_adapter") {
206 visibility = [ "*" ]
207 allow_poison = [ "software_video_codecs" ]
208 public = [ "video_decoder_factory_template_libvpx_vp8_adapter.h" ]
209
210 deps = [ "../../modules/video_coding:webrtc_vp8" ]
211}
212
213rtc_source_set("video_decoder_factory_template_libvpx_vp9_adapter") {
214 visibility = [ "*" ]
215 allow_poison = [ "software_video_codecs" ]
216 public = [ "video_decoder_factory_template_libvpx_vp9_adapter.h" ]
217
218 deps = [ "../../modules/video_coding:webrtc_vp9" ]
219}
220
221rtc_source_set("video_decoder_factory_template_open_h264_adapter") {
222 visibility = [ "*" ]
223 allow_poison = [ "software_video_codecs" ]
224 public = [ "video_decoder_factory_template_open_h264_adapter.h" ]
225
226 deps = [ "../../modules/video_coding:webrtc_h264" ]
227}
228
229rtc_source_set("video_decoder_factory_template_dav1d_adapter") {
230 visibility = [ "*" ]
231 allow_poison = [ "software_video_codecs" ]
232 public = [ "video_decoder_factory_template_dav1d_adapter.h" ]
233
234 deps = [ "../../modules/video_coding/codecs/av1:dav1d_decoder" ]
235}
236
Mirko Bonadei86d053c2019-10-17 21:32:04 +0200237rtc_library("vp8_temporal_layers_factory") {
Erik Språng4529fbc2018-10-12 10:30:31 +0200238 visibility = [ "*" ]
239 allow_poison = [ "software_video_codecs" ]
240 sources = [
Elad Aloncde8ab22019-03-20 11:56:20 +0100241 "vp8_temporal_layers_factory.cc",
242 "vp8_temporal_layers_factory.h",
Erik Språng4529fbc2018-10-12 10:30:31 +0200243 ]
244
245 deps = [
246 ":video_codecs_api",
Elad Alon45befc52019-07-02 11:20:09 +0200247 "../:fec_controller_api",
Elad Aloncde8ab22019-03-20 11:56:20 +0100248 "../../modules/video_coding:video_coding_utility",
Erik Språng4529fbc2018-10-12 10:30:31 +0200249 "../../modules/video_coding:webrtc_vp8_temporal_layers",
Elad Aloncde8ab22019-03-20 11:56:20 +0100250 "../../rtc_base:checks",
Erik Språng4529fbc2018-10-12 10:30:31 +0200251 ]
252}
253
Mirko Bonadei86d053c2019-10-17 21:32:04 +0200254rtc_library("rtc_software_fallback_wrappers") {
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200255 visibility = [ "*" ]
256
257 sources = [
258 "video_decoder_software_fallback_wrapper.cc",
259 "video_decoder_software_fallback_wrapper.h",
260 "video_encoder_software_fallback_wrapper.cc",
261 "video_encoder_software_fallback_wrapper.h",
262 ]
263
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200264 deps = [
265 ":video_codecs_api",
Elad Alon8f01c4e2019-06-28 15:19:43 +0200266 "..:fec_controller_api",
Ilya Nikolaevskiy38e9b062020-10-08 14:36:33 +0000267 "../../api/video:video_frame",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200268 "../../media:rtc_media_base",
269 "../../modules/video_coding:video_codec_interface",
Erik Språng261f7922020-01-31 13:51:12 +0100270 "../../modules/video_coding:video_coding_utility",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200271 "../../rtc_base:checks",
Florent Castellia30aef32022-04-19 17:47:13 +0200272 "../../rtc_base:event_tracer",
Florent Castelli0af55ba2022-04-04 15:06:30 +0200273 "../../rtc_base:logging",
Mirko Bonadei66e76792019-04-02 11:33:59 +0200274 "../../rtc_base/system:rtc_export",
Mirko Bonadei17f48782018-09-28 08:51:10 +0200275 "../../system_wrappers:field_trial",
Johannes Kron57033032020-03-17 10:01:43 +0100276 "../../system_wrappers:metrics",
Yves Gerey3e707812018-11-28 16:47:49 +0100277 "../video:encoded_image",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200278 "../video:video_bitrate_allocation",
Yves Gerey3e707812018-11-28 16:47:49 +0100279 "../video:video_frame",
Chen Xing5d24b162019-06-10 12:59:38 +0200280 "../video:video_rtp_headers",
Mirko Bonadei2dcf3482020-06-05 14:30:41 +0200281 ]
282 absl_deps = [
Danil Chapovalov64f1f3f2020-01-16 14:41:10 +0100283 "//third_party/abseil-cpp/absl/base:core_headers",
Mirko Bonadei06d35592020-04-01 13:43:08 +0200284 "//third_party/abseil-cpp/absl/strings",
Yves Gerey3e707812018-11-28 16:47:49 +0100285 "//third_party/abseil-cpp/absl/types:optional",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200286 ]
287}