blob: 5cf4175a25389b599e0908425046e1a44a9b3305 [file] [log] [blame]
kjellanderc76dc952016-06-03 10:09:321# Copyright (c) 2016 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("//build/config/linux/pkg_config.gni")
mbonadei9aa3f0a2017-01-24 14:58:2210import("../webrtc.gni")
kjellanderc76dc952016-06-03 10:09:3211
12group("media") {
Dan Minor9c686132018-01-15 15:20:0013 deps = []
14 if (!build_with_mozilla) {
15 deps += [
16 ":rtc_media",
17 ":rtc_media_base",
18 ]
19 }
kjellanderc76dc952016-06-03 10:09:3220}
21
22config("rtc_media_defines_config") {
Fredrik Solenberge1dcce22019-02-05 11:43:0323 defines = [ "HAVE_WEBRTC_VIDEO" ]
kjellanderc76dc952016-06-03 10:09:3224}
25
zhihuang130ca7e2017-06-21 08:02:5926rtc_source_set("rtc_h264_profile_id") {
Per Kjellandera7f2d842018-01-10 15:54:5327 visibility = [ "*" ]
zhihuang130ca7e2017-06-21 08:02:5928 sources = [
29 "base/h264_profile_level_id.cc",
30 "base/h264_profile_level_id.h",
31 ]
32
zhihuang130ca7e2017-06-21 08:02:5933 deps = [
34 "..:webrtc_common",
Artem Titov94b57c02019-03-21 12:35:1035 "../rtc_base",
Fredrik Solenbergf693bfa2018-12-11 11:22:1036 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 17:40:4737 "../rtc_base:rtc_base_approved",
Mirko Bonadei276827c2018-10-16 12:13:5038 "../rtc_base/system:rtc_export",
Danil Chapovalov00c718362018-06-15 13:58:3839 "//third_party/abseil-cpp/absl/types:optional",
zhihuang130ca7e2017-06-21 08:02:5940 ]
41}
42
Niels Möller6daa2782018-01-23 09:37:4243rtc_source_set("rtc_media_config") {
44 visibility = [ "*" ]
45 sources = [
Steve Anton10542f22019-01-11 17:11:0046 "base/media_config.h",
Niels Möller6daa2782018-01-23 09:37:4247 ]
48}
49
Emircan Uysaler98badbc2018-06-28 17:59:0250rtc_source_set("rtc_vp9_profile") {
Emircan Uysalerf73d40f2018-12-04 16:00:5251 visibility = [ "*" ]
Emircan Uysaler98badbc2018-06-28 17:59:0252 sources = [
53 "base/vp9_profile.cc",
54 "base/vp9_profile.h",
55 ]
56
57 deps = [
58 "..:webrtc_common",
59 "../api/video_codecs:video_codecs_api",
60 "../rtc_base:rtc_base_approved",
Mirko Bonadei66e76792019-04-02 09:33:5961 "../rtc_base/system:rtc_export",
Emircan Uysaler98badbc2018-06-28 17:59:0262 "//third_party/abseil-cpp/absl/types:optional",
63 ]
64}
65
zhihuangab97e182017-06-22 08:28:5966rtc_static_library("rtc_media_base") {
Per Kjellandera7f2d842018-01-10 15:54:5367 visibility = [ "*" ]
kjellanderc76dc952016-06-03 10:09:3268 defines = []
69 libs = []
Patrik Höglunda8005cf2017-12-13 15:05:4270 deps = [
Danil Chapovalov6fe6b5a2019-04-10 10:50:2471 ":rtc_h264_profile_id",
72 ":rtc_media_config",
73 ":rtc_vp9_profile",
74 "..:webrtc_common",
Yves Gerey3e707812018-11-28 15:47:4975 "../api:array_view",
Niels Möllera6fe2612018-01-19 10:28:5476 "../api:audio_options_api",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2477 "../api:libjingle_peerconnection_api",
Mirko Bonadeid9708072019-01-25 19:26:4878 "../api:scoped_refptr",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2479 "../api/audio_codecs:audio_codecs_api",
80 "../api/video:video_bitrate_allocation",
Jonas Orelanda3aa9bd2019-04-17 05:38:4081 "../api/video:video_bitrate_allocator_factory",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2482 "../api/video:video_frame",
83 "../api/video:video_frame_i420",
84 "../api/video_codecs:video_codecs_api",
85 "../call:call_interfaces",
86 "../common_video",
87 "../modules/audio_processing:audio_processing_statistics",
Henrik Boström87e3f9d2019-05-27 08:44:2488 "../modules/rtp_rtcp:rtp_rtcp_format",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2489 "../rtc_base",
Patrik Höglunda8005cf2017-12-13 15:05:4290 "../rtc_base:checks",
Tommi8d2c5a82018-03-19 10:12:4891 "../rtc_base:rtc_base_approved",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2492 "../rtc_base:rtc_base_approved",
Tommi8d2c5a82018-03-19 10:12:4893 "../rtc_base:rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 15:05:4294 "../rtc_base:sanitizer",
Patrik Höglund3e113432017-12-15 13:40:1095 "../rtc_base:stringutils",
Sebastian Janssonb55015e2019-04-09 11:44:0496 "../rtc_base/synchronization:sequence_checker",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2497 "../rtc_base/system:rtc_export",
98 "../rtc_base/third_party/sigslot",
99 "//third_party/abseil-cpp/absl/algorithm:container",
100 "//third_party/abseil-cpp/absl/strings",
101 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglunda8005cf2017-12-13 15:05:42102 ]
kjellanderc76dc952016-06-03 10:09:32103 sources = [
Steve Anton10542f22019-01-11 17:11:00104 "base/adapted_video_track_source.cc",
105 "base/adapted_video_track_source.h",
106 "base/audio_source.h",
kjellanderc76dc952016-06-03 10:09:32107 "base/codec.cc",
108 "base/codec.h",
Ruslan Burakov493a6502019-02-27 14:32:48109 "base/delayable.h",
Steve Anton10542f22019-01-11 17:11:00110 "base/media_channel.cc",
111 "base/media_channel.h",
112 "base/media_constants.cc",
113 "base/media_constants.h",
114 "base/media_engine.cc",
115 "base/media_engine.h",
116 "base/rid_description.cc",
117 "base/rid_description.h",
118 "base/rtp_data_engine.cc",
119 "base/rtp_data_engine.h",
120 "base/rtp_utils.cc",
121 "base/rtp_utils.h",
122 "base/stream_params.cc",
123 "base/stream_params.h",
124 "base/turn_utils.cc",
125 "base/turn_utils.h",
126 "base/video_adapter.cc",
127 "base/video_adapter.h",
128 "base/video_broadcaster.cc",
129 "base/video_broadcaster.h",
Steve Anton10542f22019-01-11 17:11:00130 "base/video_common.cc",
131 "base/video_common.h",
132 "base/video_source_base.cc",
133 "base/video_source_base.h",
magjed0928a3c2016-11-25 08:40:18134 ]
135
Dan Minor9c686132018-01-15 15:20:00136 if (!build_with_mozilla) {
137 deps += [ "../p2p" ]
138 }
magjed0928a3c2016-11-25 08:40:18139}
140
Anders Carlssona114c882018-01-04 14:10:22141rtc_static_library("rtc_constants") {
magjed0928a3c2016-11-25 08:40:18142 defines = []
143 libs = []
Anders Carlssona114c882018-01-04 14:10:22144 deps = []
magjed0928a3c2016-11-25 08:40:18145 sources = [
mallikarjun829deda482017-11-20 12:18:13146 "engine/constants.cc",
charujain66748462017-09-14 20:53:02147 "engine/constants.h",
Anders Carlssona114c882018-01-04 14:10:22148 ]
149}
150
Jonathan Yu9a5da492018-10-19 07:51:18151rtc_static_library("rtc_simulcast_encoder_adapter") {
152 visibility = [ "*" ]
153 defines = []
154 libs = []
155 sources = [
156 "engine/simulcast_encoder_adapter.cc",
157 "engine/simulcast_encoder_adapter.h",
158 ]
159 deps = [
Mirko Bonadeid9708072019-01-25 19:26:48160 "../api:scoped_refptr",
Erik Språngf93eda12019-01-16 16:10:57161 "../api/video:video_codec_constants",
Yves Gerey3e707812018-11-28 15:47:49162 "../api/video:video_frame",
Jonathan Yu9a5da492018-10-19 07:51:18163 "../api/video:video_frame_i420",
164 "../api/video_codecs:video_codecs_api",
165 "../modules/video_coding:video_codec_interface",
166 "../modules/video_coding:video_coding_utility",
167 "../rtc_base:checks",
168 "../rtc_base:rtc_base_approved",
Erik Språng7f24fb92019-02-13 09:49:37169 "../rtc_base/experiments:rate_control_settings",
Sebastian Janssonb55015e2019-04-09 11:44:04170 "../rtc_base/synchronization:sequence_checker",
Mirko Bonadei66e76792019-04-02 09:33:59171 "../rtc_base/system:rtc_export",
Jonathan Yu9a5da492018-10-19 07:51:18172 "../system_wrappers",
173 "../system_wrappers:field_trial",
174 "//third_party/abseil-cpp/absl/types:optional",
175 "//third_party/libyuv",
176 ]
Jonathan Yu9a5da492018-10-19 07:51:18177}
178
Florent Castellie7862cc2018-12-06 12:38:24179rtc_static_library("rtc_encoder_simulcast_proxy") {
180 visibility = [ "*" ]
181 defines = []
182 libs = []
183 sources = [
184 "engine/encoder_simulcast_proxy.cc",
185 "engine/encoder_simulcast_proxy.h",
186 ]
187 deps = [
188 ":rtc_simulcast_encoder_adapter",
Florent Castellie7862cc2018-12-06 12:38:24189 "../api/video:video_bitrate_allocation",
190 "../api/video:video_frame",
191 "../api/video_codecs:video_codecs_api",
192 "../modules/video_coding:video_codec_interface",
Mirko Bonadei66e76792019-04-02 09:33:59193 "../rtc_base/system:rtc_export",
Florent Castellie7862cc2018-12-06 12:38:24194 ]
Florent Castellie7862cc2018-12-06 12:38:24195}
196
Anders Carlssona114c882018-01-04 14:10:22197rtc_static_library("rtc_internal_video_codecs") {
Per Kjellandera0f5f602018-01-10 15:57:32198 visibility = [ "*" ]
Karl Wiberg7ba22b82018-04-27 02:31:53199 allow_poison = [ "software_video_codecs" ]
Anders Carlssona114c882018-01-04 14:10:22200 defines = []
201 libs = []
Patrik Höglund99175c62018-01-08 10:05:10202 deps = [
Danil Chapovalov6fe6b5a2019-04-10 10:50:24203 ":rtc_constants",
Florent Castellie7862cc2018-12-06 12:38:24204 ":rtc_encoder_simulcast_proxy",
Mirko Bonadei75baa492018-01-11 16:07:30205 ":rtc_h264_profile_id",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24206 ":rtc_media_base",
Jonathan Yu9a5da492018-10-19 07:51:18207 ":rtc_simulcast_encoder_adapter",
Yves Gerey3e707812018-11-28 15:47:49208 "../:webrtc_common",
209 "../api/video:encoded_image",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24210 "../api/video:video_bitrate_allocation",
Yves Gerey3e707812018-11-28 15:47:49211 "../api/video:video_frame",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24212 "../api/video:video_frame",
213 "../api/video_codecs:rtc_software_fallback_wrappers",
214 "../api/video_codecs:video_codecs_api",
215 "../call:call_interfaces",
216 "../call:video_stream_api",
217 "../modules:module_api",
Patrik Höglund99175c62018-01-08 10:05:10218 "../modules/video_coding:video_codec_interface",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24219 "../modules/video_coding:webrtc_h264",
220 "../modules/video_coding:webrtc_multiplex",
221 "../modules/video_coding:webrtc_vp8",
222 "../modules/video_coding:webrtc_vp9",
223 "../rtc_base:checks",
224 "../rtc_base:deprecation",
225 "../rtc_base:rtc_base_approved",
226 "../rtc_base/system:rtc_export",
227 "../test:fake_video_codecs",
Karl Wiberg918f50c2018-07-05 09:40:33228 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24229 "//third_party/abseil-cpp/absl/strings",
Patrik Höglund99175c62018-01-08 10:05:10230 ]
Anders Carlssona114c882018-01-04 14:10:22231 sources = [
Emircan Uysaler7c03bdc2019-01-16 20:07:56232 "engine/fake_video_codec_factory.cc",
233 "engine/fake_video_codec_factory.h",
Steve Anton10542f22019-01-11 17:11:00234 "engine/internal_decoder_factory.cc",
235 "engine/internal_decoder_factory.h",
236 "engine/internal_encoder_factory.cc",
237 "engine/internal_encoder_factory.h",
238 "engine/multiplex_codec_factory.cc",
239 "engine/multiplex_codec_factory.h",
Jonathan Yu327b7532018-10-25 00:21:36240
241 # TODO(bugs.webrtc.org/7925): stop exporting this header once downstream
Florent Castellie7862cc2018-12-06 12:38:24242 # targets depend on :rtc_encoder_simulcast_proxy directly.
243 "engine/encoder_simulcast_proxy.h",
Anders Carlssona114c882018-01-04 14:10:22244 ]
Anders Carlssona114c882018-01-04 14:10:22245}
246
247rtc_static_library("rtc_audio_video") {
Per Kjellandera7f2d842018-01-10 15:54:53248 visibility = [ "*" ]
Anders Carlsson45340ca2019-01-14 13:23:23249 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
Anders Carlssona114c882018-01-04 14:10:22250 defines = []
251 libs = []
252 deps = [
Danil Chapovalov6fe6b5a2019-04-10 10:50:24253 ":rtc_constants",
254 ":rtc_media_base",
255 "..:webrtc_common",
256 "../api:call_api",
257 "../api:libjingle_peerconnection_api",
Mirko Bonadeid9708072019-01-25 19:26:48258 "../api:scoped_refptr",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24259 "../api:transport_api",
260 "../api/audio_codecs:audio_codecs_api",
Danil Chapovalov4c7112a2019-03-27 17:51:45261 "../api/task_queue",
262 "../api/task_queue:global_task_queue_factory",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24263 "../api/video:builtin_video_bitrate_allocator_factory",
Yves Gerey3e707812018-11-28 15:47:49264 "../api/video:video_bitrate_allocation",
Jiawei Ouc2ebe212018-11-08 18:02:56265 "../api/video:video_bitrate_allocator_factory",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24266 "../api/video:video_codec_constants",
267 "../api/video:video_frame",
268 "../api/video:video_frame_i420",
269 "../api/video_codecs:rtc_software_fallback_wrappers",
270 "../api/video_codecs:video_codecs_api",
271 "../call",
272 "../call:call_interfaces",
273 "../call:video_stream_api",
274 "../common_video",
275 "../modules/audio_device",
276 "../modules/audio_device:audio_device_impl",
277 "../modules/audio_mixer:audio_mixer_impl",
278 "../modules/audio_processing",
Alessio Bazzicab768e882018-11-07 14:29:54279 "../modules/audio_processing:api",
Yves Gerey3e707812018-11-28 15:47:49280 "../modules/audio_processing:gain_control_interface",
Artem Titov94b57c02019-03-21 12:35:10281 "../modules/audio_processing/aec_dump",
282 "../modules/video_coding",
Patrik Höglunda97af1f2018-01-16 09:11:40283 "../modules/video_coding:video_codec_interface",
Sergio Garcia Murillo43800f92018-06-21 14:16:38284 "../modules/video_coding:video_coding_utility",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24285 "../pc:rtc_pc_base",
286 "../rtc_base",
Jonas Olssonabbe8412018-04-03 11:40:05287 "../rtc_base:audio_format_to_string",
Anders Carlssona114c882018-01-04 14:10:22288 "../rtc_base:checks",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24289 "../rtc_base:rtc_task_queue",
290 "../rtc_base:stringutils",
291 "../rtc_base/experiments:audio_allocation_settings",
292 "../rtc_base/experiments:field_trial_parser",
293 "../rtc_base/experiments:normalize_simulcast_size_experiment",
Mirko Bonadei276827c2018-10-16 12:13:50294 "../rtc_base/system:rtc_export",
Artem Titova76af0c2018-07-23 15:38:12295 "../rtc_base/third_party/base64",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24296 "../system_wrappers",
Mirko Bonadei17f48782018-09-28 06:51:10297 "../system_wrappers:field_trial",
298 "../system_wrappers:metrics",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24299 "//third_party/abseil-cpp/absl/algorithm:container",
300 "//third_party/abseil-cpp/absl/memory",
301 "//third_party/abseil-cpp/absl/strings",
302 "//third_party/abseil-cpp/absl/types:optional",
Anders Carlssona114c882018-01-04 14:10:22303 ]
304
305 sources = [
306 "engine/adm_helpers.cc",
307 "engine/adm_helpers.h",
308 "engine/apm_helpers.cc",
309 "engine/apm_helpers.h",
Steve Anton10542f22019-01-11 17:11:00310 "engine/null_webrtc_video_engine.h",
Anders Carlssona114c882018-01-04 14:10:22311 "engine/payload_type_mapper.cc",
312 "engine/payload_type_mapper.h",
Anders Carlssondd8c1652018-01-30 09:32:13313 "engine/simulcast.cc",
314 "engine/simulcast.h",
Jonas Oreland6d835922019-03-18 09:59:40315 "engine/unhandled_packets_buffer.cc",
316 "engine/unhandled_packets_buffer.h",
Steve Anton10542f22019-01-11 17:11:00317 "engine/webrtc_media_engine.cc",
318 "engine/webrtc_media_engine.h",
Steve Anton10542f22019-01-11 17:11:00319 "engine/webrtc_video_engine.cc",
320 "engine/webrtc_video_engine.h",
321 "engine/webrtc_voice_engine.cc",
322 "engine/webrtc_voice_engine.h",
kjellanderc76dc952016-06-03 10:09:32323 ]
324
ehmaldonadoe9cc6862016-09-05 13:10:18325 public_configs = []
Niels Möller85818772019-04-09 06:24:58326 if (!build_with_chromium) {
kjellanderc76dc952016-06-03 10:09:32327 public_configs += [ ":rtc_media_defines_config" ]
328 deps += [ "../modules/video_capture:video_capture_internal_impl" ]
329 }
aleloi048cbdd2017-05-29 09:56:27330 if (rtc_enable_protobuf) {
331 deps += [ "../modules/audio_processing/aec_dump:aec_dump_impl" ]
332 } else {
333 deps += [ "../modules/audio_processing/aec_dump:null_aec_dump_factory" ]
334 }
kjellanderc76dc952016-06-03 10:09:32335}
kjellander82a94492016-06-13 05:12:01336
Danil Chapovalov4844c5f2019-04-10 12:10:10337# Heavy but optional helper for unittests and webrtc users who prefer to use
338# defaults factories or do not worry about extra dependencies and binary size.
339rtc_source_set("rtc_media_engine_defaults") {
340 visibility = [ "*" ]
341 allow_poison = [
342 "audio_codecs",
343 "software_video_codecs",
344 ]
345 sources = [
346 "engine/webrtc_media_engine_defaults.cc",
347 "engine/webrtc_media_engine_defaults.h",
348 ]
349 deps = [
350 ":rtc_audio_video",
351 "../api/audio_codecs:builtin_audio_decoder_factory",
352 "../api/audio_codecs:builtin_audio_encoder_factory",
353 "../api/task_queue:default_task_queue_factory",
354 "../api/video:builtin_video_bitrate_allocator_factory",
355 "../api/video_codecs:builtin_video_decoder_factory",
356 "../api/video_codecs:builtin_video_encoder_factory",
357 "../modules/audio_processing:api",
358 "../rtc_base:checks",
359 ]
360}
361
zhihuang38ede132017-06-15 19:52:32362rtc_static_library("rtc_data") {
363 defines = []
Danil Chapovalov6fe6b5a2019-04-10 10:50:24364 deps = [
365 ":rtc_media_base",
366 "..:webrtc_common",
367 "../api:call_api",
368 "../api:transport_api",
369 "../p2p:rtc_p2p",
370 "../rtc_base",
371 "../rtc_base:rtc_base_approved",
372 "../rtc_base/third_party/sigslot",
373 "../system_wrappers",
374 "//third_party/abseil-cpp/absl/algorithm:container",
375 ]
zhihuang38ede132017-06-15 19:52:32376
377 if (rtc_enable_sctp) {
378 sources = [
Steve Anton10542f22019-01-11 17:11:00379 "sctp/sctp_transport.cc",
380 "sctp/sctp_transport.h",
381 "sctp/sctp_transport_internal.h",
zhihuang38ede132017-06-15 19:52:32382 ]
Kári Tristan Helgason4d3e24a2017-12-01 14:26:41383 } else {
384 # libtool on mac does not like empty targets.
385 sources = [
Mirko Bonadei6c8e6662017-12-13 06:40:54386 "sctp/noop.cc",
Kári Tristan Helgason4d3e24a2017-12-01 14:26:41387 ]
zhihuang38ede132017-06-15 19:52:32388 }
389
zhihuang38ede132017-06-15 19:52:32390 if (rtc_enable_sctp && rtc_build_usrsctp) {
391 include_dirs = [
392 # TODO(jiayl): move this into the public_configs of
393 # //third_party/usrsctp/BUILD.gn.
394 "//third_party/usrsctp/usrsctplib",
395 ]
396 deps += [ "//third_party/usrsctp" ]
397 }
zhihuang38ede132017-06-15 19:52:32398}
399
400rtc_source_set("rtc_media") {
Per Kjellandera7f2d842018-01-10 15:54:53401 visibility = [ "*" ]
Anders Carlsson45340ca2019-01-14 13:23:23402 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
Mirko Bonadei75baa492018-01-11 16:07:30403 deps = [
zhihuang38ede132017-06-15 19:52:32404 ":rtc_audio_video",
405 ":rtc_data",
406 ]
407}
408
kjellander82a94492016-06-13 05:12:01409if (rtc_include_tests) {
mbonadei9087d492017-04-25 07:35:35410 rtc_source_set("rtc_media_tests_utils") {
kjellander82a94492016-06-13 05:12:01411 testonly = true
412
Anders Carlsson5f2bb622018-05-14 07:48:06413 defines = []
kjellandera2ef4f92017-03-06 14:04:55414 deps = [
Mirko Bonadei75baa492018-01-11 16:07:30415 ":rtc_audio_video",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24416 ":rtc_internal_video_codecs",
417 ":rtc_media",
418 ":rtc_media_base",
Jonathan Yu9a5da492018-10-19 07:51:18419 ":rtc_simulcast_encoder_adapter",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24420 "../api:call_api",
Patrik Höglundbe214a22018-01-04 11:14:35421 "../api:libjingle_peerconnection_api",
Mirko Bonadeid9708072019-01-25 19:26:48422 "../api:scoped_refptr",
Yves Gerey3e707812018-11-28 15:47:49423 "../api/video:encoded_image",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24424 "../api/video:video_bitrate_allocation",
425 "../api/video:video_frame",
Niels Möllerc6ce9c52018-05-11 09:15:30426 "../api/video:video_frame_i420",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24427 "../api/video_codecs:video_codecs_api",
428 "../call:call_interfaces",
429 "../call:mock_rtp_interfaces",
aleloi440b6d92017-08-22 12:43:23430 "../call:video_stream_api",
Artem Titov94b57c02019-03-21 12:35:10431 "../common_video",
432 "../modules/audio_processing",
Alessio Bazzicab768e882018-11-07 14:29:54433 "../modules/audio_processing:api",
Mirko Bonadeib5728d92017-12-06 06:51:33434 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglund99175c62018-01-08 10:05:10435 "../modules/video_coding:video_codec_interface",
charujaincb728ea2017-09-18 10:08:08436 "../modules/video_coding:video_coding_utility",
kjellandera2ef4f92017-03-06 14:04:55437 "../p2p:rtc_p2p",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24438 "../rtc_base",
Patrik Höglunda8005cf2017-12-13 15:05:42439 "../rtc_base:checks",
Mirko Bonadeie3abb812018-11-23 12:15:08440 "../rtc_base:gunit_helpers",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24441 "../rtc_base:rtc_base_approved",
Tommi8d2c5a82018-03-19 10:12:48442 "../rtc_base:rtc_task_queue",
Patrik Höglund3e113432017-12-15 13:40:10443 "../rtc_base:stringutils",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24444 "../rtc_base/third_party/sigslot",
445 "../test:test_support",
446 "//testing/gtest",
Steve Anton2c9ebef2019-01-29 01:27:58447 "//third_party/abseil-cpp/absl/algorithm:container",
Karl Wiberg918f50c2018-07-05 09:40:33448 "//third_party/abseil-cpp/absl/memory",
Yves Gerey69807e82018-10-30 21:23:02449 "//third_party/abseil-cpp/absl/strings",
kjellandera2ef4f92017-03-06 14:04:55450 ]
kjellander82a94492016-06-13 05:12:01451 sources = [
Steve Anton10542f22019-01-11 17:11:00452 "base/fake_frame_source.cc",
453 "base/fake_frame_source.h",
454 "base/fake_media_engine.cc",
455 "base/fake_media_engine.h",
456 "base/fake_network_interface.h",
457 "base/fake_rtp.cc",
458 "base/fake_rtp.h",
Steve Anton10542f22019-01-11 17:11:00459 "base/fake_video_renderer.cc",
460 "base/fake_video_renderer.h",
461 "base/test_utils.cc",
462 "base/test_utils.h",
463 "engine/fake_webrtc_call.cc",
464 "engine/fake_webrtc_call.h",
465 "engine/fake_webrtc_video_engine.cc",
466 "engine/fake_webrtc_video_engine.h",
kjellander82a94492016-06-13 05:12:01467 ]
kjellander82a94492016-06-13 05:12:01468 }
469
ehmaldonado3a7f35b2016-09-14 12:10:01470 rtc_media_unittests_resources = [
Mirko Bonadei92ea95e2017-09-15 04:47:31471 "../resources/media/captured-320x240-2s-48.frames",
472 "../resources/media/faces.1280x720_P420.yuv",
473 "../resources/media/faces_I420.jpg",
474 "../resources/media/faces_I422.jpg",
475 "../resources/media/faces_I444.jpg",
476 "../resources/media/faces_I411.jpg",
477 "../resources/media/faces_I400.jpg",
ehmaldonado3a7f35b2016-09-14 12:10:01478 ]
kjellander32c4a202016-08-30 09:53:49479
480 if (is_ios) {
481 bundle_data("rtc_media_unittests_bundle_data") {
482 testonly = true
483 sources = rtc_media_unittests_resources
484 outputs = [
485 "{{bundle_resources_dir}}/{{source_file_part}}",
486 ]
487 }
488 }
489
ehmaldonado38a21322016-09-02 11:10:34490 rtc_test("rtc_media_unittests") {
kjellander82a94492016-06-13 05:12:01491 testonly = true
492
johan073ece42016-08-26 09:59:47493 defines = []
kjellandera2ef4f92017-03-06 14:04:55494 deps = [
Mirko Bonadei75baa492018-01-11 16:07:30495 ":rtc_audio_video",
Anders Carlssona114c882018-01-04 14:10:22496 ":rtc_constants",
Mirko Bonadei75baa492018-01-11 16:07:30497 ":rtc_data",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24498 ":rtc_encoder_simulcast_proxy",
499 ":rtc_internal_video_codecs",
500 ":rtc_media",
501 ":rtc_media_base",
Danil Chapovalov4844c5f2019-04-10 12:10:10502 ":rtc_media_engine_defaults",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24503 ":rtc_media_tests_utils",
504 ":rtc_simulcast_encoder_adapter",
505 ":rtc_vp9_profile",
Yves Gerey3e707812018-11-28 15:47:49506 "../:webrtc_common",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24507 "../api:create_simulcast_test_fixture_api",
Piotr (Peter) Slatala946b9682019-03-18 17:25:02508 "../api:fake_media_transport",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24509 "../api:libjingle_peerconnection_api",
510 "../api:mock_video_bitrate_allocator",
511 "../api:mock_video_bitrate_allocator_factory",
512 "../api:mock_video_codec_factory",
Erik Språng9e79e6b2019-04-25 14:01:03513 "../api:mock_video_encoder",
Mirko Bonadeid9708072019-01-25 19:26:48514 "../api:scoped_refptr",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24515 "../api:simulcast_test_fixture_api",
516 "../api/audio_codecs:builtin_audio_decoder_factory",
517 "../api/audio_codecs:builtin_audio_encoder_factory",
Danil Chapovalov4c7112a2019-03-27 17:51:45518 "../api/task_queue",
519 "../api/task_queue:default_task_queue_factory",
Danil Chapovalov99b71df2018-10-26 13:57:48520 "../api/test/video:function_video_factory",
Jonas Oreland49ac5952018-09-26 14:04:32521 "../api/units:time_delta",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24522 "../api/video:builtin_video_bitrate_allocator_factory",
523 "../api/video:video_bitrate_allocation",
524 "../api/video:video_frame",
Niels Möllerc6ce9c52018-05-11 09:15:30525 "../api/video:video_frame_i420",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24526 "../api/video_codecs:builtin_video_decoder_factory",
527 "../api/video_codecs:builtin_video_encoder_factory",
528 "../api/video_codecs:video_codecs_api",
529 "../audio",
530 "../call:call_interfaces",
531 "../common_video",
532 "../logging:rtc_event_log_api",
533 "../logging:rtc_event_log_impl_base",
534 "../modules/audio_device:mock_audio_device",
535 "../modules/audio_processing",
Alessio Bazzicab768e882018-11-07 14:29:54536 "../modules/audio_processing:api",
Patrik Höglund62139292017-12-19 15:44:45537 "../modules/audio_processing:mocks",
Åsa Persson23cd45a2018-07-03 08:40:40538 "../modules/rtp_rtcp",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24539 "../modules/video_coding:simulcast_test_fixture_impl",
Patrik Höglund99175c62018-01-08 10:05:10540 "../modules/video_coding:video_codec_interface",
Sergio Garcia Murillo43800f92018-06-21 14:16:38541 "../modules/video_coding:webrtc_vp8",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24542 "../p2p:p2p_test_utils",
kjellandera2ef4f92017-03-06 14:04:55543 "../pc:rtc_pc",
Mirko Bonadeie51f7852017-12-06 10:23:19544 "../pc:rtc_pc_base",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24545 "../rtc_base",
Patrik Höglunda8005cf2017-12-13 15:05:42546 "../rtc_base:checks",
Mirko Bonadeie3abb812018-11-23 12:15:08547 "../rtc_base:gunit_helpers",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24548 "../rtc_base:rtc_base_approved",
Mirko Bonadeie3abb812018-11-23 12:15:08549 "../rtc_base:rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 10:12:48550 "../rtc_base:rtc_task_queue",
Patrik Höglund3e113432017-12-15 13:40:10551 "../rtc_base:stringutils",
Artem Titov94b57c02019-03-21 12:35:10552 "../rtc_base/third_party/sigslot",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24553 "../test:audio_codec_mocks",
kjellandera2ef4f92017-03-06 14:04:55554 "../test:field_trial",
Niels Möller04a3cc12019-05-21 11:01:58555 "../test:test_main",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24556 "../test:test_support",
557 "../test:video_test_common",
558 "//third_party/abseil-cpp/absl/algorithm:container",
Karl Wiberg918f50c2018-07-05 09:40:33559 "//third_party/abseil-cpp/absl/memory",
Yves Gerey69807e82018-10-30 21:23:02560 "//third_party/abseil-cpp/absl/strings",
Niels Möller04a3cc12019-05-21 11:01:58561 "//third_party/abseil-cpp/absl/types:optional",
kjellandera2ef4f92017-03-06 14:04:55562 ]
kjellander82a94492016-06-13 05:12:01563 sources = [
564 "base/codec_unittest.cc",
Steve Anton10542f22019-01-11 17:11:00565 "base/rtp_data_engine_unittest.cc",
566 "base/rtp_utils_unittest.cc",
567 "base/stream_params_unittest.cc",
568 "base/turn_utils_unittest.cc",
569 "base/video_adapter_unittest.cc",
570 "base/video_broadcaster_unittest.cc",
Steve Anton10542f22019-01-11 17:11:00571 "base/video_common_unittest.cc",
solenberg76377c52017-02-21 08:54:31572 "engine/apm_helpers_unittest.cc",
Florent Castellie7862cc2018-12-06 12:38:24573 "engine/encoder_simulcast_proxy_unittest.cc",
Steve Anton10542f22019-01-11 17:11:00574 "engine/internal_decoder_factory_unittest.cc",
575 "engine/multiplex_codec_factory_unittest.cc",
576 "engine/null_webrtc_video_engine_unittest.cc",
ossuc54071d2016-08-17 09:45:41577 "engine/payload_type_mapper_unittest.cc",
magjed6cc25612017-07-10 10:26:36578 "engine/simulcast_encoder_adapter_unittest.cc",
Åsa Persson31cb8f92018-06-27 08:44:56579 "engine/simulcast_unittest.cc",
Jonas Oreland6d835922019-03-18 09:59:40580 "engine/unhandled_packets_buffer_unittest.cc",
Steve Anton10542f22019-01-11 17:11:00581 "engine/webrtc_media_engine_unittest.cc",
Steve Anton10542f22019-01-11 17:11:00582 "engine/webrtc_video_engine_unittest.cc",
kjellander82a94492016-06-13 05:12:01583 ]
584
oprypin45197522017-06-22 08:47:20585 # TODO(kthelgason): Reenable this test on iOS.
586 # See bugs.webrtc.org/5569
587 if (!is_ios) {
Steve Anton10542f22019-01-11 17:11:00588 sources += [ "engine/webrtc_voice_engine_unittest.cc" ]
oprypin45197522017-06-22 08:47:20589 }
590
deadbeef40610e22016-12-22 18:53:38591 if (rtc_enable_sctp) {
Steve Anton10542f22019-01-11 17:11:00592 sources += [ "sctp/sctp_transport_unittest.cc" ]
deadbeef40610e22016-12-22 18:53:38593 }
594
ossu11bfc532017-02-16 13:37:06595 if (rtc_opus_support_120ms_ptime) {
596 defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=1" ]
597 } else {
598 defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=0" ]
599 }
600
ehmaldonado3a7f35b2016-09-14 12:10:01601 data = rtc_media_unittests_resources
602
kjellander82a94492016-06-13 05:12:01603 if (is_android) {
604 deps += [ "//testing/android/native_test:native_test_support" ]
kjellander28a0ffd2016-08-24 14:48:42605 shard_timeout = 900
606 }
kjellander32c4a202016-08-30 09:53:49607
608 if (is_ios) {
609 deps += [ ":rtc_media_unittests_bundle_data" ]
kjellander82a94492016-06-13 05:12:01610 }
kjellander82a94492016-06-13 05:12:01611 }
612}