xref: /aosp_15_r20/external/webrtc/media/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
2*d9f75844SAndroid Build Coastguard Worker#
3*d9f75844SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license
4*d9f75844SAndroid Build Coastguard Worker# that can be found in the LICENSE file in the root of the source
5*d9f75844SAndroid Build Coastguard Worker# tree. An additional intellectual property rights grant can be found
6*d9f75844SAndroid Build Coastguard Worker# in the file PATENTS.  All contributing project authors may
7*d9f75844SAndroid Build Coastguard Worker# be found in the AUTHORS file in the root of the source tree.
8*d9f75844SAndroid Build Coastguard Worker
9*d9f75844SAndroid Build Coastguard Workerimport("//build/config/linux/pkg_config.gni")
10*d9f75844SAndroid Build Coastguard Workerimport("//third_party/libaom/options.gni")
11*d9f75844SAndroid Build Coastguard Workerimport("../webrtc.gni")
12*d9f75844SAndroid Build Coastguard Worker
13*d9f75844SAndroid Build Coastguard Workergroup("media") {
14*d9f75844SAndroid Build Coastguard Worker  deps = []
15*d9f75844SAndroid Build Coastguard Worker  if (!build_with_mozilla) {
16*d9f75844SAndroid Build Coastguard Worker    deps += [
17*d9f75844SAndroid Build Coastguard Worker      ":rtc_media",
18*d9f75844SAndroid Build Coastguard Worker      ":rtc_media_base",
19*d9f75844SAndroid Build Coastguard Worker    ]
20*d9f75844SAndroid Build Coastguard Worker  }
21*d9f75844SAndroid Build Coastguard Worker}
22*d9f75844SAndroid Build Coastguard Worker
23*d9f75844SAndroid Build Coastguard Workerconfig("rtc_media_defines_config") {
24*d9f75844SAndroid Build Coastguard Worker  defines = [ "HAVE_WEBRTC_VIDEO" ]
25*d9f75844SAndroid Build Coastguard Worker}
26*d9f75844SAndroid Build Coastguard Worker
27*d9f75844SAndroid Build Coastguard Workerrtc_source_set("rtc_media_config") {
28*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
29*d9f75844SAndroid Build Coastguard Worker  sources = [ "base/media_config.h" ]
30*d9f75844SAndroid Build Coastguard Worker}
31*d9f75844SAndroid Build Coastguard Worker
32*d9f75844SAndroid Build Coastguard Workerrtc_library("rtc_sdp_video_format_utils") {
33*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
34*d9f75844SAndroid Build Coastguard Worker  sources = [
35*d9f75844SAndroid Build Coastguard Worker    "base/sdp_video_format_utils.cc",
36*d9f75844SAndroid Build Coastguard Worker    "base/sdp_video_format_utils.h",
37*d9f75844SAndroid Build Coastguard Worker  ]
38*d9f75844SAndroid Build Coastguard Worker
39*d9f75844SAndroid Build Coastguard Worker  deps = [
40*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:video_codecs_api",
41*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
42*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:stringutils",
43*d9f75844SAndroid Build Coastguard Worker  ]
44*d9f75844SAndroid Build Coastguard Worker  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
45*d9f75844SAndroid Build Coastguard Worker}
46*d9f75844SAndroid Build Coastguard Worker
47*d9f75844SAndroid Build Coastguard Workerrtc_library("rtc_media_base") {
48*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
49*d9f75844SAndroid Build Coastguard Worker  defines = []
50*d9f75844SAndroid Build Coastguard Worker  libs = []
51*d9f75844SAndroid Build Coastguard Worker  deps = [
52*d9f75844SAndroid Build Coastguard Worker    ":rtc_media_config",
53*d9f75844SAndroid Build Coastguard Worker    "../api:array_view",
54*d9f75844SAndroid Build Coastguard Worker    "../api:audio_options_api",
55*d9f75844SAndroid Build Coastguard Worker    "../api:field_trials_view",
56*d9f75844SAndroid Build Coastguard Worker    "../api:frame_transformer_interface",
57*d9f75844SAndroid Build Coastguard Worker    "../api:media_stream_interface",
58*d9f75844SAndroid Build Coastguard Worker    "../api:rtc_error",
59*d9f75844SAndroid Build Coastguard Worker    "../api:rtp_parameters",
60*d9f75844SAndroid Build Coastguard Worker    "../api:rtp_sender_interface",
61*d9f75844SAndroid Build Coastguard Worker    "../api:scoped_refptr",
62*d9f75844SAndroid Build Coastguard Worker    "../api:sequence_checker",
63*d9f75844SAndroid Build Coastguard Worker    "../api/audio:audio_frame_processor",
64*d9f75844SAndroid Build Coastguard Worker    "../api/audio_codecs:audio_codecs_api",
65*d9f75844SAndroid Build Coastguard Worker    "../api/crypto:frame_decryptor_interface",
66*d9f75844SAndroid Build Coastguard Worker    "../api/crypto:frame_encryptor_interface",
67*d9f75844SAndroid Build Coastguard Worker    "../api/crypto:options",
68*d9f75844SAndroid Build Coastguard Worker    "../api/task_queue:pending_task_safety_flag",
69*d9f75844SAndroid Build Coastguard Worker    "../api/transport:datagram_transport_interface",
70*d9f75844SAndroid Build Coastguard Worker    "../api/transport:stun_types",
71*d9f75844SAndroid Build Coastguard Worker    "../api/transport/rtp:rtp_source",
72*d9f75844SAndroid Build Coastguard Worker    "../api/units:time_delta",
73*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_bitrate_allocation",
74*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_bitrate_allocator_factory",
75*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_frame",
76*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_rtp_headers",
77*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:video_codecs_api",
78*d9f75844SAndroid Build Coastguard Worker    "../call:call_interfaces",
79*d9f75844SAndroid Build Coastguard Worker    "../call:video_stream_api",
80*d9f75844SAndroid Build Coastguard Worker    "../common_video",
81*d9f75844SAndroid Build Coastguard Worker    "../modules/async_audio_processing",
82*d9f75844SAndroid Build Coastguard Worker    "../modules/audio_processing:audio_processing_statistics",
83*d9f75844SAndroid Build Coastguard Worker    "../modules/rtp_rtcp:rtp_rtcp_format",
84*d9f75844SAndroid Build Coastguard Worker    "../rtc_base",
85*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:buffer",
86*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:byte_order",
87*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
88*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:copy_on_write_buffer",
89*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:logging",
90*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:macromagic",
91*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:rtc_task_queue",
92*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:sanitizer",
93*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:socket",
94*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:stringutils",
95*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:timeutils",
96*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/synchronization:mutex",
97*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:file_wrapper",
98*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:no_unique_address",
99*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:rtc_export",
100*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/third_party/sigslot",
101*d9f75844SAndroid Build Coastguard Worker    "../system_wrappers:field_trial",
102*d9f75844SAndroid Build Coastguard Worker    "../video/config:encoder_config",
103*d9f75844SAndroid Build Coastguard Worker  ]
104*d9f75844SAndroid Build Coastguard Worker  absl_deps = [
105*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/algorithm:container",
106*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/container:inlined_vector",
107*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings",
108*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/types:optional",
109*d9f75844SAndroid Build Coastguard Worker  ]
110*d9f75844SAndroid Build Coastguard Worker  sources = [
111*d9f75844SAndroid Build Coastguard Worker    "base/adapted_video_track_source.cc",
112*d9f75844SAndroid Build Coastguard Worker    "base/adapted_video_track_source.h",
113*d9f75844SAndroid Build Coastguard Worker    "base/audio_source.h",
114*d9f75844SAndroid Build Coastguard Worker    "base/codec.cc",
115*d9f75844SAndroid Build Coastguard Worker    "base/codec.h",
116*d9f75844SAndroid Build Coastguard Worker    "base/delayable.h",
117*d9f75844SAndroid Build Coastguard Worker    "base/media_channel.cc",
118*d9f75844SAndroid Build Coastguard Worker    "base/media_channel.h",
119*d9f75844SAndroid Build Coastguard Worker    "base/media_constants.cc",
120*d9f75844SAndroid Build Coastguard Worker    "base/media_constants.h",
121*d9f75844SAndroid Build Coastguard Worker    "base/media_engine.cc",
122*d9f75844SAndroid Build Coastguard Worker    "base/media_engine.h",
123*d9f75844SAndroid Build Coastguard Worker    "base/rid_description.cc",
124*d9f75844SAndroid Build Coastguard Worker    "base/rid_description.h",
125*d9f75844SAndroid Build Coastguard Worker    "base/rtp_utils.cc",
126*d9f75844SAndroid Build Coastguard Worker    "base/rtp_utils.h",
127*d9f75844SAndroid Build Coastguard Worker    "base/stream_params.cc",
128*d9f75844SAndroid Build Coastguard Worker    "base/stream_params.h",
129*d9f75844SAndroid Build Coastguard Worker    "base/turn_utils.cc",
130*d9f75844SAndroid Build Coastguard Worker    "base/turn_utils.h",
131*d9f75844SAndroid Build Coastguard Worker    "base/video_adapter.cc",
132*d9f75844SAndroid Build Coastguard Worker    "base/video_adapter.h",
133*d9f75844SAndroid Build Coastguard Worker    "base/video_broadcaster.cc",
134*d9f75844SAndroid Build Coastguard Worker    "base/video_broadcaster.h",
135*d9f75844SAndroid Build Coastguard Worker    "base/video_common.cc",
136*d9f75844SAndroid Build Coastguard Worker    "base/video_common.h",
137*d9f75844SAndroid Build Coastguard Worker    "base/video_source_base.cc",
138*d9f75844SAndroid Build Coastguard Worker    "base/video_source_base.h",
139*d9f75844SAndroid Build Coastguard Worker  ]
140*d9f75844SAndroid Build Coastguard Worker}
141*d9f75844SAndroid Build Coastguard Worker
142*d9f75844SAndroid Build Coastguard Workerrtc_library("rtc_simulcast_encoder_adapter") {
143*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
144*d9f75844SAndroid Build Coastguard Worker  defines = []
145*d9f75844SAndroid Build Coastguard Worker  libs = []
146*d9f75844SAndroid Build Coastguard Worker  sources = [
147*d9f75844SAndroid Build Coastguard Worker    "engine/simulcast_encoder_adapter.cc",
148*d9f75844SAndroid Build Coastguard Worker    "engine/simulcast_encoder_adapter.h",
149*d9f75844SAndroid Build Coastguard Worker  ]
150*d9f75844SAndroid Build Coastguard Worker  deps = [
151*d9f75844SAndroid Build Coastguard Worker    ":rtc_media_base",
152*d9f75844SAndroid Build Coastguard Worker    "../api:fec_controller_api",
153*d9f75844SAndroid Build Coastguard Worker    "../api:scoped_refptr",
154*d9f75844SAndroid Build Coastguard Worker    "../api:sequence_checker",
155*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_codec_constants",
156*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_frame",
157*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_rtp_headers",
158*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:rtc_software_fallback_wrappers",
159*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:video_codecs_api",
160*d9f75844SAndroid Build Coastguard Worker    "../call:video_stream_api",
161*d9f75844SAndroid Build Coastguard Worker    "../common_video",
162*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding:video_codec_interface",
163*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding:video_coding_utility",
164*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
165*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:logging",
166*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/experiments:encoder_info_settings",
167*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/experiments:rate_control_settings",
168*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:no_unique_address",
169*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:rtc_export",
170*d9f75844SAndroid Build Coastguard Worker    "../system_wrappers",
171*d9f75844SAndroid Build Coastguard Worker    "../system_wrappers:field_trial",
172*d9f75844SAndroid Build Coastguard Worker  ]
173*d9f75844SAndroid Build Coastguard Worker  absl_deps = [
174*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/algorithm:container",
175*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/types:optional",
176*d9f75844SAndroid Build Coastguard Worker  ]
177*d9f75844SAndroid Build Coastguard Worker}
178*d9f75844SAndroid Build Coastguard Worker
179*d9f75844SAndroid Build Coastguard Workerrtc_library("rtc_encoder_simulcast_proxy") {
180*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
181*d9f75844SAndroid Build Coastguard Worker  defines = []
182*d9f75844SAndroid Build Coastguard Worker  libs = []
183*d9f75844SAndroid Build Coastguard Worker  sources = [
184*d9f75844SAndroid Build Coastguard Worker    "engine/encoder_simulcast_proxy.cc",
185*d9f75844SAndroid Build Coastguard Worker    "engine/encoder_simulcast_proxy.h",
186*d9f75844SAndroid Build Coastguard Worker  ]
187*d9f75844SAndroid Build Coastguard Worker  deps = [
188*d9f75844SAndroid Build Coastguard Worker    ":rtc_simulcast_encoder_adapter",
189*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_bitrate_allocation",
190*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_frame",
191*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_rtp_headers",
192*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:video_codecs_api",
193*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding:video_codec_interface",
194*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:rtc_export",
195*d9f75844SAndroid Build Coastguard Worker  ]
196*d9f75844SAndroid Build Coastguard Worker}
197*d9f75844SAndroid Build Coastguard Worker
198*d9f75844SAndroid Build Coastguard Workerrtc_library("rtc_internal_video_codecs") {
199*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
200*d9f75844SAndroid Build Coastguard Worker  allow_poison = [ "software_video_codecs" ]
201*d9f75844SAndroid Build Coastguard Worker  defines = []
202*d9f75844SAndroid Build Coastguard Worker  libs = []
203*d9f75844SAndroid Build Coastguard Worker  deps = [
204*d9f75844SAndroid Build Coastguard Worker    ":rtc_encoder_simulcast_proxy",
205*d9f75844SAndroid Build Coastguard Worker    ":rtc_media_base",
206*d9f75844SAndroid Build Coastguard Worker    ":rtc_simulcast_encoder_adapter",
207*d9f75844SAndroid Build Coastguard Worker    "../api/video:encoded_image",
208*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_bitrate_allocation",
209*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_frame",
210*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_rtp_headers",
211*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:rtc_software_fallback_wrappers",
212*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:video_codecs_api",
213*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:video_encoder_factory_template",
214*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
215*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
216*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
217*d9f75844SAndroid Build Coastguard Worker    "../call:call_interfaces",
218*d9f75844SAndroid Build Coastguard Worker    "../call:video_stream_api",
219*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding:video_codec_interface",
220*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding:webrtc_h264",
221*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding:webrtc_multiplex",
222*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding:webrtc_vp8",
223*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding:webrtc_vp9",
224*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
225*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:logging",
226*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:rtc_export",
227*d9f75844SAndroid Build Coastguard Worker    "../system_wrappers:field_trial",
228*d9f75844SAndroid Build Coastguard Worker    "../test:fake_video_codecs",
229*d9f75844SAndroid Build Coastguard Worker  ]
230*d9f75844SAndroid Build Coastguard Worker
231*d9f75844SAndroid Build Coastguard Worker  if (enable_libaom) {
232*d9f75844SAndroid Build Coastguard Worker    defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ]
233*d9f75844SAndroid Build Coastguard Worker    deps += [
234*d9f75844SAndroid Build Coastguard Worker      "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
235*d9f75844SAndroid Build Coastguard Worker    ]
236*d9f75844SAndroid Build Coastguard Worker  }
237*d9f75844SAndroid Build Coastguard Worker
238*d9f75844SAndroid Build Coastguard Worker  if (rtc_include_dav1d_in_internal_decoder_factory) {
239*d9f75844SAndroid Build Coastguard Worker    deps += [ "../modules/video_coding/codecs/av1:dav1d_decoder" ]
240*d9f75844SAndroid Build Coastguard Worker  }
241*d9f75844SAndroid Build Coastguard Worker  absl_deps = [
242*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings",
243*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/types:optional",
244*d9f75844SAndroid Build Coastguard Worker  ]
245*d9f75844SAndroid Build Coastguard Worker  sources = [
246*d9f75844SAndroid Build Coastguard Worker    "engine/fake_video_codec_factory.cc",
247*d9f75844SAndroid Build Coastguard Worker    "engine/fake_video_codec_factory.h",
248*d9f75844SAndroid Build Coastguard Worker    "engine/internal_decoder_factory.cc",
249*d9f75844SAndroid Build Coastguard Worker    "engine/internal_decoder_factory.h",
250*d9f75844SAndroid Build Coastguard Worker    "engine/internal_encoder_factory.cc",
251*d9f75844SAndroid Build Coastguard Worker    "engine/internal_encoder_factory.h",
252*d9f75844SAndroid Build Coastguard Worker    "engine/multiplex_codec_factory.cc",
253*d9f75844SAndroid Build Coastguard Worker    "engine/multiplex_codec_factory.h",
254*d9f75844SAndroid Build Coastguard Worker
255*d9f75844SAndroid Build Coastguard Worker    # TODO(bugs.webrtc.org/7925): stop exporting this header once downstream
256*d9f75844SAndroid Build Coastguard Worker    # targets depend on :rtc_encoder_simulcast_proxy directly.
257*d9f75844SAndroid Build Coastguard Worker    "engine/encoder_simulcast_proxy.h",
258*d9f75844SAndroid Build Coastguard Worker  ]
259*d9f75844SAndroid Build Coastguard Worker}
260*d9f75844SAndroid Build Coastguard Worker
261*d9f75844SAndroid Build Coastguard Workerrtc_library("rtc_audio_video") {
262*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
263*d9f75844SAndroid Build Coastguard Worker  allow_poison = [ "audio_codecs" ]  # TODO(bugs.webrtc.org/8396): Remove.
264*d9f75844SAndroid Build Coastguard Worker  defines = []
265*d9f75844SAndroid Build Coastguard Worker  libs = []
266*d9f75844SAndroid Build Coastguard Worker  deps = [
267*d9f75844SAndroid Build Coastguard Worker    ":rtc_media_base",
268*d9f75844SAndroid Build Coastguard Worker    "../api:array_view",
269*d9f75844SAndroid Build Coastguard Worker    "../api:call_api",
270*d9f75844SAndroid Build Coastguard Worker    "../api:field_trials_view",
271*d9f75844SAndroid Build Coastguard Worker    "../api:libjingle_peerconnection_api",
272*d9f75844SAndroid Build Coastguard Worker    "../api:media_stream_interface",
273*d9f75844SAndroid Build Coastguard Worker    "../api:rtp_parameters",
274*d9f75844SAndroid Build Coastguard Worker    "../api:scoped_refptr",
275*d9f75844SAndroid Build Coastguard Worker    "../api:sequence_checker",
276*d9f75844SAndroid Build Coastguard Worker    "../api:transport_api",
277*d9f75844SAndroid Build Coastguard Worker    "../api/audio:audio_frame_processor",
278*d9f75844SAndroid Build Coastguard Worker    "../api/audio:audio_mixer_api",
279*d9f75844SAndroid Build Coastguard Worker    "../api/audio_codecs:audio_codecs_api",
280*d9f75844SAndroid Build Coastguard Worker    "../api/task_queue",
281*d9f75844SAndroid Build Coastguard Worker    "../api/task_queue:pending_task_safety_flag",
282*d9f75844SAndroid Build Coastguard Worker    "../api/transport:bitrate_settings",
283*d9f75844SAndroid Build Coastguard Worker    "../api/transport:field_trial_based_config",
284*d9f75844SAndroid Build Coastguard Worker    "../api/transport/rtp:rtp_source",
285*d9f75844SAndroid Build Coastguard Worker    "../api/units:data_rate",
286*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_bitrate_allocation",
287*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_bitrate_allocator_factory",
288*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_codec_constants",
289*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_frame",
290*d9f75844SAndroid Build Coastguard Worker    "../api/video:video_rtp_headers",
291*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:rtc_software_fallback_wrappers",
292*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:video_codecs_api",
293*d9f75844SAndroid Build Coastguard Worker    "../call",
294*d9f75844SAndroid Build Coastguard Worker    "../call:call_interfaces",
295*d9f75844SAndroid Build Coastguard Worker    "../call:video_stream_api",
296*d9f75844SAndroid Build Coastguard Worker    "../common_video",
297*d9f75844SAndroid Build Coastguard Worker    "../modules/async_audio_processing:async_audio_processing",
298*d9f75844SAndroid Build Coastguard Worker    "../modules/audio_device",
299*d9f75844SAndroid Build Coastguard Worker    "../modules/audio_device:audio_device_impl",
300*d9f75844SAndroid Build Coastguard Worker    "../modules/audio_mixer:audio_mixer_impl",
301*d9f75844SAndroid Build Coastguard Worker    "../modules/audio_processing:api",
302*d9f75844SAndroid Build Coastguard Worker    "../modules/audio_processing/aec_dump",
303*d9f75844SAndroid Build Coastguard Worker    "../modules/audio_processing/agc:gain_control_interface",
304*d9f75844SAndroid Build Coastguard Worker    "../modules/rtp_rtcp:rtp_rtcp_format",
305*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding",
306*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding:video_codec_interface",
307*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding:video_coding_utility",
308*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding:webrtc_vp9_helpers",
309*d9f75844SAndroid Build Coastguard Worker    "../modules/video_coding/svc:scalability_mode_util",
310*d9f75844SAndroid Build Coastguard Worker    "../rtc_base",
311*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:audio_format_to_string",
312*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:buffer",
313*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:byte_order",
314*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
315*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:copy_on_write_buffer",
316*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:event_tracer",
317*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:ignore_wundef",
318*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:logging",
319*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:macromagic",
320*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:race_checker",
321*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:rtc_task_queue",
322*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:safe_conversions",
323*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:stringutils",
324*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:threading",
325*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:timeutils",
326*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/experiments:field_trial_parser",
327*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/experiments:min_video_bitrate_experiment",
328*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/experiments:normalize_simulcast_size_experiment",
329*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/experiments:rate_control_settings",
330*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/synchronization:mutex",
331*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:no_unique_address",
332*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:rtc_export",
333*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/third_party/base64",
334*d9f75844SAndroid Build Coastguard Worker    "../system_wrappers",
335*d9f75844SAndroid Build Coastguard Worker    "../system_wrappers:metrics",
336*d9f75844SAndroid Build Coastguard Worker  ]
337*d9f75844SAndroid Build Coastguard Worker  absl_deps = [
338*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/algorithm:container",
339*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings",
340*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/types:optional",
341*d9f75844SAndroid Build Coastguard Worker  ]
342*d9f75844SAndroid Build Coastguard Worker
343*d9f75844SAndroid Build Coastguard Worker  sources = [
344*d9f75844SAndroid Build Coastguard Worker    "engine/adm_helpers.cc",
345*d9f75844SAndroid Build Coastguard Worker    "engine/adm_helpers.h",
346*d9f75844SAndroid Build Coastguard Worker    "engine/null_webrtc_video_engine.h",
347*d9f75844SAndroid Build Coastguard Worker    "engine/payload_type_mapper.cc",
348*d9f75844SAndroid Build Coastguard Worker    "engine/payload_type_mapper.h",
349*d9f75844SAndroid Build Coastguard Worker    "engine/unhandled_packets_buffer.cc",
350*d9f75844SAndroid Build Coastguard Worker    "engine/unhandled_packets_buffer.h",
351*d9f75844SAndroid Build Coastguard Worker    "engine/webrtc_media_engine.cc",
352*d9f75844SAndroid Build Coastguard Worker    "engine/webrtc_media_engine.h",
353*d9f75844SAndroid Build Coastguard Worker    "engine/webrtc_video_engine.cc",
354*d9f75844SAndroid Build Coastguard Worker    "engine/webrtc_video_engine.h",
355*d9f75844SAndroid Build Coastguard Worker    "engine/webrtc_voice_engine.cc",
356*d9f75844SAndroid Build Coastguard Worker    "engine/webrtc_voice_engine.h",
357*d9f75844SAndroid Build Coastguard Worker  ]
358*d9f75844SAndroid Build Coastguard Worker
359*d9f75844SAndroid Build Coastguard Worker  public_configs = []
360*d9f75844SAndroid Build Coastguard Worker  if (!build_with_chromium) {
361*d9f75844SAndroid Build Coastguard Worker    public_configs += [ ":rtc_media_defines_config" ]
362*d9f75844SAndroid Build Coastguard Worker    deps += [ "../modules/video_capture:video_capture_internal_impl" ]
363*d9f75844SAndroid Build Coastguard Worker  }
364*d9f75844SAndroid Build Coastguard Worker  if (rtc_enable_protobuf) {
365*d9f75844SAndroid Build Coastguard Worker    deps += [
366*d9f75844SAndroid Build Coastguard Worker      "../modules/audio_coding:ana_config_proto",
367*d9f75844SAndroid Build Coastguard Worker      "../modules/audio_processing/aec_dump:aec_dump_impl",
368*d9f75844SAndroid Build Coastguard Worker    ]
369*d9f75844SAndroid Build Coastguard Worker  } else {
370*d9f75844SAndroid Build Coastguard Worker    deps += [ "../modules/audio_processing/aec_dump:null_aec_dump_factory" ]
371*d9f75844SAndroid Build Coastguard Worker  }
372*d9f75844SAndroid Build Coastguard Worker}
373*d9f75844SAndroid Build Coastguard Worker
374*d9f75844SAndroid Build Coastguard Worker# Heavy but optional helper for unittests and webrtc users who prefer to use
375*d9f75844SAndroid Build Coastguard Worker# defaults factories or do not worry about extra dependencies and binary size.
376*d9f75844SAndroid Build Coastguard Workerrtc_library("rtc_media_engine_defaults") {
377*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
378*d9f75844SAndroid Build Coastguard Worker  allow_poison = [
379*d9f75844SAndroid Build Coastguard Worker    "audio_codecs",
380*d9f75844SAndroid Build Coastguard Worker    "default_task_queue",
381*d9f75844SAndroid Build Coastguard Worker    "software_video_codecs",
382*d9f75844SAndroid Build Coastguard Worker  ]
383*d9f75844SAndroid Build Coastguard Worker  sources = [
384*d9f75844SAndroid Build Coastguard Worker    "engine/webrtc_media_engine_defaults.cc",
385*d9f75844SAndroid Build Coastguard Worker    "engine/webrtc_media_engine_defaults.h",
386*d9f75844SAndroid Build Coastguard Worker  ]
387*d9f75844SAndroid Build Coastguard Worker  deps = [
388*d9f75844SAndroid Build Coastguard Worker    ":rtc_audio_video",
389*d9f75844SAndroid Build Coastguard Worker    "../api/audio_codecs:builtin_audio_decoder_factory",
390*d9f75844SAndroid Build Coastguard Worker    "../api/audio_codecs:builtin_audio_encoder_factory",
391*d9f75844SAndroid Build Coastguard Worker    "../api/task_queue:default_task_queue_factory",
392*d9f75844SAndroid Build Coastguard Worker    "../api/video:builtin_video_bitrate_allocator_factory",
393*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:builtin_video_decoder_factory",
394*d9f75844SAndroid Build Coastguard Worker    "../api/video_codecs:builtin_video_encoder_factory",
395*d9f75844SAndroid Build Coastguard Worker    "../modules/audio_processing:api",
396*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
397*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:rtc_export",
398*d9f75844SAndroid Build Coastguard Worker  ]
399*d9f75844SAndroid Build Coastguard Worker}
400*d9f75844SAndroid Build Coastguard Worker
401*d9f75844SAndroid Build Coastguard Workerrtc_source_set("rtc_data_sctp_transport_internal") {
402*d9f75844SAndroid Build Coastguard Worker  sources = [ "sctp/sctp_transport_internal.h" ]
403*d9f75844SAndroid Build Coastguard Worker  deps = [
404*d9f75844SAndroid Build Coastguard Worker    "../api/transport:datagram_transport_interface",
405*d9f75844SAndroid Build Coastguard Worker    "../media:rtc_media_base",
406*d9f75844SAndroid Build Coastguard Worker    "../p2p:rtc_p2p",
407*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:copy_on_write_buffer",
408*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:threading",
409*d9f75844SAndroid Build Coastguard Worker  ]
410*d9f75844SAndroid Build Coastguard Worker}
411*d9f75844SAndroid Build Coastguard Worker
412*d9f75844SAndroid Build Coastguard Workerif (rtc_build_dcsctp) {
413*d9f75844SAndroid Build Coastguard Worker  rtc_library("rtc_data_dcsctp_transport") {
414*d9f75844SAndroid Build Coastguard Worker    sources = [
415*d9f75844SAndroid Build Coastguard Worker      "sctp/dcsctp_transport.cc",
416*d9f75844SAndroid Build Coastguard Worker      "sctp/dcsctp_transport.h",
417*d9f75844SAndroid Build Coastguard Worker    ]
418*d9f75844SAndroid Build Coastguard Worker    deps = [
419*d9f75844SAndroid Build Coastguard Worker      ":rtc_data_sctp_transport_internal",
420*d9f75844SAndroid Build Coastguard Worker      "../api:array_view",
421*d9f75844SAndroid Build Coastguard Worker      "../api/task_queue:pending_task_safety_flag",
422*d9f75844SAndroid Build Coastguard Worker      "../api/task_queue:task_queue",
423*d9f75844SAndroid Build Coastguard Worker      "../media:rtc_media_base",
424*d9f75844SAndroid Build Coastguard Worker      "../net/dcsctp/public:factory",
425*d9f75844SAndroid Build Coastguard Worker      "../net/dcsctp/public:socket",
426*d9f75844SAndroid Build Coastguard Worker      "../net/dcsctp/public:types",
427*d9f75844SAndroid Build Coastguard Worker      "../net/dcsctp/public:utils",
428*d9f75844SAndroid Build Coastguard Worker      "../net/dcsctp/timer:task_queue_timeout",
429*d9f75844SAndroid Build Coastguard Worker      "../p2p:rtc_p2p",
430*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:checks",
431*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:copy_on_write_buffer",
432*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:event_tracer",
433*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:logging",
434*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:macromagic",
435*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:random",
436*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:socket",
437*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:stringutils",
438*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:threading",
439*d9f75844SAndroid Build Coastguard Worker      "../rtc_base/containers:flat_map",
440*d9f75844SAndroid Build Coastguard Worker      "../rtc_base/third_party/sigslot:sigslot",
441*d9f75844SAndroid Build Coastguard Worker      "../system_wrappers",
442*d9f75844SAndroid Build Coastguard Worker    ]
443*d9f75844SAndroid Build Coastguard Worker    absl_deps += [
444*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/strings:strings",
445*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/types:optional",
446*d9f75844SAndroid Build Coastguard Worker    ]
447*d9f75844SAndroid Build Coastguard Worker  }
448*d9f75844SAndroid Build Coastguard Worker}
449*d9f75844SAndroid Build Coastguard Worker
450*d9f75844SAndroid Build Coastguard Workerrtc_library("rtc_data_sctp_transport_factory") {
451*d9f75844SAndroid Build Coastguard Worker  defines = []
452*d9f75844SAndroid Build Coastguard Worker  sources = [
453*d9f75844SAndroid Build Coastguard Worker    "sctp/sctp_transport_factory.cc",
454*d9f75844SAndroid Build Coastguard Worker    "sctp/sctp_transport_factory.h",
455*d9f75844SAndroid Build Coastguard Worker  ]
456*d9f75844SAndroid Build Coastguard Worker  deps = [
457*d9f75844SAndroid Build Coastguard Worker    ":rtc_data_sctp_transport_internal",
458*d9f75844SAndroid Build Coastguard Worker    "../api/transport:sctp_transport_factory_interface",
459*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:threading",
460*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:unused",
461*d9f75844SAndroid Build Coastguard Worker  ]
462*d9f75844SAndroid Build Coastguard Worker
463*d9f75844SAndroid Build Coastguard Worker  if (rtc_enable_sctp) {
464*d9f75844SAndroid Build Coastguard Worker    assert(rtc_build_dcsctp, "An SCTP backend is required to enable SCTP")
465*d9f75844SAndroid Build Coastguard Worker  }
466*d9f75844SAndroid Build Coastguard Worker
467*d9f75844SAndroid Build Coastguard Worker  if (rtc_build_dcsctp) {
468*d9f75844SAndroid Build Coastguard Worker    defines += [ "WEBRTC_HAVE_DCSCTP" ]
469*d9f75844SAndroid Build Coastguard Worker    deps += [
470*d9f75844SAndroid Build Coastguard Worker      ":rtc_data_dcsctp_transport",
471*d9f75844SAndroid Build Coastguard Worker      "../system_wrappers",
472*d9f75844SAndroid Build Coastguard Worker      "../system_wrappers:field_trial",
473*d9f75844SAndroid Build Coastguard Worker    ]
474*d9f75844SAndroid Build Coastguard Worker  }
475*d9f75844SAndroid Build Coastguard Worker}
476*d9f75844SAndroid Build Coastguard Worker
477*d9f75844SAndroid Build Coastguard Workerrtc_source_set("rtc_media") {
478*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
479*d9f75844SAndroid Build Coastguard Worker  allow_poison = [ "audio_codecs" ]  # TODO(bugs.webrtc.org/8396): Remove.
480*d9f75844SAndroid Build Coastguard Worker  deps = [ ":rtc_audio_video" ]
481*d9f75844SAndroid Build Coastguard Worker}
482*d9f75844SAndroid Build Coastguard Worker
483*d9f75844SAndroid Build Coastguard Workerif (rtc_include_tests) {
484*d9f75844SAndroid Build Coastguard Worker  rtc_library("rtc_media_tests_utils") {
485*d9f75844SAndroid Build Coastguard Worker    testonly = true
486*d9f75844SAndroid Build Coastguard Worker
487*d9f75844SAndroid Build Coastguard Worker    defines = []
488*d9f75844SAndroid Build Coastguard Worker    deps = [
489*d9f75844SAndroid Build Coastguard Worker      ":rtc_audio_video",
490*d9f75844SAndroid Build Coastguard Worker      ":rtc_internal_video_codecs",
491*d9f75844SAndroid Build Coastguard Worker      ":rtc_media",
492*d9f75844SAndroid Build Coastguard Worker      ":rtc_media_base",
493*d9f75844SAndroid Build Coastguard Worker      ":rtc_simulcast_encoder_adapter",
494*d9f75844SAndroid Build Coastguard Worker      "../api:call_api",
495*d9f75844SAndroid Build Coastguard Worker      "../api:fec_controller_api",
496*d9f75844SAndroid Build Coastguard Worker      "../api:scoped_refptr",
497*d9f75844SAndroid Build Coastguard Worker      "../api/task_queue",
498*d9f75844SAndroid Build Coastguard Worker      "../api/task_queue:pending_task_safety_flag",
499*d9f75844SAndroid Build Coastguard Worker      "../api/transport:field_trial_based_config",
500*d9f75844SAndroid Build Coastguard Worker      "../api/video:encoded_image",
501*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_bitrate_allocation",
502*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_frame",
503*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_rtp_headers",
504*d9f75844SAndroid Build Coastguard Worker      "../api/video_codecs:video_codecs_api",
505*d9f75844SAndroid Build Coastguard Worker      "../call:call_interfaces",
506*d9f75844SAndroid Build Coastguard Worker      "../call:mock_rtp_interfaces",
507*d9f75844SAndroid Build Coastguard Worker      "../call:video_stream_api",
508*d9f75844SAndroid Build Coastguard Worker      "../common_video",
509*d9f75844SAndroid Build Coastguard Worker      "../modules/audio_processing",
510*d9f75844SAndroid Build Coastguard Worker      "../modules/audio_processing:api",
511*d9f75844SAndroid Build Coastguard Worker      "../modules/rtp_rtcp:rtp_rtcp_format",
512*d9f75844SAndroid Build Coastguard Worker      "../modules/video_coding:video_codec_interface",
513*d9f75844SAndroid Build Coastguard Worker      "../modules/video_coding:video_coding_utility",
514*d9f75844SAndroid Build Coastguard Worker      "../p2p:rtc_p2p",
515*d9f75844SAndroid Build Coastguard Worker      "../rtc_base",
516*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:buffer",
517*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:byte_order",
518*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:checks",
519*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:copy_on_write_buffer",
520*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:gunit_helpers",
521*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:macromagic",
522*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:rtc_event",
523*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:rtc_task_queue",
524*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:stringutils",
525*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:threading",
526*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:timeutils",
527*d9f75844SAndroid Build Coastguard Worker      "../rtc_base/synchronization:mutex",
528*d9f75844SAndroid Build Coastguard Worker      "../rtc_base/third_party/sigslot",
529*d9f75844SAndroid Build Coastguard Worker      "../test:scoped_key_value_config",
530*d9f75844SAndroid Build Coastguard Worker      "../test:test_support",
531*d9f75844SAndroid Build Coastguard Worker      "../video/config:streams_config",
532*d9f75844SAndroid Build Coastguard Worker      "//testing/gtest",
533*d9f75844SAndroid Build Coastguard Worker    ]
534*d9f75844SAndroid Build Coastguard Worker    absl_deps = [
535*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/algorithm:container",
536*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/strings",
537*d9f75844SAndroid Build Coastguard Worker    ]
538*d9f75844SAndroid Build Coastguard Worker    sources = [
539*d9f75844SAndroid Build Coastguard Worker      "base/fake_frame_source.cc",
540*d9f75844SAndroid Build Coastguard Worker      "base/fake_frame_source.h",
541*d9f75844SAndroid Build Coastguard Worker      "base/fake_media_engine.cc",
542*d9f75844SAndroid Build Coastguard Worker      "base/fake_media_engine.h",
543*d9f75844SAndroid Build Coastguard Worker      "base/fake_network_interface.h",
544*d9f75844SAndroid Build Coastguard Worker      "base/fake_rtp.cc",
545*d9f75844SAndroid Build Coastguard Worker      "base/fake_rtp.h",
546*d9f75844SAndroid Build Coastguard Worker      "base/fake_video_renderer.cc",
547*d9f75844SAndroid Build Coastguard Worker      "base/fake_video_renderer.h",
548*d9f75844SAndroid Build Coastguard Worker      "base/test_utils.cc",
549*d9f75844SAndroid Build Coastguard Worker      "base/test_utils.h",
550*d9f75844SAndroid Build Coastguard Worker      "engine/fake_webrtc_call.cc",
551*d9f75844SAndroid Build Coastguard Worker      "engine/fake_webrtc_call.h",
552*d9f75844SAndroid Build Coastguard Worker      "engine/fake_webrtc_video_engine.cc",
553*d9f75844SAndroid Build Coastguard Worker      "engine/fake_webrtc_video_engine.h",
554*d9f75844SAndroid Build Coastguard Worker    ]
555*d9f75844SAndroid Build Coastguard Worker  }
556*d9f75844SAndroid Build Coastguard Worker
557*d9f75844SAndroid Build Coastguard Worker  if (!build_with_chromium) {
558*d9f75844SAndroid Build Coastguard Worker    rtc_media_unittests_resources = [
559*d9f75844SAndroid Build Coastguard Worker      "../resources/media/captured-320x240-2s-48.frames",
560*d9f75844SAndroid Build Coastguard Worker      "../resources/media/faces.1280x720_P420.yuv",
561*d9f75844SAndroid Build Coastguard Worker      "../resources/media/faces_I400.jpg",
562*d9f75844SAndroid Build Coastguard Worker      "../resources/media/faces_I411.jpg",
563*d9f75844SAndroid Build Coastguard Worker      "../resources/media/faces_I420.jpg",
564*d9f75844SAndroid Build Coastguard Worker      "../resources/media/faces_I422.jpg",
565*d9f75844SAndroid Build Coastguard Worker      "../resources/media/faces_I444.jpg",
566*d9f75844SAndroid Build Coastguard Worker    ]
567*d9f75844SAndroid Build Coastguard Worker
568*d9f75844SAndroid Build Coastguard Worker    if (is_ios) {
569*d9f75844SAndroid Build Coastguard Worker      bundle_data("rtc_media_unittests_bundle_data") {
570*d9f75844SAndroid Build Coastguard Worker        testonly = true
571*d9f75844SAndroid Build Coastguard Worker        sources = rtc_media_unittests_resources
572*d9f75844SAndroid Build Coastguard Worker        outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
573*d9f75844SAndroid Build Coastguard Worker      }
574*d9f75844SAndroid Build Coastguard Worker    }
575*d9f75844SAndroid Build Coastguard Worker
576*d9f75844SAndroid Build Coastguard Worker    rtc_test("rtc_media_unittests") {
577*d9f75844SAndroid Build Coastguard Worker      testonly = true
578*d9f75844SAndroid Build Coastguard Worker
579*d9f75844SAndroid Build Coastguard Worker      defines = []
580*d9f75844SAndroid Build Coastguard Worker      deps = [
581*d9f75844SAndroid Build Coastguard Worker        ":rtc_audio_video",
582*d9f75844SAndroid Build Coastguard Worker        ":rtc_encoder_simulcast_proxy",
583*d9f75844SAndroid Build Coastguard Worker        ":rtc_internal_video_codecs",
584*d9f75844SAndroid Build Coastguard Worker        ":rtc_media",
585*d9f75844SAndroid Build Coastguard Worker        ":rtc_media_base",
586*d9f75844SAndroid Build Coastguard Worker        ":rtc_media_engine_defaults",
587*d9f75844SAndroid Build Coastguard Worker        ":rtc_media_tests_utils",
588*d9f75844SAndroid Build Coastguard Worker        ":rtc_sdp_video_format_utils",
589*d9f75844SAndroid Build Coastguard Worker        ":rtc_simulcast_encoder_adapter",
590*d9f75844SAndroid Build Coastguard Worker        "../api:create_simulcast_test_fixture_api",
591*d9f75844SAndroid Build Coastguard Worker        "../api:libjingle_peerconnection_api",
592*d9f75844SAndroid Build Coastguard Worker        "../api:mock_encoder_selector",
593*d9f75844SAndroid Build Coastguard Worker        "../api:mock_video_bitrate_allocator",
594*d9f75844SAndroid Build Coastguard Worker        "../api:mock_video_bitrate_allocator_factory",
595*d9f75844SAndroid Build Coastguard Worker        "../api:mock_video_codec_factory",
596*d9f75844SAndroid Build Coastguard Worker        "../api:mock_video_encoder",
597*d9f75844SAndroid Build Coastguard Worker        "../api:rtp_parameters",
598*d9f75844SAndroid Build Coastguard Worker        "../api:scoped_refptr",
599*d9f75844SAndroid Build Coastguard Worker        "../api:simulcast_test_fixture_api",
600*d9f75844SAndroid Build Coastguard Worker        "../api/audio_codecs:builtin_audio_decoder_factory",
601*d9f75844SAndroid Build Coastguard Worker        "../api/audio_codecs:builtin_audio_encoder_factory",
602*d9f75844SAndroid Build Coastguard Worker        "../api/rtc_event_log",
603*d9f75844SAndroid Build Coastguard Worker        "../api/task_queue",
604*d9f75844SAndroid Build Coastguard Worker        "../api/task_queue:default_task_queue_factory",
605*d9f75844SAndroid Build Coastguard Worker        "../api/test/video:function_video_factory",
606*d9f75844SAndroid Build Coastguard Worker        "../api/transport:field_trial_based_config",
607*d9f75844SAndroid Build Coastguard Worker        "../api/units:time_delta",
608*d9f75844SAndroid Build Coastguard Worker        "../api/units:timestamp",
609*d9f75844SAndroid Build Coastguard Worker        "../api/video:builtin_video_bitrate_allocator_factory",
610*d9f75844SAndroid Build Coastguard Worker        "../api/video:resolution",
611*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_bitrate_allocation",
612*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_codec_constants",
613*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_frame",
614*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_rtp_headers",
615*d9f75844SAndroid Build Coastguard Worker        "../api/video_codecs:builtin_video_decoder_factory",
616*d9f75844SAndroid Build Coastguard Worker        "../api/video_codecs:builtin_video_encoder_factory",
617*d9f75844SAndroid Build Coastguard Worker        "../api/video_codecs:video_codecs_api",
618*d9f75844SAndroid Build Coastguard Worker        "../audio",
619*d9f75844SAndroid Build Coastguard Worker        "../call:call_interfaces",
620*d9f75844SAndroid Build Coastguard Worker        "../common_video",
621*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_device:mock_audio_device",
622*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_mixer:audio_mixer_impl",
623*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_processing",
624*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_processing:api",
625*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_processing:mocks",
626*d9f75844SAndroid Build Coastguard Worker        "../modules/rtp_rtcp",
627*d9f75844SAndroid Build Coastguard Worker        "../modules/rtp_rtcp:rtp_rtcp_format",
628*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:simulcast_test_fixture_impl",
629*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:video_codec_interface",
630*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:webrtc_h264",
631*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:webrtc_vp8",
632*d9f75844SAndroid Build Coastguard Worker        "../p2p:p2p_test_utils",
633*d9f75844SAndroid Build Coastguard Worker        "../rtc_base",
634*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:byte_order",
635*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
636*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:gunit_helpers",
637*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
638*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:macromagic",
639*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:rtc_base_tests_utils",
640*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:rtc_event",
641*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:rtc_task_queue",
642*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:safe_conversions",
643*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:stringutils",
644*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:threading",
645*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:timeutils",
646*d9f75844SAndroid Build Coastguard Worker        "../rtc_base/experiments:min_video_bitrate_experiment",
647*d9f75844SAndroid Build Coastguard Worker        "../rtc_base/synchronization:mutex",
648*d9f75844SAndroid Build Coastguard Worker        "../rtc_base/third_party/sigslot",
649*d9f75844SAndroid Build Coastguard Worker        "../system_wrappers:field_trial",
650*d9f75844SAndroid Build Coastguard Worker        "../test:audio_codec_mocks",
651*d9f75844SAndroid Build Coastguard Worker        "../test:fake_video_codecs",
652*d9f75844SAndroid Build Coastguard Worker        "../test:field_trial",
653*d9f75844SAndroid Build Coastguard Worker        "../test:rtp_test_utils",
654*d9f75844SAndroid Build Coastguard Worker        "../test:scoped_key_value_config",
655*d9f75844SAndroid Build Coastguard Worker        "../test:test_main",
656*d9f75844SAndroid Build Coastguard Worker        "../test:test_support",
657*d9f75844SAndroid Build Coastguard Worker        "../test:video_test_common",
658*d9f75844SAndroid Build Coastguard Worker        "../test/time_controller",
659*d9f75844SAndroid Build Coastguard Worker        "../video/config:streams_config",
660*d9f75844SAndroid Build Coastguard Worker      ]
661*d9f75844SAndroid Build Coastguard Worker
662*d9f75844SAndroid Build Coastguard Worker      if (enable_libaom) {
663*d9f75844SAndroid Build Coastguard Worker        defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ]
664*d9f75844SAndroid Build Coastguard Worker      }
665*d9f75844SAndroid Build Coastguard Worker
666*d9f75844SAndroid Build Coastguard Worker      absl_deps = [
667*d9f75844SAndroid Build Coastguard Worker        "//third_party/abseil-cpp/absl/algorithm:container",
668*d9f75844SAndroid Build Coastguard Worker        "//third_party/abseil-cpp/absl/memory",
669*d9f75844SAndroid Build Coastguard Worker        "//third_party/abseil-cpp/absl/strings",
670*d9f75844SAndroid Build Coastguard Worker        "//third_party/abseil-cpp/absl/types:optional",
671*d9f75844SAndroid Build Coastguard Worker      ]
672*d9f75844SAndroid Build Coastguard Worker      sources = [
673*d9f75844SAndroid Build Coastguard Worker        "base/codec_unittest.cc",
674*d9f75844SAndroid Build Coastguard Worker        "base/media_engine_unittest.cc",
675*d9f75844SAndroid Build Coastguard Worker        "base/rtp_utils_unittest.cc",
676*d9f75844SAndroid Build Coastguard Worker        "base/sdp_video_format_utils_unittest.cc",
677*d9f75844SAndroid Build Coastguard Worker        "base/stream_params_unittest.cc",
678*d9f75844SAndroid Build Coastguard Worker        "base/turn_utils_unittest.cc",
679*d9f75844SAndroid Build Coastguard Worker        "base/video_adapter_unittest.cc",
680*d9f75844SAndroid Build Coastguard Worker        "base/video_broadcaster_unittest.cc",
681*d9f75844SAndroid Build Coastguard Worker        "base/video_common_unittest.cc",
682*d9f75844SAndroid Build Coastguard Worker        "engine/encoder_simulcast_proxy_unittest.cc",
683*d9f75844SAndroid Build Coastguard Worker        "engine/internal_decoder_factory_unittest.cc",
684*d9f75844SAndroid Build Coastguard Worker        "engine/internal_encoder_factory_unittest.cc",
685*d9f75844SAndroid Build Coastguard Worker        "engine/multiplex_codec_factory_unittest.cc",
686*d9f75844SAndroid Build Coastguard Worker        "engine/null_webrtc_video_engine_unittest.cc",
687*d9f75844SAndroid Build Coastguard Worker        "engine/payload_type_mapper_unittest.cc",
688*d9f75844SAndroid Build Coastguard Worker        "engine/simulcast_encoder_adapter_unittest.cc",
689*d9f75844SAndroid Build Coastguard Worker        "engine/unhandled_packets_buffer_unittest.cc",
690*d9f75844SAndroid Build Coastguard Worker        "engine/webrtc_media_engine_unittest.cc",
691*d9f75844SAndroid Build Coastguard Worker        "engine/webrtc_video_engine_unittest.cc",
692*d9f75844SAndroid Build Coastguard Worker      ]
693*d9f75844SAndroid Build Coastguard Worker
694*d9f75844SAndroid Build Coastguard Worker      # TODO(kthelgason): Reenable this test on iOS.
695*d9f75844SAndroid Build Coastguard Worker      # See bugs.webrtc.org/5569
696*d9f75844SAndroid Build Coastguard Worker      if (!is_ios) {
697*d9f75844SAndroid Build Coastguard Worker        sources += [ "engine/webrtc_voice_engine_unittest.cc" ]
698*d9f75844SAndroid Build Coastguard Worker      }
699*d9f75844SAndroid Build Coastguard Worker
700*d9f75844SAndroid Build Coastguard Worker      if (rtc_opus_support_120ms_ptime) {
701*d9f75844SAndroid Build Coastguard Worker        defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=1" ]
702*d9f75844SAndroid Build Coastguard Worker      } else {
703*d9f75844SAndroid Build Coastguard Worker        defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=0" ]
704*d9f75844SAndroid Build Coastguard Worker      }
705*d9f75844SAndroid Build Coastguard Worker
706*d9f75844SAndroid Build Coastguard Worker      data = rtc_media_unittests_resources
707*d9f75844SAndroid Build Coastguard Worker
708*d9f75844SAndroid Build Coastguard Worker      if (is_android) {
709*d9f75844SAndroid Build Coastguard Worker        deps += [ "//testing/android/native_test:native_test_support" ]
710*d9f75844SAndroid Build Coastguard Worker        shard_timeout = 900
711*d9f75844SAndroid Build Coastguard Worker      }
712*d9f75844SAndroid Build Coastguard Worker
713*d9f75844SAndroid Build Coastguard Worker      if (is_ios) {
714*d9f75844SAndroid Build Coastguard Worker        deps += [ ":rtc_media_unittests_bundle_data" ]
715*d9f75844SAndroid Build Coastguard Worker      }
716*d9f75844SAndroid Build Coastguard Worker
717*d9f75844SAndroid Build Coastguard Worker      if (rtc_build_dcsctp) {
718*d9f75844SAndroid Build Coastguard Worker        sources += [ "sctp/dcsctp_transport_unittest.cc" ]
719*d9f75844SAndroid Build Coastguard Worker        deps += [
720*d9f75844SAndroid Build Coastguard Worker          ":rtc_data_dcsctp_transport",
721*d9f75844SAndroid Build Coastguard Worker          "../net/dcsctp/public:factory",
722*d9f75844SAndroid Build Coastguard Worker          "../net/dcsctp/public:mocks",
723*d9f75844SAndroid Build Coastguard Worker          "../net/dcsctp/public:socket",
724*d9f75844SAndroid Build Coastguard Worker        ]
725*d9f75844SAndroid Build Coastguard Worker      }
726*d9f75844SAndroid Build Coastguard Worker    }
727*d9f75844SAndroid Build Coastguard Worker  }
728*d9f75844SAndroid Build Coastguard Worker}
729