blob: ddd8431f762e1a730d25b79f3e687b2fe06830dd [file] [log] [blame]
tkchin9eeb6242016-04-27 08:54:201# Copyright 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
mbonadei9aa3f0a2017-01-24 14:58:229import("../webrtc.gni")
kthelgasonebc34e72016-09-15 11:30:1810if (is_ios) {
oprypin45197522017-06-22 08:47:2011 import("//build/config/ios/ios_sdk.gni")
Mirko Bonadei2ff3f492018-11-22 08:00:1312 import("//build/config/ios/rules.gni")
kthelgasonebc34e72016-09-15 11:30:1813}
Anders Carlsson7bca8ca2018-08-30 07:30:2914if (is_mac) {
15 import("//build/config/mac/rules.gni")
kthelgason2f088792017-05-30 08:48:4716}
17
kjellander6ceab082016-10-28 12:44:0318group("sdk") {
Henrik Kjellandera7d0df72017-06-27 06:56:4619 public_deps = []
20 if (!build_with_chromium) {
21 if (is_android) {
22 public_deps += [ "android" ]
23 }
24 if (is_ios) {
kthelgason36d658d2017-08-24 12:43:4525 public_deps += [ ":framework_objc" ]
Henrik Kjellandera7d0df72017-06-27 06:56:4626 }
kjellander6ceab082016-10-28 12:44:0327 }
28}
29
Mirko Bonadei86d053c2019-10-17 19:32:0430rtc_library("media_constraints") {
Niels Möllerdac03d92019-02-13 07:52:2731 sources = [
32 "media_constraints.cc",
33 "media_constraints.h",
34 ]
35 deps = [
36 "../api:audio_options_api",
37 "../api:libjingle_peerconnection_api",
Niels Möllerdac03d92019-02-13 07:52:2738 ]
Mirko Bonadei2dcf3482020-06-05 12:30:4139 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Niels Möllerdac03d92019-02-13 07:52:2740}
41
Mirko Bonadei86d053c2019-10-17 19:32:0442rtc_library("sdk_tests") {
Niels Möllerdac03d92019-02-13 07:52:2743 testonly = true
Danil Chapovalov64f1f3f2020-01-16 13:41:1044 sources = [ "media_constraints_unittest.cc" ]
Niels Möllerdac03d92019-02-13 07:52:2745 deps = [
46 ":media_constraints",
47 "../test:test_support",
48 ]
49}
50
kthelgasoncc2d1c62016-11-09 15:44:2751if (is_ios || is_mac) {
kthelgason36d658d2017-08-24 12:43:4552 config("common_config_objc") {
kjellander080a1e32016-05-25 18:37:1153 include_dirs = [
Anders Carlsson7bca8ca2018-08-30 07:30:2954 "objc",
55
56 # This is needed so that framework headers can include base headers
57 # without pathname (so it works from within the framework module).
58 "objc/base",
Mirko Bonadei1253aea2020-10-19 07:05:1759
60 # This is here for backward compatiblity reasons.
61 "objc/Framework/Headers", # TODO(bugs.webrtc.org/9627): Remove this.
kjellander080a1e32016-05-25 18:37:1162 ]
Kári Tristan Helgason47d3a012017-10-24 13:28:5163 cflags = [
Jiawei Ou4aeb35b2018-11-09 21:55:4564 "-Wimplicit-retain-self",
Kári Tristan Helgason47d3a012017-10-24 13:28:5165 "-Wstrict-overflow",
66 "-Wmissing-field-initializers",
67 ]
Artem Titarenko17ad64e2018-09-19 15:53:5968
69 if (use_clang_coverage) {
70 configs = [ "//build/config/coverage:default_coverage" ]
71 }
kjellander080a1e32016-05-25 18:37:1172 }
73
Anders Carlsson358f2e02018-06-04 08:24:3774 config("used_from_extension") {
75 if (is_ios && rtc_apprtcmobile_broadcast_extension) {
76 cflags = [ "-fapplication-extension" ]
77 }
78 }
79
Anders Carlsson7bca8ca2018-08-30 07:30:2980 # TODO(bugs.webrtc.org/9627): Remove this when unused. Targets should depend on base_objc
81 # or helpers_objc directly instead.
Mirko Bonadei86d053c2019-10-17 19:32:0482 rtc_library("common_objc") {
Mirko Bonadei2ad8c432018-08-09 08:54:4083 visibility = [ "*" ]
Anders Carlsson7bca8ca2018-08-30 07:30:2984
Danil Chapovalov64f1f3f2020-01-16 13:41:1085 sources = [ "objc/helpers/noop.mm" ]
Anders Carlsson7bca8ca2018-08-30 07:30:2986
87 public_configs = [ ":common_config_objc" ]
88
89 deps = [
90 ":base_objc",
91 ":helpers_objc",
92 ]
93 }
94
Mirko Bonadei86d053c2019-10-17 19:32:0495 rtc_library("base_objc") {
Anders Carlsson7bca8ca2018-08-30 07:30:2996 visibility = [ "*" ]
97 sources = [
98 "objc/base/RTCCodecSpecificInfo.h",
99 "objc/base/RTCEncodedImage.h",
100 "objc/base/RTCEncodedImage.m",
101 "objc/base/RTCI420Buffer.h",
102 "objc/base/RTCLogging.h",
103 "objc/base/RTCLogging.mm",
104 "objc/base/RTCMacros.h",
105 "objc/base/RTCMutableI420Buffer.h",
106 "objc/base/RTCMutableYUVPlanarBuffer.h",
107 "objc/base/RTCRtpFragmentationHeader.h",
108 "objc/base/RTCRtpFragmentationHeader.m",
109 "objc/base/RTCVideoCapturer.h",
110 "objc/base/RTCVideoCapturer.m",
111 "objc/base/RTCVideoCodecInfo.h",
112 "objc/base/RTCVideoCodecInfo.m",
113 "objc/base/RTCVideoDecoder.h",
114 "objc/base/RTCVideoDecoderFactory.h",
115 "objc/base/RTCVideoEncoder.h",
116 "objc/base/RTCVideoEncoderFactory.h",
117 "objc/base/RTCVideoEncoderQpThresholds.h",
118 "objc/base/RTCVideoEncoderQpThresholds.m",
119 "objc/base/RTCVideoEncoderSettings.h",
120 "objc/base/RTCVideoEncoderSettings.m",
121 "objc/base/RTCVideoFrame.h",
122 "objc/base/RTCVideoFrame.mm",
123 "objc/base/RTCVideoFrameBuffer.h",
124 "objc/base/RTCVideoRenderer.h",
125 "objc/base/RTCYUVPlanarBuffer.h",
tkchin9eeb6242016-04-27 08:54:20126 ]
denicijad2088152017-04-28 09:14:54127
mbonadei1e060c62017-04-21 07:02:02128 deps = [
Artem Titov94b57c02019-03-21 12:35:10129 "../rtc_base",
Patrik Höglunda8005cf2017-12-13 15:05:42130 "../rtc_base:checks",
mbonadei1e060c62017-04-21 07:02:02131 ]
Anders Carlsson358f2e02018-06-04 08:24:37132 configs += [
133 "..:common_objc",
134 ":used_from_extension",
135 ]
kthelgasonc0977102017-04-24 07:57:16136
kthelgason36d658d2017-08-24 12:43:45137 public_configs = [ ":common_config_objc" ]
Anders Carlsson7bca8ca2018-08-30 07:30:29138 }
139
Mirko Bonadei86d053c2019-10-17 19:32:04140 rtc_library("helpers_objc") {
Anders Carlsson7bca8ca2018-08-30 07:30:29141 sources = [
142 "objc/helpers/AVCaptureSession+DevicePosition.h",
143 "objc/helpers/AVCaptureSession+DevicePosition.mm",
144 "objc/helpers/NSString+StdString.h",
145 "objc/helpers/NSString+StdString.mm",
146 "objc/helpers/RTCDispatcher+Private.h",
147 "objc/helpers/RTCDispatcher.h",
148 "objc/helpers/RTCDispatcher.m",
Anders Carlsson7bca8ca2018-08-30 07:30:29149 "objc/helpers/scoped_cftyperef.h",
150 ]
151
152 deps = [
153 ":base_objc",
154 "../rtc_base:checks",
155 ]
156
Sylvain Defresnec7f0dff2020-07-03 08:19:30157 frameworks = [
Anders Carlsson7bca8ca2018-08-30 07:30:29158 "AVFoundation.framework",
159 "CoreMedia.framework",
160 ]
161
162 configs += [
163 "..:common_objc",
164 ":used_from_extension",
165 ]
166
167 public_configs = [ ":common_config_objc" ]
denicijad2088152017-04-28 09:14:54168
kjellander3bcedd32016-06-08 08:14:15169 if (is_ios) {
170 sources += [
Anders Carlsson7bca8ca2018-08-30 07:30:29171 "objc/helpers/RTCCameraPreviewView.h",
172 "objc/helpers/RTCCameraPreviewView.m",
173 "objc/helpers/UIDevice+RTCDevice.h",
174 "objc/helpers/UIDevice+RTCDevice.mm",
175 ]
176 }
177 }
178
179 if (!build_with_chromium) {
Mirko Bonadei86d053c2019-10-17 19:32:04180 rtc_library("callback_logger_objc") {
Anders Carlsson7bca8ca2018-08-30 07:30:29181 sources = [
182 "objc/api/logging/RTCCallbackLogger.h",
183 "objc/api/logging/RTCCallbackLogger.mm",
184 ]
185
186 deps = [
187 ":base_objc",
Artem Titov94b57c02019-03-21 12:35:10188 "../rtc_base",
Anders Carlsson7bca8ca2018-08-30 07:30:29189 "../rtc_base:checks",
190 "../rtc_base:logging",
Anders Carlsson7bca8ca2018-08-30 07:30:29191 ]
192
193 configs += [
194 "..:common_objc",
195 ":used_from_extension",
kjellander3bcedd32016-06-08 08:14:15196 ]
denicijad2088152017-04-28 09:14:54197 }
198
Mirko Bonadei86d053c2019-10-17 19:32:04199 rtc_library("file_logger_objc") {
Anders Carlsson7bca8ca2018-08-30 07:30:29200 sources = [
201 "objc/api/peerconnection/RTCFileLogger.h",
202 "objc/api/peerconnection/RTCFileLogger.mm",
203 ]
204
205 deps = [
206 ":base_objc",
Artem Titov94b57c02019-03-21 12:35:10207 "../rtc_base",
Anders Carlsson7bca8ca2018-08-30 07:30:29208 "../rtc_base:checks",
209 "../rtc_base:logging",
Anders Carlsson7bca8ca2018-08-30 07:30:29210 ]
211
212 configs += [
213 "..:common_objc",
214 ":used_from_extension",
kthelgason2f088792017-05-30 08:48:47215 ]
216 }
217 }
218
mbonadei2c8ac1b2017-05-31 12:14:26219 if (!build_with_chromium) {
Kári Tristan Helgason99bf77c2018-02-16 09:49:22220 if (is_ios) {
Mirko Bonadei86d053c2019-10-17 19:32:04221 rtc_library("native_api_audio_device_module") {
Peter Hanspers8d95e3b2018-05-15 08:22:36222 visibility = [ "*" ]
223
224 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29225 "objc/native/api/audio_device_module.h",
226 "objc/native/api/audio_device_module.mm",
Peter Hanspers8d95e3b2018-05-15 08:22:36227 ]
228
229 deps = [
230 ":audio_device",
231 "../modules/audio_device:audio_device_api",
232 "../modules/audio_device:audio_device_generic",
233 "../rtc_base:checks",
234 "../rtc_base:rtc_base_approved",
235 "../system_wrappers",
Peter Hanspers8d95e3b2018-05-15 08:22:36236 ]
Peter Hanspers8d95e3b2018-05-15 08:22:36237 }
238
239 rtc_source_set("audio_session_observer") {
240 visibility = [ ":*" ]
241
Danil Chapovalov64f1f3f2020-01-16 13:41:10242 sources = [ "objc/native/src/audio/audio_session_observer.h" ]
Peter Hanspers8d95e3b2018-05-15 08:22:36243
Danil Chapovalov64f1f3f2020-01-16 13:41:10244 deps = [ "../rtc_base" ]
Peter Hanspers8d95e3b2018-05-15 08:22:36245 }
246
Mirko Bonadei86d053c2019-10-17 19:32:04247 rtc_library("audio_device") {
Peter Hanspers8d95e3b2018-05-15 08:22:36248 visibility = [ "*" ]
249
250 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29251 "objc/native/src/audio/audio_device_ios.h",
252 "objc/native/src/audio/audio_device_ios.mm",
253 "objc/native/src/audio/audio_device_module_ios.h",
254 "objc/native/src/audio/audio_device_module_ios.mm",
255 "objc/native/src/audio/helpers.h",
256 "objc/native/src/audio/helpers.mm",
257 "objc/native/src/audio/voice_processing_audio_unit.h",
258 "objc/native/src/audio/voice_processing_audio_unit.mm",
Peter Hanspers8d95e3b2018-05-15 08:22:36259 ]
260
261 deps = [
262 ":audio_objc",
263 ":audio_session_observer",
Anders Carlsson7bca8ca2018-08-30 07:30:29264 ":base_objc",
Peter Hanspers8d95e3b2018-05-15 08:22:36265 "../api:array_view",
Danil Chapovalova6cb1502019-06-27 13:16:34266 "../api/task_queue",
267 "../api/task_queue:default_task_queue_factory",
Peter Hanspers8d95e3b2018-05-15 08:22:36268 "../modules/audio_device:audio_device_api",
269 "../modules/audio_device:audio_device_buffer",
270 "../modules/audio_device:audio_device_generic",
Artem Titov94b57c02019-03-21 12:35:10271 "../rtc_base",
Peter Hanspers8d95e3b2018-05-15 08:22:36272 "../rtc_base:checks",
Kári Tristan Helgasonf49429d2019-03-28 10:03:27273 "../system_wrappers:field_trial",
Mirko Bonadei17f48782018-09-28 06:51:10274 "../system_wrappers:metrics",
Peter Hanspers8d95e3b2018-05-15 08:22:36275 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41276 absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
Peter Hanspers8d95e3b2018-05-15 08:22:36277
Sylvain Defresnec7f0dff2020-07-03 08:19:30278 frameworks = [ "AudioToolbox.framework" ]
Peter Hanspers8d95e3b2018-05-15 08:22:36279 }
280
Joe Chen0b3a6e32019-12-27 07:01:42281 # This target exists to expose :audio_session_objc and
282 # :audio_session_delegate_adapter_objc for backward compatibility,
283 # and should be deprecated.
284 group("audio_objc") {
285 public_deps = [ # no-presubmit-check TODO(webrtc:11238)
286 ":audio_session_delegate_adapter_objc",
287 ":audio_session_objc",
288 ]
289 }
290
291 rtc_library("audio_session_delegate_adapter_objc") {
292 sources = [
293 "objc/components/audio/RTCNativeAudioSessionDelegateAdapter.h",
294 "objc/components/audio/RTCNativeAudioSessionDelegateAdapter.mm",
295 ]
296
297 configs += [
298 "..:common_objc",
299 ":used_from_extension",
300 ]
301
302 public_configs = [ ":common_config_objc" ]
303
304 deps = [
305 ":audio_session_objc",
306 ":audio_session_observer",
307 ":base_objc",
308 ]
309 }
310
311 rtc_library("audio_session_objc") {
Joe Chen3b19b272020-01-09 16:31:06312 visibility = [ "*" ]
313
Kári Tristan Helgason99bf77c2018-02-16 09:49:22314 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29315 "objc/components/audio/RTCAudioSession+Configuration.mm",
316 "objc/components/audio/RTCAudioSession+Private.h",
317 "objc/components/audio/RTCAudioSession.h",
318 "objc/components/audio/RTCAudioSession.mm",
319 "objc/components/audio/RTCAudioSessionConfiguration.h",
320 "objc/components/audio/RTCAudioSessionConfiguration.m",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22321 ]
Joe Chen0b3a6e32019-12-27 07:01:42322
Anders Carlsson358f2e02018-06-04 08:24:37323 configs += [
324 "..:common_objc",
325 ":used_from_extension",
326 ]
denicija59ee91b2017-06-05 12:48:47327
Kári Tristan Helgason99bf77c2018-02-16 09:49:22328 public_configs = [ ":common_config_objc" ]
Anders Carlsson8ecfd802017-09-15 12:07:30329
Sylvain Defresnec7f0dff2020-07-03 08:19:30330 frameworks = [ "AVFoundation.framework" ]
Jiawei Ouc9e6b962018-10-09 19:33:06331
Kári Tristan Helgason99bf77c2018-02-16 09:49:22332 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29333 ":base_objc",
334 ":helpers_objc",
Artem Titov94b57c02019-03-21 12:35:10335 "../rtc_base",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22336 "../rtc_base:checks",
337 "../rtc_base:rtc_base_approved",
338 ]
denicija59ee91b2017-06-05 12:48:47339 }
Taylor Brandstetterea7fbfb2020-08-19 23:41:54340
341 rtc_source_set("network_monitor_observer") {
342 visibility = [ ":*" ]
343
344 sources = [ "objc/native/src/network_monitor_observer.h" ]
345
346 deps = [ "../rtc_base" ]
347 }
348
349 rtc_library("network_monitor_objc") {
350 visibility = [ "*" ]
351
352 sources = [
353 "objc/components/network/RTCNetworkMonitor+Private.h",
354 "objc/components/network/RTCNetworkMonitor.h",
355 "objc/components/network/RTCNetworkMonitor.mm",
356 ]
357
358 configs += [ ":used_from_extension" ]
359
360 frameworks = [ "Network.framework" ]
361
362 deps = [
363 ":base_objc",
364 ":helpers_objc",
365 ":network_monitor_observer",
366 "../rtc_base/system:gcd_helpers",
367 ]
368 }
denicija59ee91b2017-06-05 12:48:47369 }
zhihuanga4c113a2017-06-28 21:05:44370
Mirko Bonadei86d053c2019-10-17 19:32:04371 rtc_library("videosource_objc") {
zhihuanga4c113a2017-06-28 21:05:44372 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29373 "objc/api/peerconnection/RTCVideoSource+Private.h",
374 "objc/api/peerconnection/RTCVideoSource.h",
375 "objc/api/peerconnection/RTCVideoSource.mm",
zhihuanga4c113a2017-06-28 21:05:44376 ]
377
378 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29379 ":base_objc",
Anders Carlsson9823ee42018-03-07 09:32:03380 ":mediasource_objc",
381 ":native_video",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22382 ":videoframebuffer_objc",
zhihuanga4c113a2017-06-28 21:05:44383 "../api:libjingle_peerconnection_api",
Niels Möllere942b142019-09-17 12:30:41384 "../api:media_stream_interface",
Niels Möllerc6ce9c52018-05-11 09:15:30385 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38386 "../api/video:video_rtp_headers",
zhihuanga4c113a2017-06-28 21:05:44387 "../common_video",
388 "../media:rtc_media_base",
Artem Titov94b57c02019-03-21 12:35:10389 "../rtc_base",
Patrik Höglunda8005cf2017-12-13 15:05:42390 "../rtc_base:checks",
Mirko Bonadei401d0562017-12-14 10:24:00391 "//third_party/libyuv",
zhihuanga4c113a2017-06-28 21:05:44392 ]
393
Anders Carlsson358f2e02018-06-04 08:24:37394 configs += [
395 "..:common_objc",
396 ":used_from_extension",
397 ]
zhihuanga4c113a2017-06-28 21:05:44398 }
399
Mirko Bonadei86d053c2019-10-17 19:32:04400 rtc_library("videoframebuffer_objc") {
Mirko Bonadei2ad8c432018-08-09 08:54:40401 visibility = [ "*" ]
Kári Tristan Helgason99bf77c2018-02-16 09:49:22402 sources = [
Anders Carlsson4e5af962018-09-03 12:44:50403 "objc/api/video_frame_buffer/RTCNativeI420Buffer+Private.h",
404 "objc/api/video_frame_buffer/RTCNativeI420Buffer.h",
405 "objc/api/video_frame_buffer/RTCNativeI420Buffer.mm",
406 "objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.h",
407 "objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.mm",
Anders Carlsson7bca8ca2018-08-30 07:30:29408 "objc/components/video_frame_buffer/RTCCVPixelBuffer.h",
409 "objc/components/video_frame_buffer/RTCCVPixelBuffer.mm",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22410 ]
411 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29412 ":base_objc",
Niels Möllerc6ce9c52018-05-11 09:15:30413 "//api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38414 "//api/video:video_rtp_headers",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22415 "//common_video",
416 "//rtc_base:checks",
417 "//rtc_base:rtc_base_approved",
418 "//third_party/libyuv",
419 ]
Anders Carlsson358f2e02018-06-04 08:24:37420 configs += [
421 "..:common_objc",
422 ":used_from_extension",
423 ]
Sylvain Defresnec7f0dff2020-07-03 08:19:30424 frameworks = [
Kári Tristan Helgason8a1e35c2019-03-07 09:44:26425 "VideoToolbox.framework",
Oleh Prypinb3f78de2019-07-18 20:25:48426 "CoreGraphics.framework",
Kári Tristan Helgason8a1e35c2019-03-07 09:44:26427 "CoreVideo.framework",
428 ]
Kári Tristan Helgason99bf77c2018-02-16 09:49:22429 }
430
Mirko Bonadei86d053c2019-10-17 19:32:04431 rtc_library("video_objc") {
kthelgason2f088792017-05-30 08:48:47432 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29433 "objc/components/renderer/opengl/RTCDefaultShader.h",
434 "objc/components/renderer/opengl/RTCDefaultShader.mm",
435 "objc/components/renderer/opengl/RTCI420TextureCache.h",
436 "objc/components/renderer/opengl/RTCI420TextureCache.mm",
437 "objc/components/renderer/opengl/RTCOpenGLDefines.h",
438 "objc/components/renderer/opengl/RTCShader.h",
439 "objc/components/renderer/opengl/RTCShader.mm",
440 "objc/components/renderer/opengl/RTCVideoViewShading.h",
kthelgason2f088792017-05-30 08:48:47441 ]
Sylvain Defresnec7f0dff2020-07-03 08:19:30442 frameworks = [ "CoreVideo.framework" ]
denicijad2088152017-04-28 09:14:54443 if (is_ios) {
denicija070d5e32017-02-26 19:44:13444 sources += [
Anders Carlsson7bca8ca2018-08-30 07:30:29445 "objc/components/renderer/opengl/RTCNV12TextureCache.h",
446 "objc/components/renderer/opengl/RTCNV12TextureCache.m",
mbonadei2c8ac1b2017-05-31 12:14:26447 ]
Sylvain Defresnec7f0dff2020-07-03 08:19:30448 frameworks += [
mbonadei2c8ac1b2017-05-31 12:14:26449 "GLKit.framework",
450 "OpenGLES.framework",
451 "QuartzCore.framework",
452 ]
453 } else if (is_mac) {
Sylvain Defresnec7f0dff2020-07-03 08:19:30454 frameworks += [
mbonadei2c8ac1b2017-05-31 12:14:26455 "CoreMedia.framework",
mbonadei2c8ac1b2017-05-31 12:14:26456 "OpenGL.framework",
denicija070d5e32017-02-26 19:44:13457 ]
458 }
mbonadei2c8ac1b2017-05-31 12:14:26459
kthelgason2f088792017-05-30 08:48:47460 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29461 ":base_objc",
462 ":helpers_objc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22463 ":mediaconstraints_objc",
Anders Carlsson3ff50fb2018-02-01 14:47:05464 ":native_video",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22465 ":videoframebuffer_objc",
Anders Carlsson9823ee42018-03-07 09:32:03466 ":videosource_objc",
mbonadei2c8ac1b2017-05-31 12:14:26467 "../api:libjingle_peerconnection_api",
Niels Möllerc6ce9c52018-05-11 09:15:30468 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38469 "../api/video:video_rtp_headers",
mbonadei2c8ac1b2017-05-31 12:14:26470 "../common_video",
471 "../media:rtc_media_base",
Artem Titov94b57c02019-03-21 12:35:10472 "../rtc_base",
Patrik Höglunda8005cf2017-12-13 15:05:42473 "../rtc_base:checks",
tkchin9eeb6242016-04-27 08:54:20474 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41475 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
mbonadei2c8ac1b2017-05-31 12:14:26476
Anders Carlsson358f2e02018-06-04 08:24:37477 configs += [
478 "..:common_objc",
479 ":used_from_extension",
480 ]
ehmaldonadoda8dcfb2017-01-04 15:11:23481 }
ehmaldonadoda8dcfb2017-01-04 15:11:23482
Mirko Bonadei86d053c2019-10-17 19:32:04483 rtc_library("ui_objc") {
Per Kjellandera7f2d842018-01-10 15:54:53484 visibility = [ "*" ]
Anders Carlsson45340ca2019-01-14 13:23:23485 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
mbonadei2c8ac1b2017-05-31 12:14:26486 if (is_ios) {
487 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29488 "objc/components/renderer/opengl/RTCDisplayLinkTimer.h",
489 "objc/components/renderer/opengl/RTCDisplayLinkTimer.m",
490 "objc/components/renderer/opengl/RTCEAGLVideoView.h",
491 "objc/components/renderer/opengl/RTCEAGLVideoView.m",
mbonadei2c8ac1b2017-05-31 12:14:26492 ]
493 }
494 if (is_mac) {
495 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29496 "objc/components/renderer/opengl/RTCNSGLVideoView.h",
497 "objc/components/renderer/opengl/RTCNSGLVideoView.m",
mbonadei2c8ac1b2017-05-31 12:14:26498 ]
499 }
500 configs += [ "..:common_objc" ]
501 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29502 ":base_objc",
503 ":helpers_objc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22504 ":video_objc",
505 ":videocapture_objc",
506 ":videoframebuffer_objc",
mbonadei2c8ac1b2017-05-31 12:14:26507 ]
508 }
kthelgasonebc34e72016-09-15 11:30:18509
mbonadei2c8ac1b2017-05-31 12:14:26510 if (rtc_use_metal_rendering) {
Mirko Bonadei86d053c2019-10-17 19:32:04511 rtc_library("metal_objc") {
Mirko Bonadeid68956d2018-02-16 16:55:36512 visibility = [ "*" ]
Danil Chapovalov41300af2019-07-10 10:44:43513 allow_poison = [
514 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
515 "default_task_queue",
516 ]
mbonadei2c8ac1b2017-05-31 12:14:26517 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29518 "objc/components/renderer/metal/RTCMTLI420Renderer.h",
519 "objc/components/renderer/metal/RTCMTLI420Renderer.mm",
520 "objc/components/renderer/metal/RTCMTLRenderer+Private.h",
521 "objc/components/renderer/metal/RTCMTLRenderer.h",
522 "objc/components/renderer/metal/RTCMTLRenderer.mm",
mbonadei2c8ac1b2017-05-31 12:14:26523 ]
524 if (is_ios) {
525 sources += [
Anders Carlsson7bca8ca2018-08-30 07:30:29526 "objc/components/renderer/metal/RTCMTLNV12Renderer.h",
527 "objc/components/renderer/metal/RTCMTLNV12Renderer.mm",
528 "objc/components/renderer/metal/RTCMTLRGBRenderer.h",
529 "objc/components/renderer/metal/RTCMTLRGBRenderer.mm",
530 "objc/components/renderer/metal/RTCMTLVideoView.h",
531 "objc/components/renderer/metal/RTCMTLVideoView.m",
mbonadei2c8ac1b2017-05-31 12:14:26532 ]
533 }
Sylvain Defresnec7f0dff2020-07-03 08:19:30534 frameworks = [
mbonadei2c8ac1b2017-05-31 12:14:26535 "CoreVideo.framework",
536 "Metal.framework",
537 "MetalKit.framework",
538 ]
Niels Möllere4b4de62019-08-09 07:44:19539 if (is_mac) {
540 sources += [
541 "objc/components/renderer/metal/RTCMTLNSVideoView.h",
542 "objc/components/renderer/metal/RTCMTLNSVideoView.m",
543 ]
Sylvain Defresnec7f0dff2020-07-03 08:19:30544 frameworks += [ "AppKit.framework" ]
Niels Möllere4b4de62019-08-09 07:44:19545 }
mbonadei2c8ac1b2017-05-31 12:14:26546 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29547 ":base_objc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22548 ":peerconnectionfactory_base_objc",
kthelgason36d658d2017-08-24 12:43:45549 ":video_objc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22550 ":videoframebuffer_objc",
Niels Möllerc6ce9c52018-05-11 09:15:30551 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38552 "../api/video:video_rtp_headers",
Patrik Höglunda8005cf2017-12-13 15:05:42553 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 17:40:47554 "../rtc_base:rtc_base_approved",
mbonadei2c8ac1b2017-05-31 12:14:26555 ]
556 configs += [ "..:common_objc" ]
kthelgason36d658d2017-08-24 12:43:45557 public_configs = [ ":common_config_objc" ]
mbonadei2c8ac1b2017-05-31 12:14:26558 }
559 }
560
Anders Carlsson7bca8ca2018-08-30 07:30:29561 # TODO(bugs.webrtc.org/9627): Remove this target.
Mirko Bonadei86d053c2019-10-17 19:32:04562 rtc_library("videocapturebase_objc") {
Anders Carlsson73119182018-03-15 08:41:03563 visibility = [ "*" ]
Danil Chapovalov64f1f3f2020-01-16 13:41:10564 sources = [ "objc/helpers/noop.mm" ]
Anders Carlsson73119182018-03-15 08:41:03565
566 configs += [ "..:common_objc" ]
567
568 public_configs = [ ":common_config_objc" ]
569
570 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29571 ":base_objc",
Anders Carlsson73119182018-03-15 08:41:03572 ":videoframebuffer_objc",
573 ]
574 }
575
Mirko Bonadei86d053c2019-10-17 19:32:04576 rtc_library("videocapture_objc") {
Per Kjellandera7f2d842018-01-10 15:54:53577 visibility = [ "*" ]
Anders Carlsson45340ca2019-01-14 13:23:23578 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
mbonadei2c8ac1b2017-05-31 12:14:26579 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29580 "objc/components/capturer/RTCCameraVideoCapturer.h",
581 "objc/components/capturer/RTCCameraVideoCapturer.m",
Mirko Bonadei19640aa2020-10-19 14:12:43582 "objc/components/capturer/RTCFileVideoCapturer.h",
583 "objc/components/capturer/RTCFileVideoCapturer.m",
zhihuanga4c113a2017-06-28 21:05:44584 ]
Sylvain Defresnec7f0dff2020-07-03 08:19:30585 frameworks = [
Kári Tristan Helgason8a1e35c2019-03-07 09:44:26586 "AVFoundation.framework",
587 "CoreVideo.framework",
Mirko Bonadei19640aa2020-10-19 14:12:43588 "QuartzCore.framework",
Kári Tristan Helgason8a1e35c2019-03-07 09:44:26589 ]
zhihuanga4c113a2017-06-28 21:05:44590
zhihuanga4c113a2017-06-28 21:05:44591 configs += [ "..:common_objc" ]
592
kthelgason36d658d2017-08-24 12:43:45593 public_configs = [ ":common_config_objc" ]
zhihuanga4c113a2017-06-28 21:05:44594
zhihuanga4c113a2017-06-28 21:05:44595 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29596 ":base_objc",
597 ":helpers_objc",
kthelgason36d658d2017-08-24 12:43:45598 ":video_objc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22599 ":videoframebuffer_objc",
Yura Yaroshevichebf739b2020-03-16 15:00:59600 "../rtc_base/system:gcd_helpers",
zhihuanga4c113a2017-06-28 21:05:44601 ]
zhihuanga4c113a2017-06-28 21:05:44602 }
603
Mirko Bonadei86d053c2019-10-17 19:32:04604 rtc_library("videocodec_objc") {
Karl Wibergbb23c832018-04-22 17:55:00605 visibility = [ "*" ]
Mirko Bonadei96ede16a2018-09-06 11:45:44606 configs += [ "..:no_global_constructors" ]
Kári Tristan Helgason99bf77c2018-02-16 09:49:22607 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29608 "objc/components/video_codec/RTCCodecSpecificInfoH264+Private.h",
609 "objc/components/video_codec/RTCCodecSpecificInfoH264.h",
610 "objc/components/video_codec/RTCCodecSpecificInfoH264.mm",
611 "objc/components/video_codec/RTCH264ProfileLevelId.h",
612 "objc/components/video_codec/RTCH264ProfileLevelId.mm",
zhihuanga4c113a2017-06-28 21:05:44613 ]
Yura Yaroshevich0f77fea2018-04-26 12:41:01614 if (is_ios) {
615 sources += [
Anders Carlsson7bca8ca2018-08-30 07:30:29616 "objc/components/video_codec/UIDevice+H264Profile.h",
617 "objc/components/video_codec/UIDevice+H264Profile.mm",
Yura Yaroshevich0f77fea2018-04-26 12:41:01618 ]
619 }
Mirko Bonadeifc52b912019-03-01 09:32:56620
Kári Tristan Helgason99bf77c2018-02-16 09:49:22621 public_configs = [ ":common_config_objc" ]
622 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29623 ":base_objc",
624 ":helpers_objc",
kthelgasonfb143122017-07-25 14:55:58625 "../api/video_codecs:video_codecs_api",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22626 "../common_video",
Yura Yaroshevich0f77fea2018-04-26 12:41:01627 "../media:rtc_h264_profile_id",
zhihuanga4c113a2017-06-28 21:05:44628 "../media:rtc_media_base",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22629 "../modules:module_api",
630 "../modules/video_coding:video_codec_interface",
Anders Carlsson7bca8ca2018-08-30 07:30:29631 "../rtc_base:checks",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22632 "../rtc_base:rtc_base_approved",
zhihuanga4c113a2017-06-28 21:05:44633 ]
634 }
635
Mirko Bonadei86d053c2019-10-17 19:32:04636 rtc_library("default_codec_factory_objc") {
Anders Carlssondd8c1652018-01-30 09:32:13637 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29638 "objc/components/video_codec/RTCDefaultVideoDecoderFactory.h",
639 "objc/components/video_codec/RTCDefaultVideoDecoderFactory.m",
640 "objc/components/video_codec/RTCDefaultVideoEncoderFactory.h",
641 "objc/components/video_codec/RTCDefaultVideoEncoderFactory.m",
Anders Carlssondd8c1652018-01-30 09:32:13642 ]
643
644 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29645 ":base_objc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22646 ":native_video",
647 ":videocodec_objc",
Anders Carlsson7bca8ca2018-08-30 07:30:29648 ":videotoolbox_objc",
Magnus Jedvert8b4e92d2018-04-13 13:36:43649 ":vp8",
650 ":vp9",
Anders Carlsson7bca8ca2018-08-30 07:30:29651 ":vpx_codec_constants",
652 ]
653 }
654
Mirko Bonadei86d053c2019-10-17 19:32:04655 rtc_library("vpx_codec_constants") {
Mirko Bonadei96ede16a2018-09-06 11:45:44656 configs += [ "..:no_global_constructors" ]
Anders Carlsson7bca8ca2018-08-30 07:30:29657 sources = [
658 "objc/api/video_codec/RTCVideoCodecConstants.h",
659 "objc/api/video_codec/RTCVideoCodecConstants.mm",
660 ]
661
662 deps = [
663 ":base_objc",
664 "../media:rtc_media_base",
Anders Carlssondd8c1652018-01-30 09:32:13665 ]
Anders Carlssondd8c1652018-01-30 09:32:13666 }
667
Mirko Bonadei86d053c2019-10-17 19:32:04668 rtc_library("vp8") {
Kári Tristan Helgason99bf77c2018-02-16 09:49:22669 visibility = [ "*" ]
Karl Wiberg7ba22b82018-04-27 02:31:53670 allow_poison = [ "software_video_codecs" ]
Anders Carlssondd8c1652018-01-30 09:32:13671 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29672 "objc/api/video_codec/RTCVideoDecoderVP8.h",
673 "objc/api/video_codec/RTCVideoDecoderVP8.mm",
674 "objc/api/video_codec/RTCVideoEncoderVP8.h",
675 "objc/api/video_codec/RTCVideoEncoderVP8.mm",
Anders Carlssondd8c1652018-01-30 09:32:13676 ]
677
Anders Carlssondd8c1652018-01-30 09:32:13678 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29679 ":base_objc",
Anders Carlsson9823ee42018-03-07 09:32:03680 ":wrapped_native_codec_objc",
Anders Carlssondd8c1652018-01-30 09:32:13681 "../modules/video_coding:webrtc_vp8",
Anders Carlssondd8c1652018-01-30 09:32:13682 ]
683 }
684
Mirko Bonadei86d053c2019-10-17 19:32:04685 rtc_library("vp9") {
Kári Tristan Helgason99bf77c2018-02-16 09:49:22686 visibility = [ "*" ]
Karl Wiberg7ba22b82018-04-27 02:31:53687 allow_poison = [ "software_video_codecs" ]
Anders Carlssondd8c1652018-01-30 09:32:13688 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29689 "objc/api/video_codec/RTCVideoDecoderVP9.h",
690 "objc/api/video_codec/RTCVideoDecoderVP9.mm",
691 "objc/api/video_codec/RTCVideoEncoderVP9.h",
692 "objc/api/video_codec/RTCVideoEncoderVP9.mm",
Anders Carlssondd8c1652018-01-30 09:32:13693 ]
694
Anders Carlssondd8c1652018-01-30 09:32:13695 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29696 ":base_objc",
Anders Carlsson9823ee42018-03-07 09:32:03697 ":wrapped_native_codec_objc",
Anders Carlsson7bca8ca2018-08-30 07:30:29698 "../media:rtc_media_base",
Anders Carlssondd8c1652018-01-30 09:32:13699 "../modules/video_coding:webrtc_vp9",
Anders Carlssondd8c1652018-01-30 09:32:13700 ]
701 }
702
zhihuanga4c113a2017-06-28 21:05:44703 # Build the PeerConnectionFactory without audio/video support.
704 # This target depends on the objc_peeerconnectionfactory_base which still
705 # includes some audio/video related objects such as RTCAudioSource because
706 # these objects are just thin wrappers of native C++ interfaces required
707 # when implementing webrtc::PeerConnectionFactoryInterface and
708 # webrtc::PeerConnectionInterface.
Kári Tristan Helgasona2d89fc2018-03-06 09:18:43709 # The applications which only use WebRTC DataChannel can depend on this.
Mirko Bonadei86d053c2019-10-17 19:32:04710 rtc_library("peerconnectionfactory_no_media_objc") {
Per Kjellandera7f2d842018-01-10 15:54:53711 visibility = [ "*" ]
Danil Chapovalov41300af2019-07-10 10:44:43712 allow_poison = [
713 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
714 "default_task_queue",
715 ]
zhihuanga4c113a2017-06-28 21:05:44716 defines = [ "HAVE_NO_MEDIA" ]
717
Danil Chapovalov64f1f3f2020-01-16 13:41:10718 sources = [ "objc/helpers/noop.mm" ]
zhihuanga4c113a2017-06-28 21:05:44719
kthelgason36d658d2017-08-24 12:43:45720 public_configs = [ ":common_config_objc" ]
zhihuanga4c113a2017-06-28 21:05:44721
zhihuanga4c113a2017-06-28 21:05:44722 deps = [
Anders Carlsson3ff50fb2018-02-01 14:47:05723 ":native_api",
724 ":native_video",
kthelgason36d658d2017-08-24 12:43:45725 ":peerconnectionfactory_base_objc",
zhihuanga4c113a2017-06-28 21:05:44726 "../api:libjingle_peerconnection_api",
Artem Titov94b57c02019-03-21 12:35:10727 "../rtc_base",
zhihuanga4c113a2017-06-28 21:05:44728 ]
729 }
730
Mirko Bonadei86d053c2019-10-17 19:32:04731 rtc_library("mediaconstraints_objc") {
Mirko Bonadei96ede16a2018-09-06 11:45:44732 configs += [ "..:no_global_constructors" ]
Kári Tristan Helgason99bf77c2018-02-16 09:49:22733 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29734 "objc/api/peerconnection/RTCMediaConstraints+Private.h",
735 "objc/api/peerconnection/RTCMediaConstraints.h",
736 "objc/api/peerconnection/RTCMediaConstraints.mm",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22737 ]
Kári Tristan Helgason99bf77c2018-02-16 09:49:22738
739 public_configs = [ ":common_config_objc" ]
740 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29741 ":base_objc",
742 ":helpers_objc",
Niels Möllerdac03d92019-02-13 07:52:27743 ":media_constraints",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22744 ]
745 }
746
Anders Carlsson7bca8ca2018-08-30 07:30:29747 # TODO(bugs.webrtc.org/9627): Remove, targets should depend on base_objc.
Mirko Bonadei86d053c2019-10-17 19:32:04748 rtc_library("videorenderer_objc") {
Anders Carlsson7bca8ca2018-08-30 07:30:29749 visibility = [ "*" ]
Danil Chapovalov64f1f3f2020-01-16 13:41:10750 sources = [ "objc/helpers/noop.mm" ]
Anders Carlsson9823ee42018-03-07 09:32:03751
752 configs += [ "..:common_objc" ]
Anders Carlsson9823ee42018-03-07 09:32:03753 public_configs = [ ":common_config_objc" ]
Anders Carlsson7bca8ca2018-08-30 07:30:29754
Danil Chapovalov64f1f3f2020-01-16 13:41:10755 deps = [ ":base_objc" ]
Anders Carlsson9823ee42018-03-07 09:32:03756 }
757
Mirko Bonadei86d053c2019-10-17 19:32:04758 rtc_library("videorendereradapter_objc") {
Karl Wibergbb23c832018-04-22 17:55:00759 visibility = [ "*" ]
Anders Carlsson45340ca2019-01-14 13:23:23760 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
Anders Carlsson9823ee42018-03-07 09:32:03761 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29762 "objc/api/RTCVideoRendererAdapter+Private.h",
763 "objc/api/RTCVideoRendererAdapter.h",
764 "objc/api/RTCVideoRendererAdapter.mm",
Anders Carlsson9823ee42018-03-07 09:32:03765 ]
766
767 configs += [ "..:common_objc" ]
Anders Carlsson9823ee42018-03-07 09:32:03768 public_configs = [ ":common_config_objc" ]
769
770 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29771 ":base_objc",
Anders Carlsson9823ee42018-03-07 09:32:03772 ":native_api",
773 ":videoframebuffer_objc",
Anders Carlsson9823ee42018-03-07 09:32:03774 "../api:libjingle_peerconnection_api",
Niels Möllere942b142019-09-17 12:30:41775 "../api:media_stream_interface",
Anders Carlsson9823ee42018-03-07 09:32:03776 ]
777 }
778
Mirko Bonadei86d053c2019-10-17 19:32:04779 rtc_library("mediasource_objc") {
Anders Carlsson9823ee42018-03-07 09:32:03780 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29781 "objc/api/peerconnection/RTCMediaSource+Private.h",
782 "objc/api/peerconnection/RTCMediaSource.h",
783 "objc/api/peerconnection/RTCMediaSource.mm",
Anders Carlsson9823ee42018-03-07 09:32:03784 ]
785
Anders Carlsson358f2e02018-06-04 08:24:37786 configs += [
787 "..:common_objc",
788 ":used_from_extension",
789 ]
Anders Carlsson9823ee42018-03-07 09:32:03790 public_configs = [ ":common_config_objc" ]
791
792 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29793 ":base_objc",
Niels Möllere942b142019-09-17 12:30:41794 "../api:media_stream_interface",
Anders Carlsson9823ee42018-03-07 09:32:03795 "../rtc_base:checks",
796 ]
797 }
798
Mirko Bonadei86d053c2019-10-17 19:32:04799 rtc_library("base_native_additions_objc") {
Anders Carlsson7bca8ca2018-08-30 07:30:29800 sources = [
801 "objc/api/peerconnection/RTCEncodedImage+Private.h",
802 "objc/api/peerconnection/RTCEncodedImage+Private.mm",
Anders Carlsson7bca8ca2018-08-30 07:30:29803 "objc/api/peerconnection/RTCVideoCodecInfo+Private.h",
804 "objc/api/peerconnection/RTCVideoCodecInfo+Private.mm",
805 "objc/api/peerconnection/RTCVideoEncoderSettings+Private.h",
806 "objc/api/peerconnection/RTCVideoEncoderSettings+Private.mm",
807 ]
808
809 configs += [ "..:common_objc" ]
810
811 public_configs = [ ":common_config_objc" ]
812
813 deps = [
814 ":base_objc",
815 ":helpers_objc",
Niels Möller4dc66c52018-10-05 12:17:58816 "../api/video:encoded_image",
Anders Carlsson7bca8ca2018-08-30 07:30:29817 "../api/video_codecs:video_codecs_api",
Anders Carlsson7bca8ca2018-08-30 07:30:29818 "../modules:module_api",
819 "../modules/video_coding:video_codec_interface",
Artem Titov94b57c02019-03-21 12:35:10820 "../rtc_base",
Anders Carlsson7bca8ca2018-08-30 07:30:29821 ]
Anders Carlsson7bca8ca2018-08-30 07:30:29822 }
823
Mirko Bonadei86d053c2019-10-17 19:32:04824 rtc_library("peerconnectionfactory_base_objc") {
Karl Wibergbb23c832018-04-22 17:55:00825 visibility = [ "*" ]
Danil Chapovalov41300af2019-07-10 10:44:43826 allow_poison = [
827 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
828 "default_task_queue",
829 ]
Mirko Bonadei96ede16a2018-09-06 11:45:44830 configs += [
831 "..:no_exit_time_destructors",
832 "..:no_global_constructors",
833 ]
zhihuanga4c113a2017-06-28 21:05:44834 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:29835 "objc/api/peerconnection/RTCAudioSource+Private.h",
836 "objc/api/peerconnection/RTCAudioSource.h",
837 "objc/api/peerconnection/RTCAudioSource.mm",
838 "objc/api/peerconnection/RTCAudioTrack+Private.h",
839 "objc/api/peerconnection/RTCAudioTrack.h",
840 "objc/api/peerconnection/RTCAudioTrack.mm",
841 "objc/api/peerconnection/RTCCertificate.h",
842 "objc/api/peerconnection/RTCCertificate.mm",
843 "objc/api/peerconnection/RTCConfiguration+Native.h",
844 "objc/api/peerconnection/RTCConfiguration+Private.h",
845 "objc/api/peerconnection/RTCConfiguration.h",
846 "objc/api/peerconnection/RTCConfiguration.mm",
Benjamin Wright8c27cca2018-10-25 17:16:44847 "objc/api/peerconnection/RTCCryptoOptions.h",
848 "objc/api/peerconnection/RTCCryptoOptions.mm",
Anders Carlsson7bca8ca2018-08-30 07:30:29849 "objc/api/peerconnection/RTCDataChannel+Private.h",
850 "objc/api/peerconnection/RTCDataChannel.h",
851 "objc/api/peerconnection/RTCDataChannel.mm",
852 "objc/api/peerconnection/RTCDataChannelConfiguration+Private.h",
853 "objc/api/peerconnection/RTCDataChannelConfiguration.h",
854 "objc/api/peerconnection/RTCDataChannelConfiguration.mm",
855 "objc/api/peerconnection/RTCDtmfSender+Private.h",
856 "objc/api/peerconnection/RTCDtmfSender.h",
857 "objc/api/peerconnection/RTCDtmfSender.mm",
858 "objc/api/peerconnection/RTCFieldTrials.h",
859 "objc/api/peerconnection/RTCFieldTrials.mm",
860 "objc/api/peerconnection/RTCIceCandidate+Private.h",
861 "objc/api/peerconnection/RTCIceCandidate.h",
862 "objc/api/peerconnection/RTCIceCandidate.mm",
863 "objc/api/peerconnection/RTCIceServer+Private.h",
864 "objc/api/peerconnection/RTCIceServer.h",
865 "objc/api/peerconnection/RTCIceServer.mm",
Anders Carlsson7bca8ca2018-08-30 07:30:29866 "objc/api/peerconnection/RTCLegacyStatsReport+Private.h",
867 "objc/api/peerconnection/RTCLegacyStatsReport.h",
868 "objc/api/peerconnection/RTCLegacyStatsReport.mm",
869 "objc/api/peerconnection/RTCMediaStream+Private.h",
870 "objc/api/peerconnection/RTCMediaStream.h",
871 "objc/api/peerconnection/RTCMediaStream.mm",
872 "objc/api/peerconnection/RTCMediaStreamTrack+Private.h",
873 "objc/api/peerconnection/RTCMediaStreamTrack.h",
874 "objc/api/peerconnection/RTCMediaStreamTrack.mm",
875 "objc/api/peerconnection/RTCMetrics.h",
876 "objc/api/peerconnection/RTCMetrics.mm",
877 "objc/api/peerconnection/RTCMetricsSampleInfo+Private.h",
878 "objc/api/peerconnection/RTCMetricsSampleInfo.h",
879 "objc/api/peerconnection/RTCMetricsSampleInfo.mm",
880 "objc/api/peerconnection/RTCPeerConnection+DataChannel.mm",
Anders Carlsson7bca8ca2018-08-30 07:30:29881 "objc/api/peerconnection/RTCPeerConnection+Private.h",
882 "objc/api/peerconnection/RTCPeerConnection+Stats.mm",
883 "objc/api/peerconnection/RTCPeerConnection.h",
884 "objc/api/peerconnection/RTCPeerConnection.mm",
885 "objc/api/peerconnection/RTCPeerConnectionFactory+Native.h",
886 "objc/api/peerconnection/RTCPeerConnectionFactory+Private.h",
887 "objc/api/peerconnection/RTCPeerConnectionFactory.h",
888 "objc/api/peerconnection/RTCPeerConnectionFactory.mm",
889 "objc/api/peerconnection/RTCPeerConnectionFactoryBuilder+DefaultComponents.h",
890 "objc/api/peerconnection/RTCPeerConnectionFactoryBuilder+DefaultComponents.mm",
891 "objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.h",
892 "objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm",
893 "objc/api/peerconnection/RTCPeerConnectionFactoryOptions+Private.h",
894 "objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h",
895 "objc/api/peerconnection/RTCPeerConnectionFactoryOptions.mm",
896 "objc/api/peerconnection/RTCRtcpParameters+Private.h",
897 "objc/api/peerconnection/RTCRtcpParameters.h",
898 "objc/api/peerconnection/RTCRtcpParameters.mm",
899 "objc/api/peerconnection/RTCRtpCodecParameters+Private.h",
900 "objc/api/peerconnection/RTCRtpCodecParameters.h",
901 "objc/api/peerconnection/RTCRtpCodecParameters.mm",
902 "objc/api/peerconnection/RTCRtpEncodingParameters+Private.h",
903 "objc/api/peerconnection/RTCRtpEncodingParameters.h",
904 "objc/api/peerconnection/RTCRtpEncodingParameters.mm",
905 "objc/api/peerconnection/RTCRtpHeaderExtension+Private.h",
906 "objc/api/peerconnection/RTCRtpHeaderExtension.h",
907 "objc/api/peerconnection/RTCRtpHeaderExtension.mm",
908 "objc/api/peerconnection/RTCRtpParameters+Private.h",
909 "objc/api/peerconnection/RTCRtpParameters.h",
910 "objc/api/peerconnection/RTCRtpParameters.mm",
Benjamin Wrightddf1a3e2018-10-02 17:20:58911 "objc/api/peerconnection/RTCRtpReceiver+Native.h",
Anders Carlsson7bca8ca2018-08-30 07:30:29912 "objc/api/peerconnection/RTCRtpReceiver+Private.h",
913 "objc/api/peerconnection/RTCRtpReceiver.h",
914 "objc/api/peerconnection/RTCRtpReceiver.mm",
Benjamin Wrightddf1a3e2018-10-02 17:20:58915 "objc/api/peerconnection/RTCRtpSender+Native.h",
Anders Carlsson7bca8ca2018-08-30 07:30:29916 "objc/api/peerconnection/RTCRtpSender+Private.h",
917 "objc/api/peerconnection/RTCRtpSender.h",
918 "objc/api/peerconnection/RTCRtpSender.mm",
919 "objc/api/peerconnection/RTCRtpTransceiver+Private.h",
920 "objc/api/peerconnection/RTCRtpTransceiver.h",
921 "objc/api/peerconnection/RTCRtpTransceiver.mm",
922 "objc/api/peerconnection/RTCSSLAdapter.h",
923 "objc/api/peerconnection/RTCSSLAdapter.mm",
924 "objc/api/peerconnection/RTCSessionDescription+Private.h",
925 "objc/api/peerconnection/RTCSessionDescription.h",
926 "objc/api/peerconnection/RTCSessionDescription.mm",
Peter Hanspersbed86042019-02-21 16:27:09927 "objc/api/peerconnection/RTCStatisticsReport+Private.h",
928 "objc/api/peerconnection/RTCStatisticsReport.h",
929 "objc/api/peerconnection/RTCStatisticsReport.mm",
Anders Carlsson7bca8ca2018-08-30 07:30:29930 "objc/api/peerconnection/RTCTracing.h",
931 "objc/api/peerconnection/RTCTracing.mm",
932 "objc/api/peerconnection/RTCVideoTrack+Private.h",
933 "objc/api/peerconnection/RTCVideoTrack.h",
934 "objc/api/peerconnection/RTCVideoTrack.mm",
kthelgason5fe4d492016-12-05 19:27:30935 ]
kthelgasonebc34e72016-09-15 11:30:18936
Anders Carlsson358f2e02018-06-04 08:24:37937 configs += [
938 "..:common_objc",
939 ":used_from_extension",
940 ]
kthelgason36d658d2017-08-24 12:43:45941 public_configs = [ ":common_config_objc" ]
kthelgasonc0977102017-04-24 07:57:16942
mbonadei2c8ac1b2017-05-31 12:14:26943 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:29944 ":base_native_additions_objc",
945 ":base_objc",
946 ":file_logger_objc",
947 ":helpers_objc",
Mirko Bonadei1253aea2020-10-19 07:05:17948 ":legacy_header_paths",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22949 ":mediaconstraints_objc",
Anders Carlsson9823ee42018-03-07 09:32:03950 ":mediasource_objc",
Anders Carlsson3ff50fb2018-02-01 14:47:05951 ":native_api",
952 ":native_video",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22953 ":video_objc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:22954 ":videoframebuffer_objc",
Anders Carlsson9823ee42018-03-07 09:32:03955 ":videorendereradapter_objc",
956 ":videosource_objc",
Anders Carlsson7bca8ca2018-08-30 07:30:29957 ":videotoolbox_objc",
Mirko Bonadeie51f7852017-12-06 10:23:19958 "../api:libjingle_peerconnection_api",
Niels Möllere942b142019-09-17 12:30:41959 "../api:media_stream_interface",
Niels Möller695cf6a2019-05-13 10:27:23960 "../api:rtc_event_log_output_file",
Peter Hanspersbed86042019-02-21 16:27:09961 "../api:rtc_stats_api",
Niels Möller6dcd4dc2019-08-26 08:45:28962 "../api:rtp_parameters",
Mirko Bonadeid9708072019-01-25 19:26:48963 "../api:scoped_refptr",
Jiawei Ouae810c12018-06-20 23:18:59964 "../api/audio_codecs:audio_codecs_api",
Karl Wiberg5817d3d2018-04-06 08:06:42965 "../api/audio_codecs:builtin_audio_decoder_factory",
Jiawei Ouae810c12018-06-20 23:18:59966 "../api/audio_codecs:builtin_audio_encoder_factory",
Mirko Bonadeieaaaf412019-09-13 12:42:15967 "../api/crypto:frame_decryptor_interface",
968 "../api/crypto:frame_encryptor_interface",
Danil Chapovalov4ba04b72019-06-26 13:49:47969 "../api/rtc_event_log:rtc_event_log_factory",
Danil Chapovalovaaa11432019-05-17 11:20:14970 "../api/task_queue:default_task_queue_factory",
Erik Språngceb44952020-09-22 09:36:35971 "../api/transport:field_trial_based_config",
Niels Möllerc6ce9c52018-05-11 09:15:30972 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38973 "../api/video:video_rtp_headers",
Anders Carlsson7e042812017-10-05 14:55:38974 "../api/video_codecs:video_codecs_api",
Anders Carlssone5960ce2017-06-22 13:26:30975 "../common_video",
mbonadei2c8ac1b2017-05-31 12:14:26976 "../media:rtc_media_base",
kthelgasonfb143122017-07-25 14:55:58977 "../modules:module_api",
Jiawei Ouae810c12018-06-20 23:18:59978 "../modules/audio_device:audio_device_api",
Artem Titov94b57c02019-03-21 12:35:10979 "../modules/audio_processing",
Alessio Bazzicab768e882018-11-07 14:29:54980 "../modules/audio_processing:api",
Patrik Höglund99175c62018-01-08 10:05:10981 "../modules/video_coding:video_codec_interface",
zhihuanga4c113a2017-06-28 21:05:44982 "../pc:peerconnection",
Artem Titov94b57c02019-03-21 12:35:10983 "../rtc_base",
Patrik Höglunda8005cf2017-12-13 15:05:42984 "../rtc_base:checks",
Mirko Bonadei17f48782018-09-28 06:51:10985 "../system_wrappers:field_trial",
986 "../system_wrappers:metrics",
mbonadei2c8ac1b2017-05-31 12:14:26987 ]
Peter Hanspers8d95e3b2018-05-15 08:22:36988
989 if (is_ios) {
990 deps += [ ":native_api_audio_device_module" ]
991 }
kthelgasonebc34e72016-09-15 11:30:18992 }
Zeke Chindd0e1e02016-10-11 20:27:26993
Mirko Bonadei1253aea2020-10-19 07:05:17994 # TODO(bugs.webrtc.org/9627): Remove this target.
995 rtc_source_set("legacy_header_paths") {
996 sources = [
997 "objc/Framework/Classes/Common/NSString+StdString.h",
998 "objc/Framework/Classes/Common/scoped_cftyperef.h",
999 "objc/Framework/Classes/PeerConnection/RTCConfiguration+Native.h",
1000 "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h",
1001 "objc/Framework/Classes/Video/RTCDefaultShader.h",
1002 "objc/Framework/Classes/Video/RTCNV12TextureCache.h",
1003 "objc/Framework/Classes/VideoToolbox/nalu_rewriter.h",
1004 "objc/Framework/Headers/WebRTC/RTCAudioSession.h",
1005 "objc/Framework/Headers/WebRTC/RTCAudioSessionConfiguration.h",
1006 "objc/Framework/Headers/WebRTC/RTCAudioSource.h",
1007 "objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
1008 "objc/Framework/Headers/WebRTC/RTCCVPixelBuffer.h",
1009 "objc/Framework/Headers/WebRTC/RTCCallbackLogger.h",
1010 "objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h",
1011 "objc/Framework/Headers/WebRTC/RTCCameraVideoCapturer.h",
1012 "objc/Framework/Headers/WebRTC/RTCCertificate.h",
1013 "objc/Framework/Headers/WebRTC/RTCConfiguration.h",
1014 "objc/Framework/Headers/WebRTC/RTCDataChannel.h",
1015 "objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h",
1016 "objc/Framework/Headers/WebRTC/RTCDefaultVideoDecoderFactory.h",
1017 "objc/Framework/Headers/WebRTC/RTCDefaultVideoEncoderFactory.h",
1018 "objc/Framework/Headers/WebRTC/RTCDispatcher.h",
1019 "objc/Framework/Headers/WebRTC/RTCDtmfSender.h",
1020 "objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h",
1021 "objc/Framework/Headers/WebRTC/RTCFieldTrials.h",
1022 "objc/Framework/Headers/WebRTC/RTCFileLogger.h",
1023 "objc/Framework/Headers/WebRTC/RTCFileVideoCapturer.h",
1024 "objc/Framework/Headers/WebRTC/RTCH264ProfileLevelId.h",
1025 "objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
1026 "objc/Framework/Headers/WebRTC/RTCIceServer.h",
1027 "objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h",
1028 "objc/Framework/Headers/WebRTC/RTCLogging.h",
1029 "objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h",
1030 "objc/Framework/Headers/WebRTC/RTCMTLVideoView.h",
1031 "objc/Framework/Headers/WebRTC/RTCMacros.h",
1032 "objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
1033 "objc/Framework/Headers/WebRTC/RTCMediaSource.h",
1034 "objc/Framework/Headers/WebRTC/RTCMediaStream.h",
1035 "objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
1036 "objc/Framework/Headers/WebRTC/RTCMetrics.h",
1037 "objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h",
1038 "objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h",
1039 "objc/Framework/Headers/WebRTC/RTCPeerConnection.h",
1040 "objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h",
1041 "objc/Framework/Headers/WebRTC/RTCPeerConnectionFactoryOptions.h",
1042 "objc/Framework/Headers/WebRTC/RTCRtcpParameters.h",
1043 "objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h",
1044 "objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h",
1045 "objc/Framework/Headers/WebRTC/RTCRtpHeaderExtension.h",
1046 "objc/Framework/Headers/WebRTC/RTCRtpParameters.h",
1047 "objc/Framework/Headers/WebRTC/RTCRtpReceiver.h",
1048 "objc/Framework/Headers/WebRTC/RTCRtpSender.h",
1049 "objc/Framework/Headers/WebRTC/RTCRtpTransceiver.h",
1050 "objc/Framework/Headers/WebRTC/RTCSSLAdapter.h",
1051 "objc/Framework/Headers/WebRTC/RTCSessionDescription.h",
1052 "objc/Framework/Headers/WebRTC/RTCTracing.h",
1053 "objc/Framework/Headers/WebRTC/RTCVideoCapturer.h",
1054 "objc/Framework/Headers/WebRTC/RTCVideoCodec.h",
1055 "objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h",
1056 "objc/Framework/Headers/WebRTC/RTCVideoCodecH264.h",
1057 "objc/Framework/Headers/WebRTC/RTCVideoCodecInfo.h",
1058 "objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h",
1059 "objc/Framework/Headers/WebRTC/RTCVideoDecoderVP9.h",
1060 "objc/Framework/Headers/WebRTC/RTCVideoEncoderVP8.h",
1061 "objc/Framework/Headers/WebRTC/RTCVideoEncoderVP9.h",
1062 "objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
1063 "objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h",
1064 "objc/Framework/Headers/WebRTC/RTCVideoRenderer.h",
1065 "objc/Framework/Headers/WebRTC/RTCVideoSource.h",
1066 "objc/Framework/Headers/WebRTC/RTCVideoTrack.h",
1067 "objc/Framework/Headers/WebRTC/RTCVideoViewShading.h",
1068 "objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h",
1069 "objc/Framework/Native/api/audio_device_module.h",
1070 "objc/Framework/Native/api/video_decoder_factory.h",
1071 "objc/Framework/Native/api/video_encoder_factory.h",
1072 "objc/Framework/Native/api/video_frame_buffer.h",
1073 "objc/Framework/Native/src/objc_video_decoder_factory.h",
1074 "objc/Framework/Native/src/objc_video_encoder_factory.h",
1075 ]
1076 }
1077
mbonadei2c8ac1b2017-05-31 12:14:261078 if (rtc_include_tests) {
Daniela012b56b2017-11-15 12:15:241079 if (is_ios) {
Mirko Bonadei86d053c2019-10-17 19:32:041080 rtc_library("sdk_unittests_sources") {
Danielaae012cf2017-10-12 11:46:001081 testonly = true
Anders Carlsson7bca8ca2018-08-30 07:30:291082 include_dirs = [ "objc/" ]
Daniela012b56b2017-11-15 12:15:241083
Danielaae012cf2017-10-12 11:46:001084 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:291085 "objc/unittests/ObjCVideoTrackSource_xctest.mm",
1086 "objc/unittests/RTCCVPixelBuffer_xctest.mm",
1087 "objc/unittests/RTCCallbackLogger_xctest.m",
Kári Tristan Helgasonecbdbf62020-02-20 15:34:451088 "objc/unittests/RTCEncodedImage_xctest.mm",
Anders Carlsson7bca8ca2018-08-30 07:30:291089 "objc/unittests/RTCFileVideoCapturer_xctest.mm",
1090 "objc/unittests/RTCH264ProfileLevelId_xctest.m",
Aaron Goldenfb4e9bc2019-01-04 20:03:311091 "objc/unittests/RTCNV12TextureCache_xctest.m",
Anders Carlsson7bca8ca2018-08-30 07:30:291092 "objc/unittests/RTCPeerConnectionFactory_xctest.m",
1093 "objc/unittests/frame_buffer_helpers.h",
1094 "objc/unittests/frame_buffer_helpers.mm",
Artem Titarenko42b43152018-10-29 17:18:091095 "objc/unittests/nalu_rewriter_xctest.mm",
Danielaae012cf2017-10-12 11:46:001096 ]
Daniela012b56b2017-11-15 12:15:241097
Peter Hanspers8d95e3b2018-05-15 08:22:361098 # TODO(peterhanspers): Reenable these tests on simulator.
1099 # See bugs.webrtc.org/7812
1100 if (!use_ios_simulator) {
1101 sources += [
Anders Carlsson7bca8ca2018-08-30 07:30:291102 "objc/unittests/RTCAudioDeviceModule_xctest.mm",
1103 "objc/unittests/RTCAudioDevice_xctest.mm",
Peter Hanspers8d95e3b2018-05-15 08:22:361104 ]
1105 }
1106
Danielaae012cf2017-10-12 11:46:001107 deps = [
Peter Hanspers8d95e3b2018-05-15 08:22:361108 ":audio_device",
Joe Chen0b3a6e32019-12-27 07:01:421109 ":audio_session_objc",
Kári Tristan Helgasonecbdbf62020-02-20 15:34:451110 ":base_native_additions_objc",
Anders Carlsson7bca8ca2018-08-30 07:30:291111 ":base_objc",
1112 ":callback_logger_objc",
Anders Carlssondc6b4772018-01-15 12:31:031113 ":framework_objc",
Anders Carlsson7bca8ca2018-08-30 07:30:291114 ":mediaconstraints_objc",
Anders Carlssonfe9d8172018-04-03 09:40:391115 ":native_api",
Peter Hanspers8d95e3b2018-05-15 08:22:361116 ":native_api_audio_device_module",
Anders Carlssonfe9d8172018-04-03 09:40:391117 ":native_video",
Anders Carlsson7bca8ca2018-08-30 07:30:291118 ":peerconnectionfactory_base_objc",
Aaron Goldenfb4e9bc2019-01-04 20:03:311119 ":video_objc",
Artem Titarenko42b43152018-10-29 17:18:091120 ":video_toolbox_cc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:221121 ":videocapture_objc",
Anders Carlsson79ce8202018-06-01 10:51:091122 ":videocodec_objc",
Anders Carlssonfe9d8172018-04-03 09:40:391123 ":videoframebuffer_objc",
Anders Carlsson9823ee42018-03-07 09:32:031124 ":videosource_objc",
Danielaae012cf2017-10-12 11:46:001125 ":videotoolbox_objc",
Mirko Bonadeid9708072019-01-25 19:26:481126 "../api:scoped_refptr",
Byoungchan Lee43bd7602019-10-08 14:58:411127 "../api/task_queue:default_task_queue_factory",
Ilya Nikolaevskiy38e9b062020-10-08 14:36:331128 "../api/video:video_frame",
Artem Titov94b57c02019-03-21 12:35:101129 "../common_video",
Danielaae012cf2017-10-12 11:46:001130 "../media:rtc_media_base",
Anders Carlssonfe9d8172018-04-03 09:40:391131 "../media:rtc_media_tests_utils",
Danielaae012cf2017-10-12 11:46:001132 "../modules:module_api",
Artem Titov94b57c02019-03-21 12:35:101133 "../rtc_base",
Mirko Bonadeie3abb812018-11-23 12:15:081134 "../rtc_base:gunit_helpers",
Artem Titov94b57c02019-03-21 12:35:101135 "../system_wrappers",
Anders Carlssonfe9d8172018-04-03 09:40:391136 "//third_party/libyuv",
Danielaae012cf2017-10-12 11:46:001137 ]
Kári Tristan Helgason99bf77c2018-02-16 09:49:221138
1139 if (rtc_use_metal_rendering) {
Anders Carlsson7bca8ca2018-08-30 07:30:291140 sources += [ "objc/unittests/RTCMTLVideoView_xctest.m" ]
Kári Tristan Helgason99bf77c2018-02-16 09:49:221141 deps += [ ":metal_objc" ]
1142 }
1143
Danielaae012cf2017-10-12 11:46:001144 public_deps = [
1145 "//build/config/ios:xctest",
1146 "//third_party/ocmock",
1147 ]
1148 }
1149
Daniela012b56b2017-11-15 12:15:241150 bundle_data("sdk_unittests_bundle_data") {
Daniela012b56b2017-11-15 12:15:241151 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:291152 "objc/unittests/audio_short16.pcm",
1153 "objc/unittests/audio_short44.pcm",
1154 "objc/unittests/audio_short48.pcm",
Peter Hanspers8d95e3b2018-05-15 08:22:361155
1156 # Sample video taken from https://media.xiph.org/video/derf/
Anders Carlsson7bca8ca2018-08-30 07:30:291157 "objc/unittests/foreman.mp4",
Daniela012b56b2017-11-15 12:15:241158 ]
Danil Chapovalov64f1f3f2020-01-16 13:41:101159 outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
Daniela012b56b2017-11-15 12:15:241160 }
1161
Anders Carlsson7bca8ca2018-08-30 07:30:291162 # These tests use static linking.
Mirko Bonadeiaef8a212020-09-16 13:09:531163 rtc_test("sdk_unittests") {
1164 is_xctest = true
Danielaae012cf2017-10-12 11:46:001165 info_plist = "//test/ios/Info.plist"
Danil Chapovalov64f1f3f2020-01-16 13:41:101166 sources = [ "objc/unittests/main.mm" ]
Daniela012b56b2017-11-15 12:15:241167
Artem Titarenkoa2bc3622019-08-19 12:24:001168 extra_substitutions = [ "GTEST_BUNDLE_ID_SUFFIX=generic-unit-test" ]
Danielaae012cf2017-10-12 11:46:001169 deps = [
Yura Yaroshevich5297bd22018-06-19 09:51:511170 ":peerconnectionfactory_base_objc",
Daniela012b56b2017-11-15 12:15:241171 ":sdk_unittests_bundle_data",
Danielaae012cf2017-10-12 11:46:001172 ":sdk_unittests_sources",
Niels Möller5a8f8602019-06-12 09:30:591173 "../rtc_base",
Artem Titarenko34fc3462018-11-06 11:29:291174 "//test:test_support",
Danielaae012cf2017-10-12 11:46:001175 ]
1176 ldflags = [ "-all_load" ]
1177 }
Anders Carlsson7bca8ca2018-08-30 07:30:291178
1179 # These tests link to the framework.
Mirko Bonadeiaef8a212020-09-16 13:09:531180 rtc_test("sdk_framework_unittests") {
1181 is_xctest = true
Anders Carlsson7bca8ca2018-08-30 07:30:291182 info_plist = "//test/ios/Info.plist"
1183 sources = [
1184 "objc/unittests/RTCDoNotPutCPlusPlusInFrameworkHeaders_xctest.m",
Artem Titarenko34fc3462018-11-06 11:29:291185 "objc/unittests/main.mm",
Anders Carlsson7bca8ca2018-08-30 07:30:291186 ]
1187
Artem Titarenkoa2bc3622019-08-19 12:24:001188 extra_substitutions = [ "GTEST_BUNDLE_ID_SUFFIX=generic-unit-test" ]
Anders Carlsson7bca8ca2018-08-30 07:30:291189 deps = [
1190 ":framework_objc+link",
1191 ":ios_framework_bundle",
Niels Möller5a8f8602019-06-12 09:30:591192 "../rtc_base",
Artem Titarenko34fc3462018-11-06 11:29:291193 "//test:test_support",
Anders Carlsson7bca8ca2018-08-30 07:30:291194 ]
1195 }
Danielaae012cf2017-10-12 11:46:001196 }
1197
1198 # TODO(denicija): once all tests are migrated to xctest remove this source set.
Mirko Bonadei86d053c2019-10-17 19:32:041199 rtc_library("rtc_unittests_objc") {
mbonadei2c8ac1b2017-05-31 12:14:261200 testonly = true
Kári Tristan Helgasoncbe74352016-11-09 09:43:261201
mbonadei2c8ac1b2017-05-31 12:14:261202 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:291203 "objc/unittests/RTCCertificateTest.mm",
1204 "objc/unittests/RTCConfigurationTest.mm",
1205 "objc/unittests/RTCDataChannelConfigurationTest.mm",
1206 "objc/unittests/RTCIceCandidateTest.mm",
1207 "objc/unittests/RTCIceServerTest.mm",
Anders Carlsson7bca8ca2018-08-30 07:30:291208 "objc/unittests/RTCMediaConstraintsTest.mm",
1209 "objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm",
1210 "objc/unittests/RTCPeerConnectionTest.mm",
1211 "objc/unittests/RTCSessionDescriptionTest.mm",
1212 "objc/unittests/RTCTracingTest.mm",
1213 "objc/unittests/objc_video_decoder_factory_tests.mm",
1214 "objc/unittests/objc_video_encoder_factory_tests.mm",
1215 "objc/unittests/scoped_cftyperef_tests.mm",
mbonadei2c8ac1b2017-05-31 12:14:261216 ]
Anders Carlssone7dd83f2018-01-19 10:28:441217 if (is_ios) {
Anders Carlsson7bca8ca2018-08-30 07:30:291218 sources += [ "objc/unittests/RTCCameraVideoCapturerTests.mm" ]
oprypin45197522017-06-22 08:47:201219 }
mbonadeid7620582017-05-30 08:50:351220
mbonadei2c8ac1b2017-05-31 12:14:261221 # |-ObjC| flag needed to make sure category method implementations
1222 # are included:
1223 # https://developer.apple.com/library/mac/qa/qa1490/_index.html
1224 ldflags = [ "-ObjC" ]
magjed3149e092017-05-08 12:32:051225
mbonadei2c8ac1b2017-05-31 12:14:261226 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:291227 ":base_objc",
1228 ":helpers_objc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:221229 ":mediaconstraints_objc",
1230 ":native_api",
Anders Carlsson3ff50fb2018-02-01 14:47:051231 ":native_video",
Kári Tristan Helgason99bf77c2018-02-16 09:49:221232 ":peerconnectionfactory_base_objc",
1233 ":video_objc",
1234 ":videocapture_objc",
1235 ":videocodec_objc",
1236 ":videoframebuffer_objc",
Anders Carlsson9823ee42018-03-07 09:32:031237 ":videosource_objc",
kthelgason36d658d2017-08-24 12:43:451238 ":videotoolbox_objc",
Piotr (Peter) Slatalae0c2e972018-10-08 16:43:211239 "../api:libjingle_peerconnection_api",
Jiawei Ouae810c12018-06-20 23:18:591240 "../api/audio_codecs:audio_codecs_api",
1241 "../api/audio_codecs:builtin_audio_decoder_factory",
1242 "../api/audio_codecs:builtin_audio_encoder_factory",
Magnus Jedvert8b4e92d2018-04-13 13:36:431243 "../api/video_codecs:video_codecs_api",
kthelgasonebd4f792017-09-04 11:36:211244 "../media:rtc_media_base",
kthelgasonfb143122017-07-25 14:55:581245 "../modules:module_api",
Jiawei Ouae810c12018-06-20 23:18:591246 "../modules/audio_device:audio_device_api",
Artem Titov94b57c02019-03-21 12:35:101247 "../modules/audio_processing",
Alessio Bazzicab768e882018-11-07 14:29:541248 "../modules/audio_processing:api",
Patrik Höglund99175c62018-01-08 10:05:101249 "../modules/video_coding:video_codec_interface",
Mirko Bonadeie3abb812018-11-23 12:15:081250 "../rtc_base:gunit_helpers",
Niels Möllera12c42a2018-07-25 14:05:481251 "../rtc_base/system:unused",
Yves Gerey21cddff2018-10-30 20:12:421252 "../test:test_support",
mbonadei2c8ac1b2017-05-31 12:14:261253 "//third_party/ocmock",
1254 ]
magjed3149e092017-05-08 12:32:051255
denicija59ee91b2017-06-05 12:48:471256 if (is_ios) {
Anders Carlsson7bca8ca2018-08-30 07:30:291257 sources += [ "objc/unittests/RTCAudioSessionTest.mm" ]
Joe Chen0b3a6e32019-12-27 07:01:421258 deps += [ ":audio_session_objc" ]
mbonadei2c8ac1b2017-05-31 12:14:261259 }
mbonadei2c8ac1b2017-05-31 12:14:261260 }
kthelgason2f088792017-05-30 08:48:471261 }
1262
mbonadei2c8ac1b2017-05-31 12:14:261263 if (is_ios) {
Anders Carlssondc6b4772018-01-15 12:31:031264 ios_framework_bundle_with_umbrella_header("framework_objc") {
Anders Carlsson7bca8ca2018-08-30 07:30:291265 info_plist = "objc/Info.plist"
mbonadei2c8ac1b2017-05-31 12:14:261266 output_name = "WebRTC"
Magnus Jedvertf83dc8b2017-08-29 09:49:431267
mbonadei2c8ac1b2017-05-31 12:14:261268 common_objc_headers = [
Anders Carlsson7bca8ca2018-08-30 07:30:291269 "objc/base/RTCCodecSpecificInfo.h",
1270 "objc/base/RTCEncodedImage.h",
Anders Carlsson4e5af962018-09-03 12:44:501271 "objc/base/RTCI420Buffer.h",
Anders Carlsson7bca8ca2018-08-30 07:30:291272 "objc/base/RTCLogging.h",
1273 "objc/base/RTCMacros.h",
Anders Carlsson4e5af962018-09-03 12:44:501274 "objc/base/RTCMutableI420Buffer.h",
1275 "objc/base/RTCMutableYUVPlanarBuffer.h",
Anders Carlsson7bca8ca2018-08-30 07:30:291276 "objc/base/RTCRtpFragmentationHeader.h",
1277 "objc/base/RTCVideoCapturer.h",
1278 "objc/base/RTCVideoCodecInfo.h",
1279 "objc/base/RTCVideoDecoder.h",
1280 "objc/base/RTCVideoDecoderFactory.h",
1281 "objc/base/RTCVideoEncoder.h",
1282 "objc/base/RTCVideoEncoderFactory.h",
1283 "objc/base/RTCVideoEncoderQpThresholds.h",
1284 "objc/base/RTCVideoEncoderSettings.h",
1285 "objc/base/RTCVideoFrame.h",
1286 "objc/base/RTCVideoFrameBuffer.h",
1287 "objc/base/RTCVideoRenderer.h",
Anders Carlsson4e5af962018-09-03 12:44:501288 "objc/base/RTCYUVPlanarBuffer.h",
Anders Carlsson7bca8ca2018-08-30 07:30:291289 "objc/components/audio/RTCAudioSession.h",
1290 "objc/components/audio/RTCAudioSessionConfiguration.h",
1291 "objc/components/capturer/RTCCameraVideoCapturer.h",
1292 "objc/components/capturer/RTCFileVideoCapturer.h",
Taylor Brandstetterea7fbfb2020-08-19 23:41:541293 "objc/components/network/RTCNetworkMonitor.h",
Anders Carlsson7bca8ca2018-08-30 07:30:291294 "objc/components/renderer/metal/RTCMTLVideoView.h",
1295 "objc/components/renderer/opengl/RTCEAGLVideoView.h",
1296 "objc/components/renderer/opengl/RTCVideoViewShading.h",
1297 "objc/components/video_codec/RTCCodecSpecificInfoH264.h",
1298 "objc/components/video_codec/RTCDefaultVideoDecoderFactory.h",
1299 "objc/components/video_codec/RTCDefaultVideoEncoderFactory.h",
1300 "objc/components/video_codec/RTCH264ProfileLevelId.h",
1301 "objc/components/video_codec/RTCVideoDecoderFactoryH264.h",
1302 "objc/components/video_codec/RTCVideoDecoderH264.h",
1303 "objc/components/video_codec/RTCVideoEncoderFactoryH264.h",
1304 "objc/components/video_codec/RTCVideoEncoderH264.h",
1305 "objc/components/video_frame_buffer/RTCCVPixelBuffer.h",
1306 "objc/helpers/RTCCameraPreviewView.h",
1307 "objc/helpers/RTCDispatcher.h",
1308 "objc/helpers/UIDevice+RTCDevice.h",
1309 "objc/api/peerconnection/RTCAudioSource.h",
1310 "objc/api/peerconnection/RTCAudioTrack.h",
1311 "objc/api/peerconnection/RTCConfiguration.h",
1312 "objc/api/peerconnection/RTCDataChannel.h",
1313 "objc/api/peerconnection/RTCDataChannelConfiguration.h",
1314 "objc/api/peerconnection/RTCFieldTrials.h",
1315 "objc/api/peerconnection/RTCIceCandidate.h",
1316 "objc/api/peerconnection/RTCIceServer.h",
Anders Carlsson7bca8ca2018-08-30 07:30:291317 "objc/api/peerconnection/RTCLegacyStatsReport.h",
1318 "objc/api/peerconnection/RTCMediaConstraints.h",
1319 "objc/api/peerconnection/RTCMediaSource.h",
1320 "objc/api/peerconnection/RTCMediaStream.h",
1321 "objc/api/peerconnection/RTCMediaStreamTrack.h",
1322 "objc/api/peerconnection/RTCMetrics.h",
1323 "objc/api/peerconnection/RTCMetricsSampleInfo.h",
1324 "objc/api/peerconnection/RTCPeerConnection.h",
1325 "objc/api/peerconnection/RTCPeerConnectionFactory.h",
1326 "objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h",
1327 "objc/api/peerconnection/RTCRtcpParameters.h",
1328 "objc/api/peerconnection/RTCRtpCodecParameters.h",
1329 "objc/api/peerconnection/RTCRtpEncodingParameters.h",
1330 "objc/api/peerconnection/RTCRtpHeaderExtension.h",
1331 "objc/api/peerconnection/RTCRtpParameters.h",
1332 "objc/api/peerconnection/RTCRtpReceiver.h",
1333 "objc/api/peerconnection/RTCRtpSender.h",
1334 "objc/api/peerconnection/RTCRtpTransceiver.h",
1335 "objc/api/peerconnection/RTCDtmfSender.h",
1336 "objc/api/peerconnection/RTCSSLAdapter.h",
1337 "objc/api/peerconnection/RTCSessionDescription.h",
CZ Theng682dabd2019-10-21 03:25:181338 "objc/api/peerconnection/RTCStatisticsReport.h",
Anders Carlsson7bca8ca2018-08-30 07:30:291339 "objc/api/peerconnection/RTCTracing.h",
1340 "objc/api/peerconnection/RTCCertificate.h",
Benjamin Wright8c27cca2018-10-25 17:16:441341 "objc/api/peerconnection/RTCCryptoOptions.h",
Anders Carlsson7bca8ca2018-08-30 07:30:291342 "objc/api/peerconnection/RTCVideoSource.h",
1343 "objc/api/peerconnection/RTCVideoTrack.h",
Anders Carlsson4e5af962018-09-03 12:44:501344 "objc/api/video_codec/RTCVideoCodecConstants.h",
Anders Carlsson7bca8ca2018-08-30 07:30:291345 "objc/api/video_codec/RTCVideoDecoderVP8.h",
1346 "objc/api/video_codec/RTCVideoDecoderVP9.h",
1347 "objc/api/video_codec/RTCVideoEncoderVP8.h",
1348 "objc/api/video_codec/RTCVideoEncoderVP9.h",
Anders Carlsson4e5af962018-09-03 12:44:501349 "objc/api/video_frame_buffer/RTCNativeI420Buffer.h",
1350 "objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.h",
mbonadei2c8ac1b2017-05-31 12:14:261351 ]
Magnus Jedvert8b4e92d2018-04-13 13:36:431352
mbonadei2c8ac1b2017-05-31 12:14:261353 if (!build_with_chromium) {
Kári Tristan Helgason99bf77c2018-02-16 09:49:221354 common_objc_headers += [
Anders Carlsson7bca8ca2018-08-30 07:30:291355 "objc/api/logging/RTCCallbackLogger.h",
1356 "objc/api/peerconnection/RTCFileLogger.h",
Anders Carlsson3b3364e2018-01-30 14:46:131357 ]
mbonadei2c8ac1b2017-05-31 12:14:261358 }
Kári Tristan Helgasoncbe74352016-11-09 09:43:261359
Kári Tristan Helgason99bf77c2018-02-16 09:49:221360 sources = common_objc_headers
1361 public_headers = common_objc_headers
1362
mbonadei2c8ac1b2017-05-31 12:14:261363 ldflags = [
1364 "-all_load",
1365 "-install_name",
1366 "@rpath/$output_name.framework/$output_name",
1367 ]
Kári Tristan Helgasoncbe74352016-11-09 09:43:261368
mbonadei2c8ac1b2017-05-31 12:14:261369 deps = [
kthelgason36d658d2017-08-24 12:43:451370 ":audio_objc",
Anders Carlsson7bca8ca2018-08-30 07:30:291371 ":base_objc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:221372 ":default_codec_factory_objc",
1373 ":native_api",
1374 ":native_video",
1375 ":peerconnectionfactory_base_objc",
kthelgason36d658d2017-08-24 12:43:451376 ":ui_objc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:221377 ":videocapture_objc",
1378 ":videocodec_objc",
1379 ":videotoolbox_objc",
ehmaldonadof6a861a2017-07-19 17:40:471380 "../rtc_base:rtc_base_approved",
mbonadei2c8ac1b2017-05-31 12:14:261381 ]
Kári Tristan Helgason99bf77c2018-02-16 09:49:221382 if (rtc_use_metal_rendering) {
Kári Tristan Helgason99bf77c2018-02-16 09:49:221383 deps += [ ":metal_objc" ]
1384 }
Anders Carlsson7bca8ca2018-08-30 07:30:291385 if (!build_with_chromium) {
1386 deps += [
1387 ":callback_logger_objc",
1388 ":file_logger_objc",
1389 ]
1390 }
Kári Tristan Helgasoncbe74352016-11-09 09:43:261391
Sylvain Defresnec7f0dff2020-07-03 08:19:301392 frameworks = [
mbonadei2c8ac1b2017-05-31 12:14:261393 "AVFoundation.framework",
1394 "CoreGraphics.framework",
1395 "CoreMedia.framework",
1396 "GLKit.framework",
1397 ]
1398
Anders Carlsson358f2e02018-06-04 08:24:371399 configs += [
1400 "..:common_objc",
1401 ":used_from_extension",
1402 ]
mbonadei2c8ac1b2017-05-31 12:14:261403
kthelgason36d658d2017-08-24 12:43:451404 public_configs = [ ":common_config_objc" ]
mbonadei2c8ac1b2017-05-31 12:14:261405 }
Anders Carlsson7bca8ca2018-08-30 07:30:291406
1407 bundle_data("ios_framework_bundle") {
Danil Chapovalov64f1f3f2020-01-16 13:41:101408 deps = [ "../sdk:framework_objc" ]
1409 sources = [ "$root_build_dir/WebRTC.framework" ]
1410 outputs = [ "{{bundle_resources_dir}}/Frameworks/{{source_file_part}}" ]
Anders Carlsson7bca8ca2018-08-30 07:30:291411 }
1412 }
1413
1414 if (is_mac) {
Anders Carlsson37bbf792018-09-05 14:29:271415 mac_framework_bundle_with_umbrella_header("mac_framework_objc") {
Anders Carlsson7bca8ca2018-08-30 07:30:291416 info_plist = "objc/Info.plist"
1417 output_name = "WebRTC"
Anders Carlsson7bca8ca2018-08-30 07:30:291418
Anders Carlsson37bbf792018-09-05 14:29:271419 sources = [
1420 "objc/api/peerconnection/RTCAudioSource.h",
1421 "objc/api/peerconnection/RTCAudioTrack.h",
1422 "objc/api/peerconnection/RTCCertificate.h",
1423 "objc/api/peerconnection/RTCConfiguration.h",
Benjamin Wright8c27cca2018-10-25 17:16:441424 "objc/api/peerconnection/RTCCryptoOptions.h",
Anders Carlsson37bbf792018-09-05 14:29:271425 "objc/api/peerconnection/RTCDataChannel.h",
1426 "objc/api/peerconnection/RTCDataChannelConfiguration.h",
1427 "objc/api/peerconnection/RTCDtmfSender.h",
1428 "objc/api/peerconnection/RTCFieldTrials.h",
1429 "objc/api/peerconnection/RTCIceCandidate.h",
1430 "objc/api/peerconnection/RTCIceServer.h",
Anders Carlsson37bbf792018-09-05 14:29:271431 "objc/api/peerconnection/RTCLegacyStatsReport.h",
1432 "objc/api/peerconnection/RTCMediaConstraints.h",
1433 "objc/api/peerconnection/RTCMediaSource.h",
1434 "objc/api/peerconnection/RTCMediaStream.h",
1435 "objc/api/peerconnection/RTCMediaStreamTrack.h",
1436 "objc/api/peerconnection/RTCMetrics.h",
1437 "objc/api/peerconnection/RTCMetricsSampleInfo.h",
1438 "objc/api/peerconnection/RTCPeerConnection.h",
1439 "objc/api/peerconnection/RTCPeerConnectionFactory.h",
1440 "objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h",
1441 "objc/api/peerconnection/RTCRtcpParameters.h",
1442 "objc/api/peerconnection/RTCRtpCodecParameters.h",
1443 "objc/api/peerconnection/RTCRtpEncodingParameters.h",
1444 "objc/api/peerconnection/RTCRtpHeaderExtension.h",
1445 "objc/api/peerconnection/RTCRtpParameters.h",
1446 "objc/api/peerconnection/RTCRtpReceiver.h",
1447 "objc/api/peerconnection/RTCRtpSender.h",
1448 "objc/api/peerconnection/RTCRtpTransceiver.h",
1449 "objc/api/peerconnection/RTCSSLAdapter.h",
1450 "objc/api/peerconnection/RTCSessionDescription.h",
1451 "objc/api/peerconnection/RTCTracing.h",
1452 "objc/api/peerconnection/RTCVideoSource.h",
1453 "objc/api/peerconnection/RTCVideoTrack.h",
1454 "objc/api/video_codec/RTCVideoDecoderVP8.h",
1455 "objc/api/video_codec/RTCVideoDecoderVP9.h",
1456 "objc/api/video_codec/RTCVideoEncoderVP8.h",
1457 "objc/api/video_codec/RTCVideoEncoderVP9.h",
1458 "objc/api/video_frame_buffer/RTCNativeI420Buffer.h",
1459 "objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.h",
1460 "objc/base/RTCCodecSpecificInfo.h",
1461 "objc/base/RTCEncodedImage.h",
1462 "objc/base/RTCI420Buffer.h",
1463 "objc/base/RTCLogging.h",
1464 "objc/base/RTCMacros.h",
1465 "objc/base/RTCMutableI420Buffer.h",
1466 "objc/base/RTCMutableYUVPlanarBuffer.h",
1467 "objc/base/RTCRtpFragmentationHeader.h",
1468 "objc/base/RTCVideoCapturer.h",
1469 "objc/base/RTCVideoCodecInfo.h",
1470 "objc/base/RTCVideoDecoder.h",
1471 "objc/base/RTCVideoDecoderFactory.h",
1472 "objc/base/RTCVideoEncoder.h",
1473 "objc/base/RTCVideoEncoderFactory.h",
1474 "objc/base/RTCVideoEncoderQpThresholds.h",
1475 "objc/base/RTCVideoEncoderSettings.h",
1476 "objc/base/RTCVideoFrame.h",
1477 "objc/base/RTCVideoFrameBuffer.h",
1478 "objc/base/RTCVideoRenderer.h",
1479 "objc/base/RTCYUVPlanarBuffer.h",
1480 "objc/components/capturer/RTCCameraVideoCapturer.h",
1481 "objc/components/capturer/RTCFileVideoCapturer.h",
1482 "objc/components/renderer/metal/RTCMTLNSVideoView.h",
1483 "objc/components/renderer/opengl/RTCNSGLVideoView.h",
1484 "objc/components/renderer/opengl/RTCVideoViewShading.h",
1485 "objc/components/video_codec/RTCCodecSpecificInfoH264.h",
1486 "objc/components/video_codec/RTCDefaultVideoDecoderFactory.h",
1487 "objc/components/video_codec/RTCDefaultVideoEncoderFactory.h",
1488 "objc/components/video_codec/RTCH264ProfileLevelId.h",
1489 "objc/components/video_codec/RTCVideoDecoderFactoryH264.h",
1490 "objc/components/video_codec/RTCVideoDecoderH264.h",
1491 "objc/components/video_codec/RTCVideoEncoderFactoryH264.h",
1492 "objc/components/video_codec/RTCVideoEncoderH264.h",
1493 "objc/components/video_frame_buffer/RTCCVPixelBuffer.h",
1494 "objc/helpers/RTCDispatcher.h",
Anders Carlsson7bca8ca2018-08-30 07:30:291495 ]
Anders Carlsson37bbf792018-09-05 14:29:271496 if (!build_with_chromium) {
1497 sources += [
1498 "objc/api/logging/RTCCallbackLogger.h",
1499 "objc/api/peerconnection/RTCFileLogger.h",
1500 ]
1501 }
Anders Carlsson7bca8ca2018-08-30 07:30:291502
1503 deps = [
1504 ":base_objc",
1505 ":default_codec_factory_objc",
Anders Carlsson7bca8ca2018-08-30 07:30:291506 ":native_api",
1507 ":native_video",
1508 ":peerconnectionfactory_base_objc",
1509 ":ui_objc",
1510 ":videocapture_objc",
1511 ":videocodec_objc",
1512 ":videotoolbox_objc",
1513 "../rtc_base:rtc_base_approved",
Anders Carlsson7bca8ca2018-08-30 07:30:291514 ]
1515 if (rtc_use_metal_rendering) {
1516 deps += [ ":metal_objc" ]
1517 }
1518 if (!build_with_chromium) {
1519 deps += [
1520 ":callback_logger_objc",
1521 ":file_logger_objc",
1522 ]
1523 }
1524
Sylvain Defresnec7f0dff2020-07-03 08:19:301525 frameworks = [
Anders Carlsson7bca8ca2018-08-30 07:30:291526 "AVFoundation.framework",
1527 "CoreGraphics.framework",
1528 "CoreMedia.framework",
1529 "OpenGL.framework",
1530 ]
1531
Anders Carlsson37bbf792018-09-05 14:29:271532 configs = [ "..:common_objc" ]
Anders Carlsson7bca8ca2018-08-30 07:30:291533
1534 public_configs = [ ":common_config_objc" ]
1535 }
1536
1537 bundle_data("mac_framework_bundle") {
Danil Chapovalov64f1f3f2020-01-16 13:41:101538 deps = [ "../sdk:mac_framework_objc" ]
1539 sources = [ "$root_build_dir/WebRTC.framework" ]
1540 outputs = [ "{{bundle_contents_dir}}/Frameworks/{{source_file_part}}" ]
Anders Carlsson7bca8ca2018-08-30 07:30:291541 }
Kári Tristan Helgasoncbe74352016-11-09 09:43:261542 }
1543
Mirko Bonadei86d053c2019-10-17 19:32:041544 rtc_library("wrapped_native_codec_objc") {
Anders Carlsson9823ee42018-03-07 09:32:031545 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:291546 "objc/api/video_codec/RTCWrappedNativeVideoDecoder.h",
1547 "objc/api/video_codec/RTCWrappedNativeVideoDecoder.mm",
1548 "objc/api/video_codec/RTCWrappedNativeVideoEncoder.h",
1549 "objc/api/video_codec/RTCWrappedNativeVideoEncoder.mm",
Anders Carlsson9823ee42018-03-07 09:32:031550 ]
1551
1552 configs += [ "..:common_objc" ]
1553 public_configs = [ ":common_config_objc" ]
1554
Anders Carlsson9823ee42018-03-07 09:32:031555 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:291556 ":base_objc",
1557 ":helpers_objc",
Anders Carlsson9823ee42018-03-07 09:32:031558 "../api/video_codecs:video_codecs_api",
1559 "../media:rtc_media_base",
1560 ]
1561 }
1562
Anders Carlsson3ff50fb2018-02-01 14:47:051563 # The native API is currently experimental and may change without notice.
Mirko Bonadei86d053c2019-10-17 19:32:041564 rtc_library("native_api") {
Anders Carlsson3ff50fb2018-02-01 14:47:051565 visibility = [ "*" ]
Anders Carlsson45340ca2019-01-14 13:23:231566 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
Anders Carlsson3ff50fb2018-02-01 14:47:051567 sources = [
Taylor Brandstetterea7fbfb2020-08-19 23:41:541568 "objc/native/api/network_monitor_factory.h",
1569 "objc/native/api/network_monitor_factory.mm",
Anders Carlsson7bca8ca2018-08-30 07:30:291570 "objc/native/api/video_capturer.h",
1571 "objc/native/api/video_capturer.mm",
1572 "objc/native/api/video_decoder_factory.h",
1573 "objc/native/api/video_decoder_factory.mm",
1574 "objc/native/api/video_encoder_factory.h",
1575 "objc/native/api/video_encoder_factory.mm",
1576 "objc/native/api/video_frame.h",
1577 "objc/native/api/video_frame.mm",
1578 "objc/native/api/video_frame_buffer.h",
1579 "objc/native/api/video_frame_buffer.mm",
1580 "objc/native/api/video_renderer.h",
1581 "objc/native/api/video_renderer.mm",
Anders Carlsson3ff50fb2018-02-01 14:47:051582 ]
1583
1584 configs += [ "..:common_objc" ]
1585
1586 public_configs = [ ":common_config_objc" ]
1587
Anders Carlsson3ff50fb2018-02-01 14:47:051588 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:291589 ":base_objc",
Anders Carlsson3ff50fb2018-02-01 14:47:051590 ":native_video",
Kári Tristan Helgason99bf77c2018-02-16 09:49:221591 ":videoframebuffer_objc",
Anders Carlsson73119182018-03-15 08:41:031592 "../api:libjingle_peerconnection_api",
Niels Möllere942b142019-09-17 12:30:411593 "../api:media_stream_interface",
Mirko Bonadeid9708072019-01-25 19:26:481594 "../api:scoped_refptr",
Niels Möllerc6ce9c52018-05-11 09:15:301595 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:381596 "../api/video:video_rtp_headers",
Anders Carlsson3ff50fb2018-02-01 14:47:051597 "../api/video_codecs:video_codecs_api",
1598 "../common_video",
Artem Titov94b57c02019-03-21 12:35:101599 "../rtc_base",
Anders Carlsson3ff50fb2018-02-01 14:47:051600 ]
Taylor Brandstetterea7fbfb2020-08-19 23:41:541601 if (is_ios) {
1602 deps += [ ":native_network_monitor" ]
1603 }
Mirko Bonadei2dcf3482020-06-05 12:30:411604 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Anders Carlsson3ff50fb2018-02-01 14:47:051605 }
1606
Taylor Brandstetterea7fbfb2020-08-19 23:41:541607 if (is_ios) {
1608 rtc_library("native_network_monitor") {
1609 visibility = [ "*" ]
1610
1611 sources = [
1612 "objc/native/src/objc_network_monitor.h",
1613 "objc/native/src/objc_network_monitor.mm",
1614 ]
1615
1616 deps = [
1617 ":network_monitor_objc",
1618 ":network_monitor_observer",
1619 "../rtc_base",
1620 "../rtc_base/synchronization:sequence_checker",
1621 ]
1622 }
1623 }
1624
Mirko Bonadei86d053c2019-10-17 19:32:041625 rtc_library("native_video") {
Anders Carlsson3ff50fb2018-02-01 14:47:051626 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:291627 "objc/native/src/objc_frame_buffer.h",
1628 "objc/native/src/objc_frame_buffer.mm",
1629 "objc/native/src/objc_video_decoder_factory.h",
1630 "objc/native/src/objc_video_decoder_factory.mm",
1631 "objc/native/src/objc_video_encoder_factory.h",
1632 "objc/native/src/objc_video_encoder_factory.mm",
1633 "objc/native/src/objc_video_frame.h",
1634 "objc/native/src/objc_video_frame.mm",
1635 "objc/native/src/objc_video_renderer.h",
1636 "objc/native/src/objc_video_renderer.mm",
1637 "objc/native/src/objc_video_track_source.h",
1638 "objc/native/src/objc_video_track_source.mm",
Anders Carlsson3ff50fb2018-02-01 14:47:051639 ]
1640
1641 configs += [ "..:common_objc" ]
1642
1643 public_configs = [ ":common_config_objc" ]
1644
Anders Carlsson3ff50fb2018-02-01 14:47:051645 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:291646 ":base_native_additions_objc",
1647 ":base_objc",
1648 ":helpers_objc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:221649 ":videocodec_objc",
1650 ":videoframebuffer_objc",
Anders Carlsson7bca8ca2018-08-30 07:30:291651 ":vpx_codec_constants",
Anders Carlsson9823ee42018-03-07 09:32:031652 ":wrapped_native_codec_objc",
Niels Möllerc6ce9c52018-05-11 09:15:301653 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:381654 "../api/video:video_rtp_headers",
Anders Carlsson3ff50fb2018-02-01 14:47:051655 "../api/video_codecs:video_codecs_api",
1656 "../common_video",
1657 "../media:rtc_audio_video",
1658 "../media:rtc_media_base",
1659 "../modules:module_api",
1660 "../modules/video_coding:video_codec_interface",
Artem Titov94b57c02019-03-21 12:35:101661 "../rtc_base",
Anders Carlsson3ff50fb2018-02-01 14:47:051662 "../rtc_base:checks",
Anders Carlsson3ff50fb2018-02-01 14:47:051663 ]
1664 }
1665
Mirko Bonadei86d053c2019-10-17 19:32:041666 rtc_library("video_toolbox_cc") {
Artem Titarenko42b43152018-10-29 17:18:091667 visibility = [
Mirko Bonadei08574ae2020-09-16 07:22:571668 ":sdk_unittests_sources",
Mirko Bonadeiaef8a212020-09-16 13:09:531669 ":videotoolbox_objc",
Artem Titarenko42b43152018-10-29 17:18:091670 ]
mbonadei2c8ac1b2017-05-31 12:14:261671 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:291672 "objc/components/video_codec/helpers.cc",
1673 "objc/components/video_codec/helpers.h",
1674 "objc/components/video_codec/nalu_rewriter.cc",
1675 "objc/components/video_codec/nalu_rewriter.h",
mbonadeic0af5ac2017-08-24 19:26:051676 ]
1677 deps = [
1678 "../common_video",
1679 "../modules:module_api",
1680 "../modules/video_coding:webrtc_h264",
Patrik Höglunda8005cf2017-12-13 15:05:421681 "../rtc_base:checks",
mbonadeic0af5ac2017-08-24 19:26:051682 "../rtc_base:rtc_base_approved",
1683 ]
mbonadeic0af5ac2017-08-24 19:26:051684 }
1685
Mirko Bonadei86d053c2019-10-17 19:32:041686 rtc_library("videotoolbox_objc") {
Kári Tristan Helgason99bf77c2018-02-16 09:49:221687 visibility = [ "*" ]
Anders Carlsson45340ca2019-01-14 13:23:231688 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
mbonadeic0af5ac2017-08-24 19:26:051689 sources = [
Anders Carlsson7bca8ca2018-08-30 07:30:291690 "objc/components/video_codec/RTCVideoDecoderFactoryH264.h",
1691 "objc/components/video_codec/RTCVideoDecoderFactoryH264.m",
1692 "objc/components/video_codec/RTCVideoDecoderH264.h",
1693 "objc/components/video_codec/RTCVideoDecoderH264.mm",
1694 "objc/components/video_codec/RTCVideoEncoderFactoryH264.h",
1695 "objc/components/video_codec/RTCVideoEncoderFactoryH264.m",
1696 "objc/components/video_codec/RTCVideoEncoderH264.h",
1697 "objc/components/video_codec/RTCVideoEncoderH264.mm",
mbonadei2c8ac1b2017-05-31 12:14:261698 ]
1699
Anders Carlsson358f2e02018-06-04 08:24:371700 configs += [
1701 "..:common_objc",
1702 ":used_from_extension",
1703 ]
1704
1705 if (is_ios && rtc_apprtcmobile_broadcast_extension) {
1706 defines = [ "RTC_APPRTCMOBILE_BROADCAST_EXTENSION" ]
1707 }
mbonadei2c8ac1b2017-05-31 12:14:261708
1709 deps = [
Anders Carlsson7bca8ca2018-08-30 07:30:291710 ":base_native_additions_objc",
1711 ":base_objc",
1712 ":helpers_objc",
mbonadeic0af5ac2017-08-24 19:26:051713 ":video_toolbox_cc",
Kári Tristan Helgason99bf77c2018-02-16 09:49:221714 ":videocodec_objc",
1715 ":videoframebuffer_objc",
mbonadei2c8ac1b2017-05-31 12:14:261716 "../common_video",
mbonadei2c8ac1b2017-05-31 12:14:261717 "../modules:module_api",
Patrik Höglund99175c62018-01-08 10:05:101718 "../modules/video_coding:video_codec_interface",
Patrik Höglunda8005cf2017-12-13 15:05:421719 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 17:40:471720 "../rtc_base:rtc_base_approved",
Mirko Bonadei401d0562017-12-14 10:24:001721 "//third_party/libyuv",
mbonadei2c8ac1b2017-05-31 12:14:261722 ]
1723
Sylvain Defresnec7f0dff2020-07-03 08:19:301724 frameworks = [
mbonadei2c8ac1b2017-05-31 12:14:261725 "CoreFoundation.framework",
1726 "CoreMedia.framework",
1727 "CoreVideo.framework",
1728 "VideoToolbox.framework",
1729 ]
Kári Tristan Helgasoncbe74352016-11-09 09:43:261730 }
1731 }
tkchin9eeb6242016-04-27 08:54:201732}