xref: /aosp_15_r20/external/webrtc/sdk/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker# Copyright 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("//third_party/libaom/options.gni")
10*d9f75844SAndroid Build Coastguard Workerimport("../webrtc.gni")
11*d9f75844SAndroid Build Coastguard Workerif (is_ios) {
12*d9f75844SAndroid Build Coastguard Worker  import("//build/config/ios/ios_sdk.gni")
13*d9f75844SAndroid Build Coastguard Worker  import("//build/config/ios/rules.gni")
14*d9f75844SAndroid Build Coastguard Worker}
15*d9f75844SAndroid Build Coastguard Workerif (is_mac) {
16*d9f75844SAndroid Build Coastguard Worker  import("//build/config/mac/rules.gni")
17*d9f75844SAndroid Build Coastguard Worker}
18*d9f75844SAndroid Build Coastguard Worker
19*d9f75844SAndroid Build Coastguard Workergroup("sdk") {
20*d9f75844SAndroid Build Coastguard Worker  public_deps = []
21*d9f75844SAndroid Build Coastguard Worker  if (!build_with_chromium) {
22*d9f75844SAndroid Build Coastguard Worker    if (is_android) {
23*d9f75844SAndroid Build Coastguard Worker      public_deps += [ "android" ]
24*d9f75844SAndroid Build Coastguard Worker    }
25*d9f75844SAndroid Build Coastguard Worker    if (is_ios) {
26*d9f75844SAndroid Build Coastguard Worker      public_deps += [ ":framework_objc" ]
27*d9f75844SAndroid Build Coastguard Worker    }
28*d9f75844SAndroid Build Coastguard Worker  }
29*d9f75844SAndroid Build Coastguard Worker}
30*d9f75844SAndroid Build Coastguard Worker
31*d9f75844SAndroid Build Coastguard Workerrtc_library("media_constraints") {
32*d9f75844SAndroid Build Coastguard Worker  sources = [
33*d9f75844SAndroid Build Coastguard Worker    "media_constraints.cc",
34*d9f75844SAndroid Build Coastguard Worker    "media_constraints.h",
35*d9f75844SAndroid Build Coastguard Worker  ]
36*d9f75844SAndroid Build Coastguard Worker  deps = [
37*d9f75844SAndroid Build Coastguard Worker    "../api:audio_options_api",
38*d9f75844SAndroid Build Coastguard Worker    "../api:libjingle_peerconnection_api",
39*d9f75844SAndroid Build Coastguard Worker  ]
40*d9f75844SAndroid Build Coastguard Worker  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
41*d9f75844SAndroid Build Coastguard Worker}
42*d9f75844SAndroid Build Coastguard Worker
43*d9f75844SAndroid Build Coastguard Workerrtc_library("sdk_tests") {
44*d9f75844SAndroid Build Coastguard Worker  testonly = true
45*d9f75844SAndroid Build Coastguard Worker  sources = [ "media_constraints_unittest.cc" ]
46*d9f75844SAndroid Build Coastguard Worker  deps = [
47*d9f75844SAndroid Build Coastguard Worker    ":media_constraints",
48*d9f75844SAndroid Build Coastguard Worker    "../test:test_support",
49*d9f75844SAndroid Build Coastguard Worker  ]
50*d9f75844SAndroid Build Coastguard Worker}
51*d9f75844SAndroid Build Coastguard Worker
52*d9f75844SAndroid Build Coastguard Workerif (is_ios || is_mac) {
53*d9f75844SAndroid Build Coastguard Worker  config("common_config_objc") {
54*d9f75844SAndroid Build Coastguard Worker    include_dirs = [
55*d9f75844SAndroid Build Coastguard Worker      "objc",
56*d9f75844SAndroid Build Coastguard Worker
57*d9f75844SAndroid Build Coastguard Worker      # This is needed so that framework headers can include base headers
58*d9f75844SAndroid Build Coastguard Worker      # without pathname (so it works from within the framework module).
59*d9f75844SAndroid Build Coastguard Worker      "objc/base",
60*d9f75844SAndroid Build Coastguard Worker    ]
61*d9f75844SAndroid Build Coastguard Worker    cflags = [
62*d9f75844SAndroid Build Coastguard Worker      "-Wimplicit-retain-self",
63*d9f75844SAndroid Build Coastguard Worker      "-Wstrict-overflow",
64*d9f75844SAndroid Build Coastguard Worker      "-Wmissing-field-initializers",
65*d9f75844SAndroid Build Coastguard Worker    ]
66*d9f75844SAndroid Build Coastguard Worker
67*d9f75844SAndroid Build Coastguard Worker    if (use_clang_coverage) {
68*d9f75844SAndroid Build Coastguard Worker      configs = [ "//build/config/coverage:default_coverage" ]
69*d9f75844SAndroid Build Coastguard Worker    }
70*d9f75844SAndroid Build Coastguard Worker  }
71*d9f75844SAndroid Build Coastguard Worker
72*d9f75844SAndroid Build Coastguard Worker  config("used_from_extension") {
73*d9f75844SAndroid Build Coastguard Worker    if (is_ios && rtc_apprtcmobile_broadcast_extension) {
74*d9f75844SAndroid Build Coastguard Worker      cflags = [ "-fapplication-extension" ]
75*d9f75844SAndroid Build Coastguard Worker    }
76*d9f75844SAndroid Build Coastguard Worker  }
77*d9f75844SAndroid Build Coastguard Worker
78*d9f75844SAndroid Build Coastguard Worker  # TODO(bugs.webrtc.org/9627): Remove this when unused. Targets should depend on base_objc
79*d9f75844SAndroid Build Coastguard Worker  # or helpers_objc directly instead.
80*d9f75844SAndroid Build Coastguard Worker  rtc_library("common_objc") {
81*d9f75844SAndroid Build Coastguard Worker    visibility = [ "*" ]
82*d9f75844SAndroid Build Coastguard Worker
83*d9f75844SAndroid Build Coastguard Worker    sources = [ "objc/helpers/noop.mm" ]
84*d9f75844SAndroid Build Coastguard Worker
85*d9f75844SAndroid Build Coastguard Worker    public_configs = [ ":common_config_objc" ]
86*d9f75844SAndroid Build Coastguard Worker
87*d9f75844SAndroid Build Coastguard Worker    deps = [
88*d9f75844SAndroid Build Coastguard Worker      ":base_objc",
89*d9f75844SAndroid Build Coastguard Worker      ":helpers_objc",
90*d9f75844SAndroid Build Coastguard Worker    ]
91*d9f75844SAndroid Build Coastguard Worker  }
92*d9f75844SAndroid Build Coastguard Worker
93*d9f75844SAndroid Build Coastguard Worker  rtc_library("base_objc") {
94*d9f75844SAndroid Build Coastguard Worker    visibility = [ "*" ]
95*d9f75844SAndroid Build Coastguard Worker    sources = [
96*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCCodecSpecificInfo.h",
97*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCEncodedImage.h",
98*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCEncodedImage.m",
99*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCI420Buffer.h",
100*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCLogging.h",
101*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCLogging.mm",
102*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCMacros.h",
103*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCMutableI420Buffer.h",
104*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCMutableYUVPlanarBuffer.h",
105*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCSSLCertificateVerifier.h",
106*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoCapturer.h",
107*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoCapturer.m",
108*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoCodecInfo.h",
109*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoCodecInfo.m",
110*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoDecoder.h",
111*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoDecoderFactory.h",
112*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoEncoder.h",
113*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoEncoderFactory.h",
114*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoEncoderQpThresholds.h",
115*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoEncoderQpThresholds.m",
116*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoEncoderSettings.h",
117*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoEncoderSettings.m",
118*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoFrame.h",
119*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoFrame.mm",
120*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoFrameBuffer.h",
121*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCVideoRenderer.h",
122*d9f75844SAndroid Build Coastguard Worker      "objc/base/RTCYUVPlanarBuffer.h",
123*d9f75844SAndroid Build Coastguard Worker    ]
124*d9f75844SAndroid Build Coastguard Worker
125*d9f75844SAndroid Build Coastguard Worker    deps = [
126*d9f75844SAndroid Build Coastguard Worker      "../rtc_base",
127*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:checks",
128*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:logging",
129*d9f75844SAndroid Build Coastguard Worker    ]
130*d9f75844SAndroid Build Coastguard Worker    configs += [
131*d9f75844SAndroid Build Coastguard Worker      "..:common_objc",
132*d9f75844SAndroid Build Coastguard Worker      ":used_from_extension",
133*d9f75844SAndroid Build Coastguard Worker    ]
134*d9f75844SAndroid Build Coastguard Worker
135*d9f75844SAndroid Build Coastguard Worker    public_configs = [ ":common_config_objc" ]
136*d9f75844SAndroid Build Coastguard Worker  }
137*d9f75844SAndroid Build Coastguard Worker
138*d9f75844SAndroid Build Coastguard Worker  rtc_library("helpers_objc") {
139*d9f75844SAndroid Build Coastguard Worker    sources = [
140*d9f75844SAndroid Build Coastguard Worker      "objc/helpers/AVCaptureSession+DevicePosition.h",
141*d9f75844SAndroid Build Coastguard Worker      "objc/helpers/AVCaptureSession+DevicePosition.mm",
142*d9f75844SAndroid Build Coastguard Worker      "objc/helpers/NSString+StdString.h",
143*d9f75844SAndroid Build Coastguard Worker      "objc/helpers/NSString+StdString.mm",
144*d9f75844SAndroid Build Coastguard Worker      "objc/helpers/RTCDispatcher+Private.h",
145*d9f75844SAndroid Build Coastguard Worker      "objc/helpers/RTCDispatcher.h",
146*d9f75844SAndroid Build Coastguard Worker      "objc/helpers/RTCDispatcher.m",
147*d9f75844SAndroid Build Coastguard Worker      "objc/helpers/scoped_cftyperef.h",
148*d9f75844SAndroid Build Coastguard Worker    ]
149*d9f75844SAndroid Build Coastguard Worker
150*d9f75844SAndroid Build Coastguard Worker    deps = [
151*d9f75844SAndroid Build Coastguard Worker      ":base_objc",
152*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:checks",
153*d9f75844SAndroid Build Coastguard Worker    ]
154*d9f75844SAndroid Build Coastguard Worker
155*d9f75844SAndroid Build Coastguard Worker    absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
156*d9f75844SAndroid Build Coastguard Worker
157*d9f75844SAndroid Build Coastguard Worker    frameworks = [
158*d9f75844SAndroid Build Coastguard Worker      "AVFoundation.framework",
159*d9f75844SAndroid Build Coastguard Worker      "CoreMedia.framework",
160*d9f75844SAndroid Build Coastguard Worker    ]
161*d9f75844SAndroid Build Coastguard Worker
162*d9f75844SAndroid Build Coastguard Worker    configs += [
163*d9f75844SAndroid Build Coastguard Worker      "..:common_objc",
164*d9f75844SAndroid Build Coastguard Worker      ":used_from_extension",
165*d9f75844SAndroid Build Coastguard Worker    ]
166*d9f75844SAndroid Build Coastguard Worker
167*d9f75844SAndroid Build Coastguard Worker    public_configs = [ ":common_config_objc" ]
168*d9f75844SAndroid Build Coastguard Worker
169*d9f75844SAndroid Build Coastguard Worker    if (is_ios) {
170*d9f75844SAndroid Build Coastguard Worker      sources += [
171*d9f75844SAndroid Build Coastguard Worker        "objc/helpers/RTCCameraPreviewView.h",
172*d9f75844SAndroid Build Coastguard Worker        "objc/helpers/RTCCameraPreviewView.m",
173*d9f75844SAndroid Build Coastguard Worker        "objc/helpers/UIDevice+RTCDevice.h",
174*d9f75844SAndroid Build Coastguard Worker        "objc/helpers/UIDevice+RTCDevice.mm",
175*d9f75844SAndroid Build Coastguard Worker      ]
176*d9f75844SAndroid Build Coastguard Worker    }
177*d9f75844SAndroid Build Coastguard Worker  }
178*d9f75844SAndroid Build Coastguard Worker
179*d9f75844SAndroid Build Coastguard Worker  if (!build_with_chromium) {
180*d9f75844SAndroid Build Coastguard Worker    rtc_library("callback_logger_objc") {
181*d9f75844SAndroid Build Coastguard Worker      sources = [
182*d9f75844SAndroid Build Coastguard Worker        "objc/api/logging/RTCCallbackLogger.h",
183*d9f75844SAndroid Build Coastguard Worker        "objc/api/logging/RTCCallbackLogger.mm",
184*d9f75844SAndroid Build Coastguard Worker      ]
185*d9f75844SAndroid Build Coastguard Worker
186*d9f75844SAndroid Build Coastguard Worker      deps = [
187*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
188*d9f75844SAndroid Build Coastguard Worker        ":helpers_objc",
189*d9f75844SAndroid Build Coastguard Worker        "../rtc_base",
190*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
191*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
192*d9f75844SAndroid Build Coastguard Worker      ]
193*d9f75844SAndroid Build Coastguard Worker
194*d9f75844SAndroid Build Coastguard Worker      configs += [
195*d9f75844SAndroid Build Coastguard Worker        "..:common_objc",
196*d9f75844SAndroid Build Coastguard Worker        ":used_from_extension",
197*d9f75844SAndroid Build Coastguard Worker      ]
198*d9f75844SAndroid Build Coastguard Worker
199*d9f75844SAndroid Build Coastguard Worker      absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
200*d9f75844SAndroid Build Coastguard Worker    }
201*d9f75844SAndroid Build Coastguard Worker
202*d9f75844SAndroid Build Coastguard Worker    rtc_library("file_logger_objc") {
203*d9f75844SAndroid Build Coastguard Worker      sources = [
204*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCFileLogger.h",
205*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCFileLogger.mm",
206*d9f75844SAndroid Build Coastguard Worker      ]
207*d9f75844SAndroid Build Coastguard Worker
208*d9f75844SAndroid Build Coastguard Worker      deps = [
209*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
210*d9f75844SAndroid Build Coastguard Worker        "../rtc_base",
211*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
212*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
213*d9f75844SAndroid Build Coastguard Worker      ]
214*d9f75844SAndroid Build Coastguard Worker
215*d9f75844SAndroid Build Coastguard Worker      configs += [
216*d9f75844SAndroid Build Coastguard Worker        "..:common_objc",
217*d9f75844SAndroid Build Coastguard Worker        ":used_from_extension",
218*d9f75844SAndroid Build Coastguard Worker      ]
219*d9f75844SAndroid Build Coastguard Worker    }
220*d9f75844SAndroid Build Coastguard Worker  }
221*d9f75844SAndroid Build Coastguard Worker
222*d9f75844SAndroid Build Coastguard Worker  if (!build_with_chromium) {
223*d9f75844SAndroid Build Coastguard Worker    if (is_ios) {
224*d9f75844SAndroid Build Coastguard Worker      rtc_library("native_api_audio_device_module") {
225*d9f75844SAndroid Build Coastguard Worker        visibility = [ "*" ]
226*d9f75844SAndroid Build Coastguard Worker
227*d9f75844SAndroid Build Coastguard Worker        sources = [
228*d9f75844SAndroid Build Coastguard Worker          "objc/native/api/audio_device_module.h",
229*d9f75844SAndroid Build Coastguard Worker          "objc/native/api/audio_device_module.mm",
230*d9f75844SAndroid Build Coastguard Worker        ]
231*d9f75844SAndroid Build Coastguard Worker
232*d9f75844SAndroid Build Coastguard Worker        deps = [
233*d9f75844SAndroid Build Coastguard Worker          ":audio_device",
234*d9f75844SAndroid Build Coastguard Worker          "../api:make_ref_counted",
235*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_device:audio_device_api",
236*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_device:audio_device_generic",
237*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:checks",
238*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:logging",
239*d9f75844SAndroid Build Coastguard Worker          "../system_wrappers",
240*d9f75844SAndroid Build Coastguard Worker        ]
241*d9f75844SAndroid Build Coastguard Worker      }
242*d9f75844SAndroid Build Coastguard Worker
243*d9f75844SAndroid Build Coastguard Worker      rtc_source_set("audio_session_observer") {
244*d9f75844SAndroid Build Coastguard Worker        visibility = [ ":*" ]
245*d9f75844SAndroid Build Coastguard Worker
246*d9f75844SAndroid Build Coastguard Worker        sources = [ "objc/native/src/audio/audio_session_observer.h" ]
247*d9f75844SAndroid Build Coastguard Worker
248*d9f75844SAndroid Build Coastguard Worker        deps = [
249*d9f75844SAndroid Build Coastguard Worker          "../rtc_base",
250*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:threading",
251*d9f75844SAndroid Build Coastguard Worker        ]
252*d9f75844SAndroid Build Coastguard Worker      }
253*d9f75844SAndroid Build Coastguard Worker
254*d9f75844SAndroid Build Coastguard Worker      rtc_library("audio_device") {
255*d9f75844SAndroid Build Coastguard Worker        visibility = [ "*" ]
256*d9f75844SAndroid Build Coastguard Worker
257*d9f75844SAndroid Build Coastguard Worker        sources = [
258*d9f75844SAndroid Build Coastguard Worker          "objc/native/src/audio/audio_device_ios.h",
259*d9f75844SAndroid Build Coastguard Worker          "objc/native/src/audio/audio_device_ios.mm",
260*d9f75844SAndroid Build Coastguard Worker          "objc/native/src/audio/audio_device_module_ios.h",
261*d9f75844SAndroid Build Coastguard Worker          "objc/native/src/audio/audio_device_module_ios.mm",
262*d9f75844SAndroid Build Coastguard Worker          "objc/native/src/audio/helpers.h",
263*d9f75844SAndroid Build Coastguard Worker          "objc/native/src/audio/helpers.mm",
264*d9f75844SAndroid Build Coastguard Worker          "objc/native/src/audio/voice_processing_audio_unit.h",
265*d9f75844SAndroid Build Coastguard Worker          "objc/native/src/audio/voice_processing_audio_unit.mm",
266*d9f75844SAndroid Build Coastguard Worker        ]
267*d9f75844SAndroid Build Coastguard Worker
268*d9f75844SAndroid Build Coastguard Worker        deps = [
269*d9f75844SAndroid Build Coastguard Worker          ":audio_objc",
270*d9f75844SAndroid Build Coastguard Worker          ":audio_session_observer",
271*d9f75844SAndroid Build Coastguard Worker          ":base_objc",
272*d9f75844SAndroid Build Coastguard Worker          "../api:array_view",
273*d9f75844SAndroid Build Coastguard Worker          "../api:scoped_refptr",
274*d9f75844SAndroid Build Coastguard Worker          "../api:sequence_checker",
275*d9f75844SAndroid Build Coastguard Worker          "../api/task_queue",
276*d9f75844SAndroid Build Coastguard Worker          "../api/task_queue:default_task_queue_factory",
277*d9f75844SAndroid Build Coastguard Worker          "../api/task_queue:pending_task_safety_flag",
278*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_device:audio_device_api",
279*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_device:audio_device_buffer",
280*d9f75844SAndroid Build Coastguard Worker          "../modules/audio_device:audio_device_generic",
281*d9f75844SAndroid Build Coastguard Worker          "../rtc_base",
282*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:buffer",
283*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:checks",
284*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:logging",
285*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:macromagic",
286*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:refcount",
287*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:threading",
288*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:timeutils",
289*d9f75844SAndroid Build Coastguard Worker          "../system_wrappers:field_trial",
290*d9f75844SAndroid Build Coastguard Worker          "../system_wrappers:metrics",
291*d9f75844SAndroid Build Coastguard Worker        ]
292*d9f75844SAndroid Build Coastguard Worker        absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
293*d9f75844SAndroid Build Coastguard Worker
294*d9f75844SAndroid Build Coastguard Worker        frameworks = [ "AudioToolbox.framework" ]
295*d9f75844SAndroid Build Coastguard Worker      }
296*d9f75844SAndroid Build Coastguard Worker
297*d9f75844SAndroid Build Coastguard Worker      # This target exists to expose :audio_session_objc and
298*d9f75844SAndroid Build Coastguard Worker      # :audio_session_delegate_adapter_objc for backward compatibility,
299*d9f75844SAndroid Build Coastguard Worker      # and should be deprecated.
300*d9f75844SAndroid Build Coastguard Worker      group("audio_objc") {
301*d9f75844SAndroid Build Coastguard Worker        public_deps = [  # no-presubmit-check TODO(webrtc:11238)
302*d9f75844SAndroid Build Coastguard Worker          ":audio_session_delegate_adapter_objc",
303*d9f75844SAndroid Build Coastguard Worker          ":audio_session_objc",
304*d9f75844SAndroid Build Coastguard Worker        ]
305*d9f75844SAndroid Build Coastguard Worker      }
306*d9f75844SAndroid Build Coastguard Worker
307*d9f75844SAndroid Build Coastguard Worker      rtc_library("audio_session_delegate_adapter_objc") {
308*d9f75844SAndroid Build Coastguard Worker        sources = [
309*d9f75844SAndroid Build Coastguard Worker          "objc/components/audio/RTCNativeAudioSessionDelegateAdapter.h",
310*d9f75844SAndroid Build Coastguard Worker          "objc/components/audio/RTCNativeAudioSessionDelegateAdapter.mm",
311*d9f75844SAndroid Build Coastguard Worker        ]
312*d9f75844SAndroid Build Coastguard Worker
313*d9f75844SAndroid Build Coastguard Worker        configs += [
314*d9f75844SAndroid Build Coastguard Worker          "..:common_objc",
315*d9f75844SAndroid Build Coastguard Worker          ":used_from_extension",
316*d9f75844SAndroid Build Coastguard Worker        ]
317*d9f75844SAndroid Build Coastguard Worker
318*d9f75844SAndroid Build Coastguard Worker        public_configs = [ ":common_config_objc" ]
319*d9f75844SAndroid Build Coastguard Worker
320*d9f75844SAndroid Build Coastguard Worker        deps = [
321*d9f75844SAndroid Build Coastguard Worker          ":audio_session_objc",
322*d9f75844SAndroid Build Coastguard Worker          ":audio_session_observer",
323*d9f75844SAndroid Build Coastguard Worker          ":base_objc",
324*d9f75844SAndroid Build Coastguard Worker        ]
325*d9f75844SAndroid Build Coastguard Worker      }
326*d9f75844SAndroid Build Coastguard Worker
327*d9f75844SAndroid Build Coastguard Worker      rtc_library("audio_session_objc") {
328*d9f75844SAndroid Build Coastguard Worker        visibility = [ "*" ]
329*d9f75844SAndroid Build Coastguard Worker
330*d9f75844SAndroid Build Coastguard Worker        sources = [
331*d9f75844SAndroid Build Coastguard Worker          "objc/components/audio/RTCAudioSession+Configuration.mm",
332*d9f75844SAndroid Build Coastguard Worker          "objc/components/audio/RTCAudioSession+Private.h",
333*d9f75844SAndroid Build Coastguard Worker          "objc/components/audio/RTCAudioSession.h",
334*d9f75844SAndroid Build Coastguard Worker          "objc/components/audio/RTCAudioSession.mm",
335*d9f75844SAndroid Build Coastguard Worker          "objc/components/audio/RTCAudioSessionConfiguration.h",
336*d9f75844SAndroid Build Coastguard Worker          "objc/components/audio/RTCAudioSessionConfiguration.m",
337*d9f75844SAndroid Build Coastguard Worker        ]
338*d9f75844SAndroid Build Coastguard Worker
339*d9f75844SAndroid Build Coastguard Worker        configs += [
340*d9f75844SAndroid Build Coastguard Worker          "..:common_objc",
341*d9f75844SAndroid Build Coastguard Worker          ":used_from_extension",
342*d9f75844SAndroid Build Coastguard Worker        ]
343*d9f75844SAndroid Build Coastguard Worker
344*d9f75844SAndroid Build Coastguard Worker        public_configs = [ ":common_config_objc" ]
345*d9f75844SAndroid Build Coastguard Worker
346*d9f75844SAndroid Build Coastguard Worker        frameworks = [ "AVFoundation.framework" ]
347*d9f75844SAndroid Build Coastguard Worker
348*d9f75844SAndroid Build Coastguard Worker        deps = [
349*d9f75844SAndroid Build Coastguard Worker          ":base_objc",
350*d9f75844SAndroid Build Coastguard Worker          ":helpers_objc",
351*d9f75844SAndroid Build Coastguard Worker          "../rtc_base",
352*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:checks",
353*d9f75844SAndroid Build Coastguard Worker          "../rtc_base/synchronization:mutex",
354*d9f75844SAndroid Build Coastguard Worker        ]
355*d9f75844SAndroid Build Coastguard Worker
356*d9f75844SAndroid Build Coastguard Worker        absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
357*d9f75844SAndroid Build Coastguard Worker      }
358*d9f75844SAndroid Build Coastguard Worker
359*d9f75844SAndroid Build Coastguard Worker      rtc_source_set("network_monitor_observer") {
360*d9f75844SAndroid Build Coastguard Worker        visibility = [ ":*" ]
361*d9f75844SAndroid Build Coastguard Worker
362*d9f75844SAndroid Build Coastguard Worker        sources = [ "objc/native/src/network_monitor_observer.h" ]
363*d9f75844SAndroid Build Coastguard Worker
364*d9f75844SAndroid Build Coastguard Worker        deps = [
365*d9f75844SAndroid Build Coastguard Worker          "../rtc_base",
366*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:network_constants",
367*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:stringutils",
368*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:threading",
369*d9f75844SAndroid Build Coastguard Worker        ]
370*d9f75844SAndroid Build Coastguard Worker
371*d9f75844SAndroid Build Coastguard Worker        absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
372*d9f75844SAndroid Build Coastguard Worker      }
373*d9f75844SAndroid Build Coastguard Worker
374*d9f75844SAndroid Build Coastguard Worker      rtc_library("network_monitor_objc") {
375*d9f75844SAndroid Build Coastguard Worker        visibility = [ "*" ]
376*d9f75844SAndroid Build Coastguard Worker
377*d9f75844SAndroid Build Coastguard Worker        sources = [
378*d9f75844SAndroid Build Coastguard Worker          "objc/components/network/RTCNetworkMonitor+Private.h",
379*d9f75844SAndroid Build Coastguard Worker          "objc/components/network/RTCNetworkMonitor.h",
380*d9f75844SAndroid Build Coastguard Worker          "objc/components/network/RTCNetworkMonitor.mm",
381*d9f75844SAndroid Build Coastguard Worker        ]
382*d9f75844SAndroid Build Coastguard Worker
383*d9f75844SAndroid Build Coastguard Worker        configs += [ ":used_from_extension" ]
384*d9f75844SAndroid Build Coastguard Worker
385*d9f75844SAndroid Build Coastguard Worker        frameworks = [ "Network.framework" ]
386*d9f75844SAndroid Build Coastguard Worker
387*d9f75844SAndroid Build Coastguard Worker        deps = [
388*d9f75844SAndroid Build Coastguard Worker          ":base_objc",
389*d9f75844SAndroid Build Coastguard Worker          ":helpers_objc",
390*d9f75844SAndroid Build Coastguard Worker          ":network_monitor_observer",
391*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:stringutils",
392*d9f75844SAndroid Build Coastguard Worker          "../rtc_base/system:gcd_helpers",
393*d9f75844SAndroid Build Coastguard Worker        ]
394*d9f75844SAndroid Build Coastguard Worker      }
395*d9f75844SAndroid Build Coastguard Worker    }
396*d9f75844SAndroid Build Coastguard Worker
397*d9f75844SAndroid Build Coastguard Worker    rtc_source_set("audio_device_api_objc") {
398*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
399*d9f75844SAndroid Build Coastguard Worker
400*d9f75844SAndroid Build Coastguard Worker      sources = [ "objc/components/audio/RTCAudioDevice.h" ]
401*d9f75844SAndroid Build Coastguard Worker
402*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
403*d9f75844SAndroid Build Coastguard Worker
404*d9f75844SAndroid Build Coastguard Worker      frameworks = [ "AudioToolbox.framework" ]
405*d9f75844SAndroid Build Coastguard Worker
406*d9f75844SAndroid Build Coastguard Worker      deps = [ ":base_objc" ]
407*d9f75844SAndroid Build Coastguard Worker    }
408*d9f75844SAndroid Build Coastguard Worker
409*d9f75844SAndroid Build Coastguard Worker    rtc_library("audio_device_objc") {
410*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
411*d9f75844SAndroid Build Coastguard Worker      allow_poison = [ "default_task_queue" ]
412*d9f75844SAndroid Build Coastguard Worker      sources = [
413*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_audio_device.h",
414*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_audio_device.mm",
415*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_audio_device_delegate.h",
416*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_audio_device_delegate.mm",
417*d9f75844SAndroid Build Coastguard Worker      ]
418*d9f75844SAndroid Build Coastguard Worker
419*d9f75844SAndroid Build Coastguard Worker      deps = [
420*d9f75844SAndroid Build Coastguard Worker        ":audio_device_api_objc",
421*d9f75844SAndroid Build Coastguard Worker        "../api:array_view",
422*d9f75844SAndroid Build Coastguard Worker        "../api:make_ref_counted",
423*d9f75844SAndroid Build Coastguard Worker        "../api:refcountedbase",
424*d9f75844SAndroid Build Coastguard Worker        "../api:scoped_refptr",
425*d9f75844SAndroid Build Coastguard Worker        "../api:sequence_checker",
426*d9f75844SAndroid Build Coastguard Worker        "../api/task_queue",
427*d9f75844SAndroid Build Coastguard Worker        "../api/task_queue:default_task_queue_factory",
428*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_device:audio_device_api",
429*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_device:audio_device_buffer",
430*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:buffer",
431*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
432*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
433*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:safe_minmax",
434*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:threading",
435*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:timeutils",
436*d9f75844SAndroid Build Coastguard Worker      ]
437*d9f75844SAndroid Build Coastguard Worker    }
438*d9f75844SAndroid Build Coastguard Worker
439*d9f75844SAndroid Build Coastguard Worker    rtc_library("objc_audio_device_module") {
440*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
441*d9f75844SAndroid Build Coastguard Worker      allow_poison = [ "default_task_queue" ]
442*d9f75844SAndroid Build Coastguard Worker      sources = [
443*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/objc_audio_device_module.h",
444*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/objc_audio_device_module.mm",
445*d9f75844SAndroid Build Coastguard Worker      ]
446*d9f75844SAndroid Build Coastguard Worker
447*d9f75844SAndroid Build Coastguard Worker      deps = [
448*d9f75844SAndroid Build Coastguard Worker        ":audio_device_api_objc",
449*d9f75844SAndroid Build Coastguard Worker        ":audio_device_objc",
450*d9f75844SAndroid Build Coastguard Worker        "../api:make_ref_counted",
451*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_device:audio_device_api",
452*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
453*d9f75844SAndroid Build Coastguard Worker      ]
454*d9f75844SAndroid Build Coastguard Worker    }
455*d9f75844SAndroid Build Coastguard Worker
456*d9f75844SAndroid Build Coastguard Worker    rtc_library("videosource_objc") {
457*d9f75844SAndroid Build Coastguard Worker      sources = [
458*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCVideoSource+Private.h",
459*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCVideoSource.h",
460*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCVideoSource.mm",
461*d9f75844SAndroid Build Coastguard Worker      ]
462*d9f75844SAndroid Build Coastguard Worker
463*d9f75844SAndroid Build Coastguard Worker      deps = [
464*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
465*d9f75844SAndroid Build Coastguard Worker        ":mediasource_objc",
466*d9f75844SAndroid Build Coastguard Worker        ":native_video",
467*d9f75844SAndroid Build Coastguard Worker        ":videoframebuffer_objc",
468*d9f75844SAndroid Build Coastguard Worker        "../api:libjingle_peerconnection_api",
469*d9f75844SAndroid Build Coastguard Worker        "../api:media_stream_interface",
470*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_frame",
471*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_rtp_headers",
472*d9f75844SAndroid Build Coastguard Worker        "../common_video",
473*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_media_base",
474*d9f75844SAndroid Build Coastguard Worker        "../pc:video_track_source_proxy",
475*d9f75844SAndroid Build Coastguard Worker        "../rtc_base",
476*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
477*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:threading",
478*d9f75844SAndroid Build Coastguard Worker        "//third_party/libyuv",
479*d9f75844SAndroid Build Coastguard Worker      ]
480*d9f75844SAndroid Build Coastguard Worker
481*d9f75844SAndroid Build Coastguard Worker      configs += [
482*d9f75844SAndroid Build Coastguard Worker        "..:common_objc",
483*d9f75844SAndroid Build Coastguard Worker        ":used_from_extension",
484*d9f75844SAndroid Build Coastguard Worker      ]
485*d9f75844SAndroid Build Coastguard Worker    }
486*d9f75844SAndroid Build Coastguard Worker
487*d9f75844SAndroid Build Coastguard Worker    rtc_library("videoframebuffer_objc") {
488*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
489*d9f75844SAndroid Build Coastguard Worker      sources = [
490*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_frame_buffer/RTCNativeI420Buffer+Private.h",
491*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_frame_buffer/RTCNativeI420Buffer.h",
492*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_frame_buffer/RTCNativeI420Buffer.mm",
493*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.h",
494*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.mm",
495*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_frame_buffer/RTCCVPixelBuffer.h",
496*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_frame_buffer/RTCCVPixelBuffer.mm",
497*d9f75844SAndroid Build Coastguard Worker      ]
498*d9f75844SAndroid Build Coastguard Worker      deps = [
499*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
500*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
501*d9f75844SAndroid Build Coastguard Worker        "//api/video:video_frame",
502*d9f75844SAndroid Build Coastguard Worker        "//api/video:video_rtp_headers",
503*d9f75844SAndroid Build Coastguard Worker        "//common_video",
504*d9f75844SAndroid Build Coastguard Worker        "//rtc_base:checks",
505*d9f75844SAndroid Build Coastguard Worker        "//third_party/libyuv",
506*d9f75844SAndroid Build Coastguard Worker      ]
507*d9f75844SAndroid Build Coastguard Worker      configs += [
508*d9f75844SAndroid Build Coastguard Worker        "..:common_objc",
509*d9f75844SAndroid Build Coastguard Worker        ":used_from_extension",
510*d9f75844SAndroid Build Coastguard Worker      ]
511*d9f75844SAndroid Build Coastguard Worker      frameworks = [
512*d9f75844SAndroid Build Coastguard Worker        "VideoToolbox.framework",
513*d9f75844SAndroid Build Coastguard Worker        "CoreGraphics.framework",
514*d9f75844SAndroid Build Coastguard Worker        "CoreVideo.framework",
515*d9f75844SAndroid Build Coastguard Worker      ]
516*d9f75844SAndroid Build Coastguard Worker    }
517*d9f75844SAndroid Build Coastguard Worker
518*d9f75844SAndroid Build Coastguard Worker    rtc_library("opengl_objc") {
519*d9f75844SAndroid Build Coastguard Worker      sources = [
520*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/opengl/RTCDefaultShader.h",
521*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/opengl/RTCDefaultShader.mm",
522*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/opengl/RTCI420TextureCache.h",
523*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/opengl/RTCI420TextureCache.mm",
524*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/opengl/RTCOpenGLDefines.h",
525*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/opengl/RTCShader.h",
526*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/opengl/RTCShader.mm",
527*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/opengl/RTCVideoViewShading.h",
528*d9f75844SAndroid Build Coastguard Worker      ]
529*d9f75844SAndroid Build Coastguard Worker      frameworks = [ "CoreVideo.framework" ]
530*d9f75844SAndroid Build Coastguard Worker      if (is_ios) {
531*d9f75844SAndroid Build Coastguard Worker        sources += [
532*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCNV12TextureCache.h",
533*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCNV12TextureCache.m",
534*d9f75844SAndroid Build Coastguard Worker        ]
535*d9f75844SAndroid Build Coastguard Worker        frameworks += [
536*d9f75844SAndroid Build Coastguard Worker          "GLKit.framework",
537*d9f75844SAndroid Build Coastguard Worker          "OpenGLES.framework",
538*d9f75844SAndroid Build Coastguard Worker          "QuartzCore.framework",
539*d9f75844SAndroid Build Coastguard Worker        ]
540*d9f75844SAndroid Build Coastguard Worker      } else if (is_mac) {
541*d9f75844SAndroid Build Coastguard Worker        frameworks += [
542*d9f75844SAndroid Build Coastguard Worker          "CoreMedia.framework",
543*d9f75844SAndroid Build Coastguard Worker          "OpenGL.framework",
544*d9f75844SAndroid Build Coastguard Worker        ]
545*d9f75844SAndroid Build Coastguard Worker      }
546*d9f75844SAndroid Build Coastguard Worker
547*d9f75844SAndroid Build Coastguard Worker      # TODO(bugs.webrtc.org/12937): Remove OpenGL deprecation warning
548*d9f75844SAndroid Build Coastguard Worker      # workaround.
549*d9f75844SAndroid Build Coastguard Worker      defines = [ "GLES_SILENCE_DEPRECATION" ]
550*d9f75844SAndroid Build Coastguard Worker
551*d9f75844SAndroid Build Coastguard Worker      deps = [
552*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
553*d9f75844SAndroid Build Coastguard Worker        ":helpers_objc",
554*d9f75844SAndroid Build Coastguard Worker        ":mediaconstraints_objc",
555*d9f75844SAndroid Build Coastguard Worker        ":native_video",
556*d9f75844SAndroid Build Coastguard Worker        ":videoframebuffer_objc",
557*d9f75844SAndroid Build Coastguard Worker        ":videosource_objc",
558*d9f75844SAndroid Build Coastguard Worker        "../api:libjingle_peerconnection_api",
559*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_frame",
560*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_rtp_headers",
561*d9f75844SAndroid Build Coastguard Worker        "../common_video",
562*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_media_base",
563*d9f75844SAndroid Build Coastguard Worker        "../rtc_base",
564*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
565*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
566*d9f75844SAndroid Build Coastguard Worker      ]
567*d9f75844SAndroid Build Coastguard Worker      absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
568*d9f75844SAndroid Build Coastguard Worker
569*d9f75844SAndroid Build Coastguard Worker      configs += [
570*d9f75844SAndroid Build Coastguard Worker        "..:common_objc",
571*d9f75844SAndroid Build Coastguard Worker        ":used_from_extension",
572*d9f75844SAndroid Build Coastguard Worker      ]
573*d9f75844SAndroid Build Coastguard Worker    }
574*d9f75844SAndroid Build Coastguard Worker
575*d9f75844SAndroid Build Coastguard Worker    rtc_library("opengl_ui_objc") {
576*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
577*d9f75844SAndroid Build Coastguard Worker      allow_poison = [
578*d9f75844SAndroid Build Coastguard Worker        "audio_codecs",  # TODO(bugs.webrtc.org/8396): Remove.
579*d9f75844SAndroid Build Coastguard Worker        "default_task_queue",
580*d9f75844SAndroid Build Coastguard Worker      ]
581*d9f75844SAndroid Build Coastguard Worker      if (is_ios) {
582*d9f75844SAndroid Build Coastguard Worker        sources = [
583*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCDisplayLinkTimer.h",
584*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCDisplayLinkTimer.m",
585*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCEAGLVideoView.h",
586*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCEAGLVideoView.m",
587*d9f75844SAndroid Build Coastguard Worker        ]
588*d9f75844SAndroid Build Coastguard Worker
589*d9f75844SAndroid Build Coastguard Worker        # TODO(bugs.webrtc.org/12937): Remove OpenGL deprecation warning
590*d9f75844SAndroid Build Coastguard Worker        # workaround.
591*d9f75844SAndroid Build Coastguard Worker        defines = [ "GLES_SILENCE_DEPRECATION" ]
592*d9f75844SAndroid Build Coastguard Worker      }
593*d9f75844SAndroid Build Coastguard Worker      if (is_mac) {
594*d9f75844SAndroid Build Coastguard Worker        sources = [
595*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCNSGLVideoView.h",
596*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCNSGLVideoView.m",
597*d9f75844SAndroid Build Coastguard Worker        ]
598*d9f75844SAndroid Build Coastguard Worker      }
599*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
600*d9f75844SAndroid Build Coastguard Worker      deps = [
601*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
602*d9f75844SAndroid Build Coastguard Worker        ":helpers_objc",
603*d9f75844SAndroid Build Coastguard Worker        ":metal_objc",
604*d9f75844SAndroid Build Coastguard Worker        ":opengl_objc",
605*d9f75844SAndroid Build Coastguard Worker        ":videocapture_objc",
606*d9f75844SAndroid Build Coastguard Worker        ":videoframebuffer_objc",
607*d9f75844SAndroid Build Coastguard Worker      ]
608*d9f75844SAndroid Build Coastguard Worker    }
609*d9f75844SAndroid Build Coastguard Worker
610*d9f75844SAndroid Build Coastguard Worker    rtc_library("metal_objc") {
611*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
612*d9f75844SAndroid Build Coastguard Worker      allow_poison = [
613*d9f75844SAndroid Build Coastguard Worker        "audio_codecs",  # TODO(bugs.webrtc.org/8396): Remove.
614*d9f75844SAndroid Build Coastguard Worker        "default_task_queue",
615*d9f75844SAndroid Build Coastguard Worker      ]
616*d9f75844SAndroid Build Coastguard Worker      sources = [
617*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/metal/RTCMTLI420Renderer.h",
618*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/metal/RTCMTLI420Renderer.mm",
619*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/metal/RTCMTLNV12Renderer.h",
620*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/metal/RTCMTLNV12Renderer.mm",
621*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/metal/RTCMTLRGBRenderer.h",
622*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/metal/RTCMTLRGBRenderer.mm",
623*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/metal/RTCMTLRenderer+Private.h",
624*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/metal/RTCMTLRenderer.h",
625*d9f75844SAndroid Build Coastguard Worker        "objc/components/renderer/metal/RTCMTLRenderer.mm",
626*d9f75844SAndroid Build Coastguard Worker      ]
627*d9f75844SAndroid Build Coastguard Worker      frameworks = [
628*d9f75844SAndroid Build Coastguard Worker        "CoreVideo.framework",
629*d9f75844SAndroid Build Coastguard Worker        "Metal.framework",
630*d9f75844SAndroid Build Coastguard Worker        "MetalKit.framework",
631*d9f75844SAndroid Build Coastguard Worker      ]
632*d9f75844SAndroid Build Coastguard Worker      if (is_ios) {
633*d9f75844SAndroid Build Coastguard Worker        sources += [
634*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/metal/RTCMTLVideoView.h",
635*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/metal/RTCMTLVideoView.m",
636*d9f75844SAndroid Build Coastguard Worker        ]
637*d9f75844SAndroid Build Coastguard Worker      }
638*d9f75844SAndroid Build Coastguard Worker      if (is_mac) {
639*d9f75844SAndroid Build Coastguard Worker        sources += [
640*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/metal/RTCMTLNSVideoView.h",
641*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/metal/RTCMTLNSVideoView.m",
642*d9f75844SAndroid Build Coastguard Worker        ]
643*d9f75844SAndroid Build Coastguard Worker        frameworks += [ "AppKit.framework" ]
644*d9f75844SAndroid Build Coastguard Worker      }
645*d9f75844SAndroid Build Coastguard Worker      deps = [
646*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
647*d9f75844SAndroid Build Coastguard Worker        ":peerconnectionfactory_base_objc",
648*d9f75844SAndroid Build Coastguard Worker        ":videoframebuffer_objc",
649*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_frame",
650*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_rtp_headers",
651*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
652*d9f75844SAndroid Build Coastguard Worker      ]
653*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
654*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
655*d9f75844SAndroid Build Coastguard Worker    }
656*d9f75844SAndroid Build Coastguard Worker
657*d9f75844SAndroid Build Coastguard Worker    # TODO(bugs.webrtc.org/9627): Remove this target.
658*d9f75844SAndroid Build Coastguard Worker    rtc_library("videocapturebase_objc") {
659*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
660*d9f75844SAndroid Build Coastguard Worker      sources = [ "objc/helpers/noop.mm" ]
661*d9f75844SAndroid Build Coastguard Worker
662*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
663*d9f75844SAndroid Build Coastguard Worker
664*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
665*d9f75844SAndroid Build Coastguard Worker
666*d9f75844SAndroid Build Coastguard Worker      deps = [
667*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
668*d9f75844SAndroid Build Coastguard Worker        ":videoframebuffer_objc",
669*d9f75844SAndroid Build Coastguard Worker      ]
670*d9f75844SAndroid Build Coastguard Worker    }
671*d9f75844SAndroid Build Coastguard Worker
672*d9f75844SAndroid Build Coastguard Worker    rtc_library("videocapture_objc") {
673*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
674*d9f75844SAndroid Build Coastguard Worker      allow_poison = [ "audio_codecs" ]  # TODO(bugs.webrtc.org/8396): Remove.
675*d9f75844SAndroid Build Coastguard Worker      sources = [
676*d9f75844SAndroid Build Coastguard Worker        "objc/components/capturer/RTCCameraVideoCapturer.h",
677*d9f75844SAndroid Build Coastguard Worker        "objc/components/capturer/RTCCameraVideoCapturer.m",
678*d9f75844SAndroid Build Coastguard Worker        "objc/components/capturer/RTCFileVideoCapturer.h",
679*d9f75844SAndroid Build Coastguard Worker        "objc/components/capturer/RTCFileVideoCapturer.m",
680*d9f75844SAndroid Build Coastguard Worker      ]
681*d9f75844SAndroid Build Coastguard Worker      frameworks = [
682*d9f75844SAndroid Build Coastguard Worker        "AVFoundation.framework",
683*d9f75844SAndroid Build Coastguard Worker        "CoreVideo.framework",
684*d9f75844SAndroid Build Coastguard Worker        "QuartzCore.framework",
685*d9f75844SAndroid Build Coastguard Worker      ]
686*d9f75844SAndroid Build Coastguard Worker
687*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
688*d9f75844SAndroid Build Coastguard Worker
689*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
690*d9f75844SAndroid Build Coastguard Worker
691*d9f75844SAndroid Build Coastguard Worker      deps = [
692*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
693*d9f75844SAndroid Build Coastguard Worker        ":helpers_objc",
694*d9f75844SAndroid Build Coastguard Worker        ":videoframebuffer_objc",
695*d9f75844SAndroid Build Coastguard Worker        "../rtc_base/system:gcd_helpers",
696*d9f75844SAndroid Build Coastguard Worker      ]
697*d9f75844SAndroid Build Coastguard Worker    }
698*d9f75844SAndroid Build Coastguard Worker
699*d9f75844SAndroid Build Coastguard Worker    rtc_library("videocodec_objc") {
700*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
701*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:no_global_constructors" ]
702*d9f75844SAndroid Build Coastguard Worker      sources = [
703*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCCodecSpecificInfoH264+Private.h",
704*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCCodecSpecificInfoH264.h",
705*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCCodecSpecificInfoH264.mm",
706*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCH264ProfileLevelId.h",
707*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCH264ProfileLevelId.mm",
708*d9f75844SAndroid Build Coastguard Worker      ]
709*d9f75844SAndroid Build Coastguard Worker      if (is_ios) {
710*d9f75844SAndroid Build Coastguard Worker        sources += [
711*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/UIDevice+H264Profile.h",
712*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/UIDevice+H264Profile.mm",
713*d9f75844SAndroid Build Coastguard Worker        ]
714*d9f75844SAndroid Build Coastguard Worker      }
715*d9f75844SAndroid Build Coastguard Worker
716*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
717*d9f75844SAndroid Build Coastguard Worker      deps = [
718*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
719*d9f75844SAndroid Build Coastguard Worker        ":helpers_objc",
720*d9f75844SAndroid Build Coastguard Worker        "../api/video_codecs:video_codecs_api",
721*d9f75844SAndroid Build Coastguard Worker        "../common_video",
722*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_media_base",
723*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:video_codec_interface",
724*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
725*d9f75844SAndroid Build Coastguard Worker      ]
726*d9f75844SAndroid Build Coastguard Worker    }
727*d9f75844SAndroid Build Coastguard Worker
728*d9f75844SAndroid Build Coastguard Worker    rtc_library("default_codec_factory_objc") {
729*d9f75844SAndroid Build Coastguard Worker      sources = [
730*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCDefaultVideoDecoderFactory.h",
731*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCDefaultVideoDecoderFactory.m",
732*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCDefaultVideoEncoderFactory.h",
733*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCDefaultVideoEncoderFactory.m",
734*d9f75844SAndroid Build Coastguard Worker      ]
735*d9f75844SAndroid Build Coastguard Worker
736*d9f75844SAndroid Build Coastguard Worker      deps = [
737*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
738*d9f75844SAndroid Build Coastguard Worker        ":native_video",
739*d9f75844SAndroid Build Coastguard Worker        ":videocodec_objc",
740*d9f75844SAndroid Build Coastguard Worker        ":videotoolbox_objc",
741*d9f75844SAndroid Build Coastguard Worker        ":vp8",
742*d9f75844SAndroid Build Coastguard Worker        ":vp9",
743*d9f75844SAndroid Build Coastguard Worker        ":vpx_codec_constants",
744*d9f75844SAndroid Build Coastguard Worker      ]
745*d9f75844SAndroid Build Coastguard Worker
746*d9f75844SAndroid Build Coastguard Worker      defines = []
747*d9f75844SAndroid Build Coastguard Worker      if (enable_libaom) {
748*d9f75844SAndroid Build Coastguard Worker        defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ]
749*d9f75844SAndroid Build Coastguard Worker        deps += [ ":libaom_av1_encoder" ]
750*d9f75844SAndroid Build Coastguard Worker      }
751*d9f75844SAndroid Build Coastguard Worker
752*d9f75844SAndroid Build Coastguard Worker      if (rtc_include_dav1d_in_internal_decoder_factory) {
753*d9f75844SAndroid Build Coastguard Worker        deps += [ ":dav1d_decoder" ]
754*d9f75844SAndroid Build Coastguard Worker      }
755*d9f75844SAndroid Build Coastguard Worker    }
756*d9f75844SAndroid Build Coastguard Worker
757*d9f75844SAndroid Build Coastguard Worker    rtc_library("vpx_codec_constants") {
758*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:no_global_constructors" ]
759*d9f75844SAndroid Build Coastguard Worker      sources = [
760*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoCodecConstants.h",
761*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoCodecConstants.mm",
762*d9f75844SAndroid Build Coastguard Worker      ]
763*d9f75844SAndroid Build Coastguard Worker
764*d9f75844SAndroid Build Coastguard Worker      deps = [
765*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
766*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_media_base",
767*d9f75844SAndroid Build Coastguard Worker      ]
768*d9f75844SAndroid Build Coastguard Worker    }
769*d9f75844SAndroid Build Coastguard Worker
770*d9f75844SAndroid Build Coastguard Worker    rtc_library("vp8") {
771*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
772*d9f75844SAndroid Build Coastguard Worker      allow_poison = [ "software_video_codecs" ]
773*d9f75844SAndroid Build Coastguard Worker      sources = [
774*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoDecoderVP8.h",
775*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoDecoderVP8.mm",
776*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoEncoderVP8.h",
777*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoEncoderVP8.mm",
778*d9f75844SAndroid Build Coastguard Worker      ]
779*d9f75844SAndroid Build Coastguard Worker
780*d9f75844SAndroid Build Coastguard Worker      deps = [
781*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
782*d9f75844SAndroid Build Coastguard Worker        ":wrapped_native_codec_objc",
783*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:webrtc_vp8",
784*d9f75844SAndroid Build Coastguard Worker      ]
785*d9f75844SAndroid Build Coastguard Worker    }
786*d9f75844SAndroid Build Coastguard Worker
787*d9f75844SAndroid Build Coastguard Worker    rtc_library("vp9") {
788*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
789*d9f75844SAndroid Build Coastguard Worker      allow_poison = [ "software_video_codecs" ]
790*d9f75844SAndroid Build Coastguard Worker      sources = [
791*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoDecoderVP9.h",
792*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoDecoderVP9.mm",
793*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoEncoderVP9.h",
794*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoEncoderVP9.mm",
795*d9f75844SAndroid Build Coastguard Worker      ]
796*d9f75844SAndroid Build Coastguard Worker
797*d9f75844SAndroid Build Coastguard Worker      deps = [
798*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
799*d9f75844SAndroid Build Coastguard Worker        ":wrapped_native_codec_objc",
800*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_media_base",
801*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:webrtc_vp9",
802*d9f75844SAndroid Build Coastguard Worker      ]
803*d9f75844SAndroid Build Coastguard Worker    }
804*d9f75844SAndroid Build Coastguard Worker
805*d9f75844SAndroid Build Coastguard Worker    rtc_library("dav1d_decoder") {
806*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
807*d9f75844SAndroid Build Coastguard Worker      allow_poison = [ "software_video_codecs" ]
808*d9f75844SAndroid Build Coastguard Worker      sources = [
809*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoDecoderAV1.h",
810*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoDecoderAV1.mm",
811*d9f75844SAndroid Build Coastguard Worker      ]
812*d9f75844SAndroid Build Coastguard Worker
813*d9f75844SAndroid Build Coastguard Worker      deps = [
814*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
815*d9f75844SAndroid Build Coastguard Worker        ":wrapped_native_codec_objc",
816*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_media_base",
817*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding/codecs/av1:dav1d_decoder",
818*d9f75844SAndroid Build Coastguard Worker      ]
819*d9f75844SAndroid Build Coastguard Worker    }
820*d9f75844SAndroid Build Coastguard Worker
821*d9f75844SAndroid Build Coastguard Worker    rtc_library("libaom_av1_encoder") {
822*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
823*d9f75844SAndroid Build Coastguard Worker      allow_poison = [ "software_video_codecs" ]
824*d9f75844SAndroid Build Coastguard Worker      sources = [
825*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoEncoderAV1.h",
826*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCVideoEncoderAV1.mm",
827*d9f75844SAndroid Build Coastguard Worker      ]
828*d9f75844SAndroid Build Coastguard Worker
829*d9f75844SAndroid Build Coastguard Worker      deps = [
830*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
831*d9f75844SAndroid Build Coastguard Worker        ":wrapped_native_codec_objc",
832*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_media_base",
833*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding/codecs/av1:libaom_av1_encoder",
834*d9f75844SAndroid Build Coastguard Worker      ]
835*d9f75844SAndroid Build Coastguard Worker    }
836*d9f75844SAndroid Build Coastguard Worker
837*d9f75844SAndroid Build Coastguard Worker    rtc_library("mediaconstraints_objc") {
838*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:no_global_constructors" ]
839*d9f75844SAndroid Build Coastguard Worker      sources = [
840*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaConstraints+Private.h",
841*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaConstraints.h",
842*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaConstraints.mm",
843*d9f75844SAndroid Build Coastguard Worker      ]
844*d9f75844SAndroid Build Coastguard Worker
845*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
846*d9f75844SAndroid Build Coastguard Worker      deps = [
847*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
848*d9f75844SAndroid Build Coastguard Worker        ":helpers_objc",
849*d9f75844SAndroid Build Coastguard Worker        ":media_constraints",
850*d9f75844SAndroid Build Coastguard Worker      ]
851*d9f75844SAndroid Build Coastguard Worker    }
852*d9f75844SAndroid Build Coastguard Worker
853*d9f75844SAndroid Build Coastguard Worker    # TODO(bugs.webrtc.org/9627): Remove, targets should depend on base_objc.
854*d9f75844SAndroid Build Coastguard Worker    rtc_library("videorenderer_objc") {
855*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
856*d9f75844SAndroid Build Coastguard Worker      sources = [ "objc/helpers/noop.mm" ]
857*d9f75844SAndroid Build Coastguard Worker
858*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
859*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
860*d9f75844SAndroid Build Coastguard Worker
861*d9f75844SAndroid Build Coastguard Worker      deps = [ ":base_objc" ]
862*d9f75844SAndroid Build Coastguard Worker    }
863*d9f75844SAndroid Build Coastguard Worker
864*d9f75844SAndroid Build Coastguard Worker    rtc_library("videorendereradapter_objc") {
865*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
866*d9f75844SAndroid Build Coastguard Worker      allow_poison = [ "audio_codecs" ]  # TODO(bugs.webrtc.org/8396): Remove.
867*d9f75844SAndroid Build Coastguard Worker      sources = [
868*d9f75844SAndroid Build Coastguard Worker        "objc/api/RTCVideoRendererAdapter+Private.h",
869*d9f75844SAndroid Build Coastguard Worker        "objc/api/RTCVideoRendererAdapter.h",
870*d9f75844SAndroid Build Coastguard Worker        "objc/api/RTCVideoRendererAdapter.mm",
871*d9f75844SAndroid Build Coastguard Worker      ]
872*d9f75844SAndroid Build Coastguard Worker
873*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
874*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
875*d9f75844SAndroid Build Coastguard Worker
876*d9f75844SAndroid Build Coastguard Worker      deps = [
877*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
878*d9f75844SAndroid Build Coastguard Worker        ":native_api",
879*d9f75844SAndroid Build Coastguard Worker        ":videoframebuffer_objc",
880*d9f75844SAndroid Build Coastguard Worker        "../api:libjingle_peerconnection_api",
881*d9f75844SAndroid Build Coastguard Worker        "../api:media_stream_interface",
882*d9f75844SAndroid Build Coastguard Worker      ]
883*d9f75844SAndroid Build Coastguard Worker    }
884*d9f75844SAndroid Build Coastguard Worker
885*d9f75844SAndroid Build Coastguard Worker    rtc_library("mediasource_objc") {
886*d9f75844SAndroid Build Coastguard Worker      sources = [
887*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaSource+Private.h",
888*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaSource.h",
889*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaSource.mm",
890*d9f75844SAndroid Build Coastguard Worker      ]
891*d9f75844SAndroid Build Coastguard Worker
892*d9f75844SAndroid Build Coastguard Worker      configs += [
893*d9f75844SAndroid Build Coastguard Worker        "..:common_objc",
894*d9f75844SAndroid Build Coastguard Worker        ":used_from_extension",
895*d9f75844SAndroid Build Coastguard Worker      ]
896*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
897*d9f75844SAndroid Build Coastguard Worker
898*d9f75844SAndroid Build Coastguard Worker      deps = [
899*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
900*d9f75844SAndroid Build Coastguard Worker        "../api:media_stream_interface",
901*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
902*d9f75844SAndroid Build Coastguard Worker      ]
903*d9f75844SAndroid Build Coastguard Worker    }
904*d9f75844SAndroid Build Coastguard Worker
905*d9f75844SAndroid Build Coastguard Worker    rtc_library("base_native_additions_objc") {
906*d9f75844SAndroid Build Coastguard Worker      sources = [
907*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCEncodedImage+Private.h",
908*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCEncodedImage+Private.mm",
909*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCVideoCodecInfo+Private.h",
910*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCVideoCodecInfo+Private.mm",
911*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCVideoEncoderSettings+Private.h",
912*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCVideoEncoderSettings+Private.mm",
913*d9f75844SAndroid Build Coastguard Worker      ]
914*d9f75844SAndroid Build Coastguard Worker
915*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
916*d9f75844SAndroid Build Coastguard Worker
917*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
918*d9f75844SAndroid Build Coastguard Worker
919*d9f75844SAndroid Build Coastguard Worker      deps = [
920*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
921*d9f75844SAndroid Build Coastguard Worker        ":helpers_objc",
922*d9f75844SAndroid Build Coastguard Worker        "../api/video:encoded_image",
923*d9f75844SAndroid Build Coastguard Worker        "../api/video_codecs:video_codecs_api",
924*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:video_codec_interface",
925*d9f75844SAndroid Build Coastguard Worker        "../rtc_base",
926*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:refcount",
927*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:safe_conversions",
928*d9f75844SAndroid Build Coastguard Worker      ]
929*d9f75844SAndroid Build Coastguard Worker    }
930*d9f75844SAndroid Build Coastguard Worker
931*d9f75844SAndroid Build Coastguard Worker    rtc_library("peerconnectionfactory_base_objc") {
932*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
933*d9f75844SAndroid Build Coastguard Worker      allow_poison = [
934*d9f75844SAndroid Build Coastguard Worker        "audio_codecs",  # TODO(bugs.webrtc.org/8396): Remove.
935*d9f75844SAndroid Build Coastguard Worker        "default_task_queue",
936*d9f75844SAndroid Build Coastguard Worker      ]
937*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:no_global_constructors" ]
938*d9f75844SAndroid Build Coastguard Worker      sources = [
939*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCAudioSource+Private.h",
940*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCAudioSource.h",
941*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCAudioSource.mm",
942*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCAudioTrack+Private.h",
943*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCAudioTrack.h",
944*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCAudioTrack.mm",
945*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCCertificate.h",
946*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCCertificate.mm",
947*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCConfiguration+Native.h",
948*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCConfiguration+Private.h",
949*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCConfiguration.h",
950*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCConfiguration.mm",
951*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCCryptoOptions.h",
952*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCCryptoOptions.mm",
953*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCDataChannel+Private.h",
954*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCDataChannel.h",
955*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCDataChannel.mm",
956*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCDataChannelConfiguration+Private.h",
957*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCDataChannelConfiguration.h",
958*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCDataChannelConfiguration.mm",
959*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCDtmfSender+Private.h",
960*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCDtmfSender.h",
961*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCDtmfSender.mm",
962*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCFieldTrials.h",
963*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCFieldTrials.mm",
964*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCIceCandidate+Private.h",
965*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCIceCandidate.h",
966*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCIceCandidate.mm",
967*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCIceCandidateErrorEvent+Private.h",
968*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCIceCandidateErrorEvent.h",
969*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCIceCandidateErrorEvent.mm",
970*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCIceServer+Private.h",
971*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCIceServer.h",
972*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCIceServer.mm",
973*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCLegacyStatsReport+Private.h",
974*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCLegacyStatsReport.h",
975*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCLegacyStatsReport.mm",
976*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaStream+Private.h",
977*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaStream.h",
978*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaStream.mm",
979*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaStreamTrack+Private.h",
980*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaStreamTrack.h",
981*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMediaStreamTrack.mm",
982*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMetrics.h",
983*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMetrics.mm",
984*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMetricsSampleInfo+Private.h",
985*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMetricsSampleInfo.h",
986*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCMetricsSampleInfo.mm",
987*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnection+DataChannel.mm",
988*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnection+Private.h",
989*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnection+Stats.mm",
990*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnection.h",
991*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnection.mm",
992*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnectionFactory+Native.h",
993*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnectionFactory+Private.h",
994*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnectionFactory.h",
995*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnectionFactory.mm",
996*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnectionFactoryBuilder+DefaultComponents.h",
997*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnectionFactoryBuilder+DefaultComponents.mm",
998*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.h",
999*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm",
1000*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnectionFactoryOptions+Private.h",
1001*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h",
1002*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCPeerConnectionFactoryOptions.mm",
1003*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtcpParameters+Private.h",
1004*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtcpParameters.h",
1005*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtcpParameters.mm",
1006*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpCodecParameters+Private.h",
1007*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpCodecParameters.h",
1008*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpCodecParameters.mm",
1009*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpEncodingParameters+Private.h",
1010*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpEncodingParameters.h",
1011*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpEncodingParameters.mm",
1012*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpHeaderExtension+Private.h",
1013*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpHeaderExtension.h",
1014*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpHeaderExtension.mm",
1015*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpParameters+Private.h",
1016*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpParameters.h",
1017*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpParameters.mm",
1018*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpReceiver+Native.h",
1019*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpReceiver+Private.h",
1020*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpReceiver.h",
1021*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpReceiver.mm",
1022*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpSender+Native.h",
1023*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpSender+Private.h",
1024*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpSender.h",
1025*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpSender.mm",
1026*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpTransceiver+Private.h",
1027*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpTransceiver.h",
1028*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCRtpTransceiver.mm",
1029*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCSSLAdapter.h",
1030*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCSSLAdapter.mm",
1031*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCSessionDescription+Private.h",
1032*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCSessionDescription.h",
1033*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCSessionDescription.mm",
1034*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCStatisticsReport+Private.h",
1035*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCStatisticsReport.h",
1036*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCStatisticsReport.mm",
1037*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCTracing.h",
1038*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCTracing.mm",
1039*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCVideoTrack+Private.h",
1040*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCVideoTrack.h",
1041*d9f75844SAndroid Build Coastguard Worker        "objc/api/peerconnection/RTCVideoTrack.mm",
1042*d9f75844SAndroid Build Coastguard Worker      ]
1043*d9f75844SAndroid Build Coastguard Worker
1044*d9f75844SAndroid Build Coastguard Worker      configs += [
1045*d9f75844SAndroid Build Coastguard Worker        "..:common_objc",
1046*d9f75844SAndroid Build Coastguard Worker        ":used_from_extension",
1047*d9f75844SAndroid Build Coastguard Worker      ]
1048*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
1049*d9f75844SAndroid Build Coastguard Worker
1050*d9f75844SAndroid Build Coastguard Worker      deps = [
1051*d9f75844SAndroid Build Coastguard Worker        ":audio_device_api_objc",
1052*d9f75844SAndroid Build Coastguard Worker        ":base_native_additions_objc",
1053*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
1054*d9f75844SAndroid Build Coastguard Worker        ":file_logger_objc",
1055*d9f75844SAndroid Build Coastguard Worker        ":helpers_objc",
1056*d9f75844SAndroid Build Coastguard Worker        ":mediaconstraints_objc",
1057*d9f75844SAndroid Build Coastguard Worker        ":mediasource_objc",
1058*d9f75844SAndroid Build Coastguard Worker        ":native_api",
1059*d9f75844SAndroid Build Coastguard Worker        ":native_video",
1060*d9f75844SAndroid Build Coastguard Worker        ":objc_audio_device_module",
1061*d9f75844SAndroid Build Coastguard Worker        ":videoframebuffer_objc",
1062*d9f75844SAndroid Build Coastguard Worker        ":videorendereradapter_objc",
1063*d9f75844SAndroid Build Coastguard Worker        ":videosource_objc",
1064*d9f75844SAndroid Build Coastguard Worker        ":videotoolbox_objc",
1065*d9f75844SAndroid Build Coastguard Worker        "../api:dtmf_sender_interface",
1066*d9f75844SAndroid Build Coastguard Worker        "../api:libjingle_peerconnection_api",
1067*d9f75844SAndroid Build Coastguard Worker        "../api:media_stream_interface",
1068*d9f75844SAndroid Build Coastguard Worker        "../api:rtc_event_log_output_file",
1069*d9f75844SAndroid Build Coastguard Worker        "../api:rtc_stats_api",
1070*d9f75844SAndroid Build Coastguard Worker        "../api:rtp_parameters",
1071*d9f75844SAndroid Build Coastguard Worker        "../api:rtp_sender_interface",
1072*d9f75844SAndroid Build Coastguard Worker        "../api:scoped_refptr",
1073*d9f75844SAndroid Build Coastguard Worker        "../api/audio_codecs:audio_codecs_api",
1074*d9f75844SAndroid Build Coastguard Worker        "../api/audio_codecs:builtin_audio_decoder_factory",
1075*d9f75844SAndroid Build Coastguard Worker        "../api/audio_codecs:builtin_audio_encoder_factory",
1076*d9f75844SAndroid Build Coastguard Worker        "../api/crypto:frame_decryptor_interface",
1077*d9f75844SAndroid Build Coastguard Worker        "../api/crypto:frame_encryptor_interface",
1078*d9f75844SAndroid Build Coastguard Worker        "../api/rtc_event_log:rtc_event_log_factory",
1079*d9f75844SAndroid Build Coastguard Worker        "../api/task_queue:default_task_queue_factory",
1080*d9f75844SAndroid Build Coastguard Worker        "../api/transport:field_trial_based_config",
1081*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_frame",
1082*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_rtp_headers",
1083*d9f75844SAndroid Build Coastguard Worker        "../api/video_codecs:video_codecs_api",
1084*d9f75844SAndroid Build Coastguard Worker        "../common_video",
1085*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_audio_video",
1086*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_media_base",
1087*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_device:audio_device_api",
1088*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_processing",
1089*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_processing:api",
1090*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:video_codec_interface",
1091*d9f75844SAndroid Build Coastguard Worker        "../pc:peer_connection_factory",
1092*d9f75844SAndroid Build Coastguard Worker        "../pc:webrtc_sdp",
1093*d9f75844SAndroid Build Coastguard Worker        "../rtc_base",
1094*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
1095*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:event_tracer",
1096*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
1097*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:network_constants",
1098*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:safe_conversions",
1099*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:stringutils",
1100*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:threading",
1101*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:timeutils",
1102*d9f75844SAndroid Build Coastguard Worker        "../stats:rtc_stats",
1103*d9f75844SAndroid Build Coastguard Worker        "../system_wrappers:field_trial",
1104*d9f75844SAndroid Build Coastguard Worker        "../system_wrappers:metrics",
1105*d9f75844SAndroid Build Coastguard Worker      ]
1106*d9f75844SAndroid Build Coastguard Worker
1107*d9f75844SAndroid Build Coastguard Worker      if (is_ios) {
1108*d9f75844SAndroid Build Coastguard Worker        deps += [ ":native_api_audio_device_module" ]
1109*d9f75844SAndroid Build Coastguard Worker      }
1110*d9f75844SAndroid Build Coastguard Worker    }
1111*d9f75844SAndroid Build Coastguard Worker
1112*d9f75844SAndroid Build Coastguard Worker    if (rtc_include_tests) {
1113*d9f75844SAndroid Build Coastguard Worker      if (is_ios) {
1114*d9f75844SAndroid Build Coastguard Worker        rtc_library("sdk_unittests_sources") {
1115*d9f75844SAndroid Build Coastguard Worker          testonly = true
1116*d9f75844SAndroid Build Coastguard Worker          include_dirs = [ "objc/" ]
1117*d9f75844SAndroid Build Coastguard Worker
1118*d9f75844SAndroid Build Coastguard Worker          sources = [
1119*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/ObjCVideoTrackSource_xctest.mm",
1120*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCAudioSessionTest.mm",
1121*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCCVPixelBuffer_xctest.mm",
1122*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCCallbackLogger_xctest.m",
1123*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCCameraVideoCapturerTests.mm",
1124*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCCertificateTest.mm",
1125*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCConfigurationTest.mm",
1126*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCDataChannelConfigurationTest.mm",
1127*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCEncodedImage_xctest.mm",
1128*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCFileVideoCapturer_xctest.mm",
1129*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCH264ProfileLevelId_xctest.m",
1130*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCIceCandidateTest.mm",
1131*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCIceServerTest.mm",
1132*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCMTLVideoView_xctest.m",
1133*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCMediaConstraintsTest.mm",
1134*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCNV12TextureCache_xctest.m",
1135*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm",
1136*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCPeerConnectionFactory_xctest.m",
1137*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCPeerConnectionTest.mm",
1138*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCSessionDescriptionTest.mm",
1139*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCTracingTest.mm",
1140*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/frame_buffer_helpers.h",
1141*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/frame_buffer_helpers.mm",
1142*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/nalu_rewriter_xctest.mm",
1143*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/objc_video_decoder_factory_tests.mm",
1144*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/objc_video_encoder_factory_tests.mm",
1145*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/scoped_cftyperef_tests.mm",
1146*d9f75844SAndroid Build Coastguard Worker          ]
1147*d9f75844SAndroid Build Coastguard Worker
1148*d9f75844SAndroid Build Coastguard Worker          # TODO(bugs.webrtc.org/12937): Remove OpenGL deprecation warning
1149*d9f75844SAndroid Build Coastguard Worker          # workaround.
1150*d9f75844SAndroid Build Coastguard Worker          defines = [ "GLES_SILENCE_DEPRECATION" ]
1151*d9f75844SAndroid Build Coastguard Worker
1152*d9f75844SAndroid Build Coastguard Worker          # TODO(peterhanspers): Reenable these tests on simulator.
1153*d9f75844SAndroid Build Coastguard Worker          # See bugs.webrtc.org/7812
1154*d9f75844SAndroid Build Coastguard Worker          if (target_environment != "simulator") {
1155*d9f75844SAndroid Build Coastguard Worker            sources += [
1156*d9f75844SAndroid Build Coastguard Worker              "objc/unittests/RTCAudioDeviceModule_xctest.mm",
1157*d9f75844SAndroid Build Coastguard Worker              "objc/unittests/RTCAudioDevice_xctest.mm",
1158*d9f75844SAndroid Build Coastguard Worker            ]
1159*d9f75844SAndroid Build Coastguard Worker          }
1160*d9f75844SAndroid Build Coastguard Worker
1161*d9f75844SAndroid Build Coastguard Worker          deps = [
1162*d9f75844SAndroid Build Coastguard Worker            ":audio_device",
1163*d9f75844SAndroid Build Coastguard Worker            ":audio_session_objc",
1164*d9f75844SAndroid Build Coastguard Worker            ":base_native_additions_objc",
1165*d9f75844SAndroid Build Coastguard Worker            ":base_objc",
1166*d9f75844SAndroid Build Coastguard Worker            ":callback_logger_objc",
1167*d9f75844SAndroid Build Coastguard Worker            ":framework_objc",
1168*d9f75844SAndroid Build Coastguard Worker            ":helpers_objc",
1169*d9f75844SAndroid Build Coastguard Worker            ":mediaconstraints_objc",
1170*d9f75844SAndroid Build Coastguard Worker            ":metal_objc",
1171*d9f75844SAndroid Build Coastguard Worker            ":native_api",
1172*d9f75844SAndroid Build Coastguard Worker            ":native_api_audio_device_module",
1173*d9f75844SAndroid Build Coastguard Worker            ":native_video",
1174*d9f75844SAndroid Build Coastguard Worker            ":peerconnectionfactory_base_objc",
1175*d9f75844SAndroid Build Coastguard Worker            ":video_toolbox_cc",
1176*d9f75844SAndroid Build Coastguard Worker            ":videocapture_objc",
1177*d9f75844SAndroid Build Coastguard Worker            ":videocodec_objc",
1178*d9f75844SAndroid Build Coastguard Worker            ":videoframebuffer_objc",
1179*d9f75844SAndroid Build Coastguard Worker            ":videosource_objc",
1180*d9f75844SAndroid Build Coastguard Worker            ":videotoolbox_objc",
1181*d9f75844SAndroid Build Coastguard Worker            "../api:scoped_refptr",
1182*d9f75844SAndroid Build Coastguard Worker            "../api/audio_codecs:builtin_audio_decoder_factory",
1183*d9f75844SAndroid Build Coastguard Worker            "../api/audio_codecs:builtin_audio_encoder_factory",
1184*d9f75844SAndroid Build Coastguard Worker            "../api/task_queue:default_task_queue_factory",
1185*d9f75844SAndroid Build Coastguard Worker            "../api/video:video_frame",
1186*d9f75844SAndroid Build Coastguard Worker            "../api/video_codecs:video_codecs_api",
1187*d9f75844SAndroid Build Coastguard Worker            "../common_video",
1188*d9f75844SAndroid Build Coastguard Worker            "../media:rtc_media_base",
1189*d9f75844SAndroid Build Coastguard Worker            "../media:rtc_media_tests_utils",
1190*d9f75844SAndroid Build Coastguard Worker            "../modules/audio_device:audio_device_api",
1191*d9f75844SAndroid Build Coastguard Worker            "../modules/audio_processing:api",
1192*d9f75844SAndroid Build Coastguard Worker            "../modules/video_coding:video_codec_interface",
1193*d9f75844SAndroid Build Coastguard Worker            "../rtc_base",
1194*d9f75844SAndroid Build Coastguard Worker            "../rtc_base:gunit_helpers",
1195*d9f75844SAndroid Build Coastguard Worker            "../rtc_base:macromagic",
1196*d9f75844SAndroid Build Coastguard Worker            "../rtc_base:refcount",
1197*d9f75844SAndroid Build Coastguard Worker            "../rtc_base:rtc_event",
1198*d9f75844SAndroid Build Coastguard Worker            "../rtc_base/system:unused",
1199*d9f75844SAndroid Build Coastguard Worker            "../system_wrappers",
1200*d9f75844SAndroid Build Coastguard Worker            "//third_party/libyuv",
1201*d9f75844SAndroid Build Coastguard Worker          ]
1202*d9f75844SAndroid Build Coastguard Worker
1203*d9f75844SAndroid Build Coastguard Worker          if (rtc_ios_macos_use_opengl_rendering) {
1204*d9f75844SAndroid Build Coastguard Worker            deps += [ ":opengl_objc" ]
1205*d9f75844SAndroid Build Coastguard Worker          }
1206*d9f75844SAndroid Build Coastguard Worker
1207*d9f75844SAndroid Build Coastguard Worker          public_deps = [
1208*d9f75844SAndroid Build Coastguard Worker            "//build/config/ios:xctest",
1209*d9f75844SAndroid Build Coastguard Worker            "//third_party/ocmock",
1210*d9f75844SAndroid Build Coastguard Worker          ]
1211*d9f75844SAndroid Build Coastguard Worker        }
1212*d9f75844SAndroid Build Coastguard Worker
1213*d9f75844SAndroid Build Coastguard Worker        bundle_data("sdk_unittests_bundle_data") {
1214*d9f75844SAndroid Build Coastguard Worker          sources = [
1215*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/audio_short16.pcm",
1216*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/audio_short44.pcm",
1217*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/audio_short48.pcm",
1218*d9f75844SAndroid Build Coastguard Worker
1219*d9f75844SAndroid Build Coastguard Worker            # Sample video taken from https://media.xiph.org/video/derf/
1220*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/foreman.mp4",
1221*d9f75844SAndroid Build Coastguard Worker          ]
1222*d9f75844SAndroid Build Coastguard Worker          outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
1223*d9f75844SAndroid Build Coastguard Worker        }
1224*d9f75844SAndroid Build Coastguard Worker
1225*d9f75844SAndroid Build Coastguard Worker        # These tests use static linking.
1226*d9f75844SAndroid Build Coastguard Worker        rtc_test("sdk_unittests") {
1227*d9f75844SAndroid Build Coastguard Worker          is_xctest = true
1228*d9f75844SAndroid Build Coastguard Worker          info_plist = "//test/ios/Info.plist"
1229*d9f75844SAndroid Build Coastguard Worker          sources = [ "objc/unittests/main.mm" ]
1230*d9f75844SAndroid Build Coastguard Worker
1231*d9f75844SAndroid Build Coastguard Worker          extra_substitutions = [ "GTEST_BUNDLE_ID_SUFFIX=generic-unit-test" ]
1232*d9f75844SAndroid Build Coastguard Worker          deps = [
1233*d9f75844SAndroid Build Coastguard Worker            ":peerconnectionfactory_base_objc",
1234*d9f75844SAndroid Build Coastguard Worker            ":sdk_unittests_bundle_data",
1235*d9f75844SAndroid Build Coastguard Worker            ":sdk_unittests_sources",
1236*d9f75844SAndroid Build Coastguard Worker            "../rtc_base",
1237*d9f75844SAndroid Build Coastguard Worker            "../rtc_base:threading",
1238*d9f75844SAndroid Build Coastguard Worker            "//test:test_support",
1239*d9f75844SAndroid Build Coastguard Worker          ]
1240*d9f75844SAndroid Build Coastguard Worker          ldflags = [ "-all_load" ]
1241*d9f75844SAndroid Build Coastguard Worker        }
1242*d9f75844SAndroid Build Coastguard Worker
1243*d9f75844SAndroid Build Coastguard Worker        # These tests link to the framework.
1244*d9f75844SAndroid Build Coastguard Worker        rtc_test("sdk_framework_unittests") {
1245*d9f75844SAndroid Build Coastguard Worker          is_xctest = true
1246*d9f75844SAndroid Build Coastguard Worker          info_plist = "//test/ios/Info.plist"
1247*d9f75844SAndroid Build Coastguard Worker          sources = [
1248*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/RTCDoNotPutCPlusPlusInFrameworkHeaders_xctest.m",
1249*d9f75844SAndroid Build Coastguard Worker            "objc/unittests/main.mm",
1250*d9f75844SAndroid Build Coastguard Worker          ]
1251*d9f75844SAndroid Build Coastguard Worker
1252*d9f75844SAndroid Build Coastguard Worker          extra_substitutions = [ "GTEST_BUNDLE_ID_SUFFIX=generic-unit-test" ]
1253*d9f75844SAndroid Build Coastguard Worker          deps = [
1254*d9f75844SAndroid Build Coastguard Worker            ":framework_objc+link",
1255*d9f75844SAndroid Build Coastguard Worker            ":ios_framework_bundle",
1256*d9f75844SAndroid Build Coastguard Worker            "../rtc_base",
1257*d9f75844SAndroid Build Coastguard Worker            "../rtc_base:threading",
1258*d9f75844SAndroid Build Coastguard Worker            "//test:test_support",
1259*d9f75844SAndroid Build Coastguard Worker          ]
1260*d9f75844SAndroid Build Coastguard Worker        }
1261*d9f75844SAndroid Build Coastguard Worker      }
1262*d9f75844SAndroid Build Coastguard Worker    }
1263*d9f75844SAndroid Build Coastguard Worker
1264*d9f75844SAndroid Build Coastguard Worker    if (is_ios) {
1265*d9f75844SAndroid Build Coastguard Worker      apple_framework_bundle_with_umbrella_header("framework_objc") {
1266*d9f75844SAndroid Build Coastguard Worker        info_plist = "objc/Info.plist"
1267*d9f75844SAndroid Build Coastguard Worker        output_name = "WebRTC"
1268*d9f75844SAndroid Build Coastguard Worker
1269*d9f75844SAndroid Build Coastguard Worker        common_objc_headers = [
1270*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCCodecSpecificInfo.h",
1271*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCEncodedImage.h",
1272*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCI420Buffer.h",
1273*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCLogging.h",
1274*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCMacros.h",
1275*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCMutableI420Buffer.h",
1276*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCMutableYUVPlanarBuffer.h",
1277*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCSSLCertificateVerifier.h",
1278*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoCapturer.h",
1279*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoCodecInfo.h",
1280*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoDecoder.h",
1281*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoDecoderFactory.h",
1282*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoEncoder.h",
1283*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoEncoderFactory.h",
1284*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoEncoderQpThresholds.h",
1285*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoEncoderSettings.h",
1286*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoFrame.h",
1287*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoFrameBuffer.h",
1288*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoRenderer.h",
1289*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCYUVPlanarBuffer.h",
1290*d9f75844SAndroid Build Coastguard Worker          "objc/components/audio/RTCAudioDevice.h",
1291*d9f75844SAndroid Build Coastguard Worker          "objc/components/audio/RTCAudioSession.h",
1292*d9f75844SAndroid Build Coastguard Worker          "objc/components/audio/RTCAudioSessionConfiguration.h",
1293*d9f75844SAndroid Build Coastguard Worker          "objc/components/capturer/RTCCameraVideoCapturer.h",
1294*d9f75844SAndroid Build Coastguard Worker          "objc/components/capturer/RTCFileVideoCapturer.h",
1295*d9f75844SAndroid Build Coastguard Worker          "objc/components/network/RTCNetworkMonitor.h",
1296*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/metal/RTCMTLVideoView.h",
1297*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCEAGLVideoView.h",
1298*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCVideoViewShading.h",
1299*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCCodecSpecificInfoH264.h",
1300*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCDefaultVideoDecoderFactory.h",
1301*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCDefaultVideoEncoderFactory.h",
1302*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCH264ProfileLevelId.h",
1303*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCVideoDecoderFactoryH264.h",
1304*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCVideoDecoderH264.h",
1305*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCVideoEncoderFactoryH264.h",
1306*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCVideoEncoderH264.h",
1307*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_frame_buffer/RTCCVPixelBuffer.h",
1308*d9f75844SAndroid Build Coastguard Worker          "objc/helpers/RTCCameraPreviewView.h",
1309*d9f75844SAndroid Build Coastguard Worker          "objc/helpers/RTCDispatcher.h",
1310*d9f75844SAndroid Build Coastguard Worker          "objc/helpers/UIDevice+RTCDevice.h",
1311*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCAudioSource.h",
1312*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCAudioTrack.h",
1313*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCConfiguration.h",
1314*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCDataChannel.h",
1315*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCDataChannelConfiguration.h",
1316*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCFieldTrials.h",
1317*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCIceCandidate.h",
1318*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCIceCandidateErrorEvent.h",
1319*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCIceServer.h",
1320*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCLegacyStatsReport.h",
1321*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMediaConstraints.h",
1322*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMediaSource.h",
1323*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMediaStream.h",
1324*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMediaStreamTrack.h",
1325*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMetrics.h",
1326*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMetricsSampleInfo.h",
1327*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCPeerConnection.h",
1328*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCPeerConnectionFactory.h",
1329*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h",
1330*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtcpParameters.h",
1331*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpCodecParameters.h",
1332*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpEncodingParameters.h",
1333*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpHeaderExtension.h",
1334*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpParameters.h",
1335*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpReceiver.h",
1336*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpSender.h",
1337*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpTransceiver.h",
1338*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCDtmfSender.h",
1339*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCSSLAdapter.h",
1340*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCSessionDescription.h",
1341*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCStatisticsReport.h",
1342*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCTracing.h",
1343*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCCertificate.h",
1344*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCCryptoOptions.h",
1345*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCVideoSource.h",
1346*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCVideoTrack.h",
1347*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoCodecConstants.h",
1348*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoDecoderVP8.h",
1349*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoDecoderVP9.h",
1350*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoDecoderAV1.h",
1351*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoEncoderVP8.h",
1352*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoEncoderVP9.h",
1353*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoEncoderAV1.h",
1354*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_frame_buffer/RTCNativeI420Buffer.h",
1355*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.h",
1356*d9f75844SAndroid Build Coastguard Worker        ]
1357*d9f75844SAndroid Build Coastguard Worker
1358*d9f75844SAndroid Build Coastguard Worker        if (!build_with_chromium) {
1359*d9f75844SAndroid Build Coastguard Worker          common_objc_headers += [
1360*d9f75844SAndroid Build Coastguard Worker            "objc/api/logging/RTCCallbackLogger.h",
1361*d9f75844SAndroid Build Coastguard Worker            "objc/api/peerconnection/RTCFileLogger.h",
1362*d9f75844SAndroid Build Coastguard Worker          ]
1363*d9f75844SAndroid Build Coastguard Worker        }
1364*d9f75844SAndroid Build Coastguard Worker
1365*d9f75844SAndroid Build Coastguard Worker        sources = common_objc_headers
1366*d9f75844SAndroid Build Coastguard Worker        public_headers = common_objc_headers
1367*d9f75844SAndroid Build Coastguard Worker
1368*d9f75844SAndroid Build Coastguard Worker        ldflags = [
1369*d9f75844SAndroid Build Coastguard Worker          "-all_load",
1370*d9f75844SAndroid Build Coastguard Worker          "-install_name",
1371*d9f75844SAndroid Build Coastguard Worker          "@rpath/$output_name.framework/$output_name",
1372*d9f75844SAndroid Build Coastguard Worker        ]
1373*d9f75844SAndroid Build Coastguard Worker
1374*d9f75844SAndroid Build Coastguard Worker        deps = [
1375*d9f75844SAndroid Build Coastguard Worker          ":audio_objc",
1376*d9f75844SAndroid Build Coastguard Worker          ":base_objc",
1377*d9f75844SAndroid Build Coastguard Worker          ":default_codec_factory_objc",
1378*d9f75844SAndroid Build Coastguard Worker          ":metal_objc",
1379*d9f75844SAndroid Build Coastguard Worker          ":native_api",
1380*d9f75844SAndroid Build Coastguard Worker          ":native_video",
1381*d9f75844SAndroid Build Coastguard Worker          ":peerconnectionfactory_base_objc",
1382*d9f75844SAndroid Build Coastguard Worker          ":videocapture_objc",
1383*d9f75844SAndroid Build Coastguard Worker          ":videocodec_objc",
1384*d9f75844SAndroid Build Coastguard Worker          ":videotoolbox_objc",
1385*d9f75844SAndroid Build Coastguard Worker        ]
1386*d9f75844SAndroid Build Coastguard Worker        if (rtc_ios_macos_use_opengl_rendering) {
1387*d9f75844SAndroid Build Coastguard Worker          deps += [ ":opengl_ui_objc" ]
1388*d9f75844SAndroid Build Coastguard Worker        }
1389*d9f75844SAndroid Build Coastguard Worker        if (!build_with_chromium) {
1390*d9f75844SAndroid Build Coastguard Worker          deps += [
1391*d9f75844SAndroid Build Coastguard Worker            ":callback_logger_objc",
1392*d9f75844SAndroid Build Coastguard Worker            ":file_logger_objc",
1393*d9f75844SAndroid Build Coastguard Worker          ]
1394*d9f75844SAndroid Build Coastguard Worker        }
1395*d9f75844SAndroid Build Coastguard Worker
1396*d9f75844SAndroid Build Coastguard Worker        frameworks = [
1397*d9f75844SAndroid Build Coastguard Worker          "AVFoundation.framework",
1398*d9f75844SAndroid Build Coastguard Worker          "CoreGraphics.framework",
1399*d9f75844SAndroid Build Coastguard Worker          "CoreMedia.framework",
1400*d9f75844SAndroid Build Coastguard Worker        ]
1401*d9f75844SAndroid Build Coastguard Worker
1402*d9f75844SAndroid Build Coastguard Worker        configs = [
1403*d9f75844SAndroid Build Coastguard Worker          "..:common_objc",
1404*d9f75844SAndroid Build Coastguard Worker          ":used_from_extension",
1405*d9f75844SAndroid Build Coastguard Worker        ]
1406*d9f75844SAndroid Build Coastguard Worker
1407*d9f75844SAndroid Build Coastguard Worker        public_configs = [ ":common_config_objc" ]
1408*d9f75844SAndroid Build Coastguard Worker      }
1409*d9f75844SAndroid Build Coastguard Worker
1410*d9f75844SAndroid Build Coastguard Worker      bundle_data("ios_framework_bundle") {
1411*d9f75844SAndroid Build Coastguard Worker        deps = [ "../sdk:framework_objc" ]
1412*d9f75844SAndroid Build Coastguard Worker        sources = [ "$root_build_dir/WebRTC.framework" ]
1413*d9f75844SAndroid Build Coastguard Worker        outputs = [ "{{bundle_resources_dir}}/Frameworks/{{source_file_part}}" ]
1414*d9f75844SAndroid Build Coastguard Worker      }
1415*d9f75844SAndroid Build Coastguard Worker    }
1416*d9f75844SAndroid Build Coastguard Worker
1417*d9f75844SAndroid Build Coastguard Worker    if (is_mac) {
1418*d9f75844SAndroid Build Coastguard Worker      apple_framework_bundle_with_umbrella_header("mac_framework_objc") {
1419*d9f75844SAndroid Build Coastguard Worker        info_plist = "objc/Info.plist"
1420*d9f75844SAndroid Build Coastguard Worker        output_name = "WebRTC"
1421*d9f75844SAndroid Build Coastguard Worker
1422*d9f75844SAndroid Build Coastguard Worker        sources = [
1423*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCAudioSource.h",
1424*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCAudioTrack.h",
1425*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCCertificate.h",
1426*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCConfiguration.h",
1427*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCCryptoOptions.h",
1428*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCDataChannel.h",
1429*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCDataChannelConfiguration.h",
1430*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCDtmfSender.h",
1431*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCFieldTrials.h",
1432*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCIceCandidate.h",
1433*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCIceCandidateErrorEvent.h",
1434*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCIceServer.h",
1435*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCLegacyStatsReport.h",
1436*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMediaConstraints.h",
1437*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMediaSource.h",
1438*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMediaStream.h",
1439*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMediaStreamTrack.h",
1440*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMetrics.h",
1441*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCMetricsSampleInfo.h",
1442*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCPeerConnection.h",
1443*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCPeerConnectionFactory.h",
1444*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h",
1445*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtcpParameters.h",
1446*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpCodecParameters.h",
1447*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpEncodingParameters.h",
1448*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpHeaderExtension.h",
1449*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpParameters.h",
1450*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpReceiver.h",
1451*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpSender.h",
1452*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCRtpTransceiver.h",
1453*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCSSLAdapter.h",
1454*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCSessionDescription.h",
1455*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCStatisticsReport.h",
1456*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCTracing.h",
1457*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCVideoSource.h",
1458*d9f75844SAndroid Build Coastguard Worker          "objc/api/peerconnection/RTCVideoTrack.h",
1459*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoDecoderAV1.h",
1460*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoDecoderVP8.h",
1461*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoDecoderVP9.h",
1462*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoEncoderAV1.h",
1463*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoEncoderVP8.h",
1464*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_codec/RTCVideoEncoderVP9.h",
1465*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_frame_buffer/RTCNativeI420Buffer.h",
1466*d9f75844SAndroid Build Coastguard Worker          "objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.h",
1467*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCCodecSpecificInfo.h",
1468*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCEncodedImage.h",
1469*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCI420Buffer.h",
1470*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCLogging.h",
1471*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCMacros.h",
1472*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCMutableI420Buffer.h",
1473*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCMutableYUVPlanarBuffer.h",
1474*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCSSLCertificateVerifier.h",
1475*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoCapturer.h",
1476*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoCodecInfo.h",
1477*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoDecoder.h",
1478*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoDecoderFactory.h",
1479*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoEncoder.h",
1480*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoEncoderFactory.h",
1481*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoEncoderQpThresholds.h",
1482*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoEncoderSettings.h",
1483*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoFrame.h",
1484*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoFrameBuffer.h",
1485*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCVideoRenderer.h",
1486*d9f75844SAndroid Build Coastguard Worker          "objc/base/RTCYUVPlanarBuffer.h",
1487*d9f75844SAndroid Build Coastguard Worker          "objc/components/capturer/RTCCameraVideoCapturer.h",
1488*d9f75844SAndroid Build Coastguard Worker          "objc/components/capturer/RTCFileVideoCapturer.h",
1489*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/metal/RTCMTLNSVideoView.h",
1490*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCNSGLVideoView.h",
1491*d9f75844SAndroid Build Coastguard Worker          "objc/components/renderer/opengl/RTCVideoViewShading.h",
1492*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCCodecSpecificInfoH264.h",
1493*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCDefaultVideoDecoderFactory.h",
1494*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCDefaultVideoEncoderFactory.h",
1495*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCH264ProfileLevelId.h",
1496*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCVideoDecoderFactoryH264.h",
1497*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCVideoDecoderH264.h",
1498*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCVideoEncoderFactoryH264.h",
1499*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_codec/RTCVideoEncoderH264.h",
1500*d9f75844SAndroid Build Coastguard Worker          "objc/components/video_frame_buffer/RTCCVPixelBuffer.h",
1501*d9f75844SAndroid Build Coastguard Worker          "objc/helpers/RTCDispatcher.h",
1502*d9f75844SAndroid Build Coastguard Worker        ]
1503*d9f75844SAndroid Build Coastguard Worker        if (!build_with_chromium) {
1504*d9f75844SAndroid Build Coastguard Worker          sources += [
1505*d9f75844SAndroid Build Coastguard Worker            "objc/api/logging/RTCCallbackLogger.h",
1506*d9f75844SAndroid Build Coastguard Worker            "objc/api/peerconnection/RTCFileLogger.h",
1507*d9f75844SAndroid Build Coastguard Worker          ]
1508*d9f75844SAndroid Build Coastguard Worker        }
1509*d9f75844SAndroid Build Coastguard Worker
1510*d9f75844SAndroid Build Coastguard Worker        deps = [
1511*d9f75844SAndroid Build Coastguard Worker          ":base_objc",
1512*d9f75844SAndroid Build Coastguard Worker          ":default_codec_factory_objc",
1513*d9f75844SAndroid Build Coastguard Worker          ":native_api",
1514*d9f75844SAndroid Build Coastguard Worker          ":native_video",
1515*d9f75844SAndroid Build Coastguard Worker          ":opengl_ui_objc",
1516*d9f75844SAndroid Build Coastguard Worker          ":peerconnectionfactory_base_objc",
1517*d9f75844SAndroid Build Coastguard Worker          ":videocapture_objc",
1518*d9f75844SAndroid Build Coastguard Worker          ":videocodec_objc",
1519*d9f75844SAndroid Build Coastguard Worker          ":videotoolbox_objc",
1520*d9f75844SAndroid Build Coastguard Worker        ]
1521*d9f75844SAndroid Build Coastguard Worker        if (!build_with_chromium) {
1522*d9f75844SAndroid Build Coastguard Worker          deps += [
1523*d9f75844SAndroid Build Coastguard Worker            ":callback_logger_objc",
1524*d9f75844SAndroid Build Coastguard Worker            ":file_logger_objc",
1525*d9f75844SAndroid Build Coastguard Worker          ]
1526*d9f75844SAndroid Build Coastguard Worker        }
1527*d9f75844SAndroid Build Coastguard Worker
1528*d9f75844SAndroid Build Coastguard Worker        frameworks = [
1529*d9f75844SAndroid Build Coastguard Worker          "AVFoundation.framework",
1530*d9f75844SAndroid Build Coastguard Worker          "CoreGraphics.framework",
1531*d9f75844SAndroid Build Coastguard Worker          "CoreMedia.framework",
1532*d9f75844SAndroid Build Coastguard Worker          "OpenGL.framework",
1533*d9f75844SAndroid Build Coastguard Worker        ]
1534*d9f75844SAndroid Build Coastguard Worker
1535*d9f75844SAndroid Build Coastguard Worker        configs = [ "..:common_objc" ]
1536*d9f75844SAndroid Build Coastguard Worker
1537*d9f75844SAndroid Build Coastguard Worker        public_configs = [ ":common_config_objc" ]
1538*d9f75844SAndroid Build Coastguard Worker      }
1539*d9f75844SAndroid Build Coastguard Worker
1540*d9f75844SAndroid Build Coastguard Worker      bundle_data("mac_framework_bundle") {
1541*d9f75844SAndroid Build Coastguard Worker        deps = [ "../sdk:mac_framework_objc" ]
1542*d9f75844SAndroid Build Coastguard Worker        sources = [ "$root_build_dir/WebRTC.framework" ]
1543*d9f75844SAndroid Build Coastguard Worker        outputs = [ "{{bundle_contents_dir}}/Frameworks/{{source_file_part}}" ]
1544*d9f75844SAndroid Build Coastguard Worker      }
1545*d9f75844SAndroid Build Coastguard Worker    }
1546*d9f75844SAndroid Build Coastguard Worker
1547*d9f75844SAndroid Build Coastguard Worker    rtc_library("wrapped_native_codec_objc") {
1548*d9f75844SAndroid Build Coastguard Worker      sources = [
1549*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCWrappedNativeVideoDecoder.h",
1550*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCWrappedNativeVideoDecoder.mm",
1551*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCWrappedNativeVideoEncoder.h",
1552*d9f75844SAndroid Build Coastguard Worker        "objc/api/video_codec/RTCWrappedNativeVideoEncoder.mm",
1553*d9f75844SAndroid Build Coastguard Worker      ]
1554*d9f75844SAndroid Build Coastguard Worker
1555*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
1556*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
1557*d9f75844SAndroid Build Coastguard Worker
1558*d9f75844SAndroid Build Coastguard Worker      deps = [
1559*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
1560*d9f75844SAndroid Build Coastguard Worker        ":helpers_objc",
1561*d9f75844SAndroid Build Coastguard Worker        "../api/video_codecs:video_codecs_api",
1562*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_media_base",
1563*d9f75844SAndroid Build Coastguard Worker      ]
1564*d9f75844SAndroid Build Coastguard Worker    }
1565*d9f75844SAndroid Build Coastguard Worker
1566*d9f75844SAndroid Build Coastguard Worker    # The native API is currently experimental and may change without notice.
1567*d9f75844SAndroid Build Coastguard Worker    rtc_library("native_api") {
1568*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
1569*d9f75844SAndroid Build Coastguard Worker      allow_poison = [ "audio_codecs" ]  # TODO(bugs.webrtc.org/8396): Remove.
1570*d9f75844SAndroid Build Coastguard Worker      sources = [
1571*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/network_monitor_factory.h",
1572*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/network_monitor_factory.mm",
1573*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/ssl_certificate_verifier.h",
1574*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/ssl_certificate_verifier.mm",
1575*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_capturer.h",
1576*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_capturer.mm",
1577*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_decoder_factory.h",
1578*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_decoder_factory.mm",
1579*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_encoder_factory.h",
1580*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_encoder_factory.mm",
1581*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_frame.h",
1582*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_frame.mm",
1583*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_frame_buffer.h",
1584*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_frame_buffer.mm",
1585*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_renderer.h",
1586*d9f75844SAndroid Build Coastguard Worker        "objc/native/api/video_renderer.mm",
1587*d9f75844SAndroid Build Coastguard Worker      ]
1588*d9f75844SAndroid Build Coastguard Worker
1589*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
1590*d9f75844SAndroid Build Coastguard Worker
1591*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
1592*d9f75844SAndroid Build Coastguard Worker
1593*d9f75844SAndroid Build Coastguard Worker      deps = [
1594*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
1595*d9f75844SAndroid Build Coastguard Worker        ":native_video",
1596*d9f75844SAndroid Build Coastguard Worker        ":videoframebuffer_objc",
1597*d9f75844SAndroid Build Coastguard Worker        "../api:libjingle_peerconnection_api",
1598*d9f75844SAndroid Build Coastguard Worker        "../api:make_ref_counted",
1599*d9f75844SAndroid Build Coastguard Worker        "../api:media_stream_interface",
1600*d9f75844SAndroid Build Coastguard Worker        "../api:scoped_refptr",
1601*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_frame",
1602*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_rtp_headers",
1603*d9f75844SAndroid Build Coastguard Worker        "../api/video_codecs:video_codecs_api",
1604*d9f75844SAndroid Build Coastguard Worker        "../common_video",
1605*d9f75844SAndroid Build Coastguard Worker        "../rtc_base",
1606*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:buffer",
1607*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
1608*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:threading",
1609*d9f75844SAndroid Build Coastguard Worker      ]
1610*d9f75844SAndroid Build Coastguard Worker      if (is_ios) {
1611*d9f75844SAndroid Build Coastguard Worker        deps += [ ":native_network_monitor" ]
1612*d9f75844SAndroid Build Coastguard Worker      }
1613*d9f75844SAndroid Build Coastguard Worker      absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
1614*d9f75844SAndroid Build Coastguard Worker    }
1615*d9f75844SAndroid Build Coastguard Worker
1616*d9f75844SAndroid Build Coastguard Worker    if (is_ios) {
1617*d9f75844SAndroid Build Coastguard Worker      rtc_library("native_network_monitor") {
1618*d9f75844SAndroid Build Coastguard Worker        visibility = [ "*" ]
1619*d9f75844SAndroid Build Coastguard Worker
1620*d9f75844SAndroid Build Coastguard Worker        sources = [
1621*d9f75844SAndroid Build Coastguard Worker          "objc/native/src/objc_network_monitor.h",
1622*d9f75844SAndroid Build Coastguard Worker          "objc/native/src/objc_network_monitor.mm",
1623*d9f75844SAndroid Build Coastguard Worker        ]
1624*d9f75844SAndroid Build Coastguard Worker
1625*d9f75844SAndroid Build Coastguard Worker        deps = [
1626*d9f75844SAndroid Build Coastguard Worker          ":network_monitor_objc",
1627*d9f75844SAndroid Build Coastguard Worker          ":network_monitor_observer",
1628*d9f75844SAndroid Build Coastguard Worker          "../api:field_trials_view",
1629*d9f75844SAndroid Build Coastguard Worker          "../api:sequence_checker",
1630*d9f75844SAndroid Build Coastguard Worker          "../api/task_queue:pending_task_safety_flag",
1631*d9f75844SAndroid Build Coastguard Worker          "../rtc_base",
1632*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:logging",
1633*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:macromagic",
1634*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:stringutils",
1635*d9f75844SAndroid Build Coastguard Worker          "../rtc_base:threading",
1636*d9f75844SAndroid Build Coastguard Worker        ]
1637*d9f75844SAndroid Build Coastguard Worker
1638*d9f75844SAndroid Build Coastguard Worker        absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
1639*d9f75844SAndroid Build Coastguard Worker      }
1640*d9f75844SAndroid Build Coastguard Worker    }
1641*d9f75844SAndroid Build Coastguard Worker
1642*d9f75844SAndroid Build Coastguard Worker    rtc_library("native_video") {
1643*d9f75844SAndroid Build Coastguard Worker      sources = [
1644*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_frame_buffer.h",
1645*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_frame_buffer.mm",
1646*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_video_decoder_factory.h",
1647*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_video_decoder_factory.mm",
1648*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_video_encoder_factory.h",
1649*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_video_encoder_factory.mm",
1650*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_video_frame.h",
1651*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_video_frame.mm",
1652*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_video_renderer.h",
1653*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_video_renderer.mm",
1654*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_video_track_source.h",
1655*d9f75844SAndroid Build Coastguard Worker        "objc/native/src/objc_video_track_source.mm",
1656*d9f75844SAndroid Build Coastguard Worker      ]
1657*d9f75844SAndroid Build Coastguard Worker
1658*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
1659*d9f75844SAndroid Build Coastguard Worker
1660*d9f75844SAndroid Build Coastguard Worker      public_configs = [ ":common_config_objc" ]
1661*d9f75844SAndroid Build Coastguard Worker
1662*d9f75844SAndroid Build Coastguard Worker      deps = [
1663*d9f75844SAndroid Build Coastguard Worker        ":base_native_additions_objc",
1664*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
1665*d9f75844SAndroid Build Coastguard Worker        ":helpers_objc",
1666*d9f75844SAndroid Build Coastguard Worker        ":videocodec_objc",
1667*d9f75844SAndroid Build Coastguard Worker        ":videoframebuffer_objc",
1668*d9f75844SAndroid Build Coastguard Worker        ":vpx_codec_constants",
1669*d9f75844SAndroid Build Coastguard Worker        ":wrapped_native_codec_objc",
1670*d9f75844SAndroid Build Coastguard Worker        "../api:make_ref_counted",
1671*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_frame",
1672*d9f75844SAndroid Build Coastguard Worker        "../api/video:video_rtp_headers",
1673*d9f75844SAndroid Build Coastguard Worker        "../api/video_codecs:video_codecs_api",
1674*d9f75844SAndroid Build Coastguard Worker        "../common_video",
1675*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_audio_video",
1676*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_media_base",
1677*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:video_codec_interface",
1678*d9f75844SAndroid Build Coastguard Worker        "../rtc_base",
1679*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
1680*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
1681*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:timestamp_aligner",
1682*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:timeutils",
1683*d9f75844SAndroid Build Coastguard Worker      ]
1684*d9f75844SAndroid Build Coastguard Worker    }
1685*d9f75844SAndroid Build Coastguard Worker
1686*d9f75844SAndroid Build Coastguard Worker    rtc_library("video_toolbox_cc") {
1687*d9f75844SAndroid Build Coastguard Worker      visibility = [
1688*d9f75844SAndroid Build Coastguard Worker        ":sdk_unittests_sources",
1689*d9f75844SAndroid Build Coastguard Worker        ":videotoolbox_objc",
1690*d9f75844SAndroid Build Coastguard Worker      ]
1691*d9f75844SAndroid Build Coastguard Worker      sources = [
1692*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/helpers.cc",
1693*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/helpers.h",
1694*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/nalu_rewriter.cc",
1695*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/nalu_rewriter.h",
1696*d9f75844SAndroid Build Coastguard Worker      ]
1697*d9f75844SAndroid Build Coastguard Worker      deps = [
1698*d9f75844SAndroid Build Coastguard Worker        "../common_video",
1699*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:webrtc_h264",
1700*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:buffer",
1701*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
1702*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
1703*d9f75844SAndroid Build Coastguard Worker      ]
1704*d9f75844SAndroid Build Coastguard Worker    }
1705*d9f75844SAndroid Build Coastguard Worker
1706*d9f75844SAndroid Build Coastguard Worker    rtc_library("videotoolbox_objc") {
1707*d9f75844SAndroid Build Coastguard Worker      visibility = [ "*" ]
1708*d9f75844SAndroid Build Coastguard Worker      allow_poison = [ "audio_codecs" ]  # TODO(bugs.webrtc.org/8396): Remove.
1709*d9f75844SAndroid Build Coastguard Worker      sources = [
1710*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCVideoDecoderFactoryH264.h",
1711*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCVideoDecoderFactoryH264.m",
1712*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCVideoDecoderH264.h",
1713*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCVideoDecoderH264.mm",
1714*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCVideoEncoderFactoryH264.h",
1715*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCVideoEncoderFactoryH264.m",
1716*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCVideoEncoderH264.h",
1717*d9f75844SAndroid Build Coastguard Worker        "objc/components/video_codec/RTCVideoEncoderH264.mm",
1718*d9f75844SAndroid Build Coastguard Worker      ]
1719*d9f75844SAndroid Build Coastguard Worker
1720*d9f75844SAndroid Build Coastguard Worker      configs += [
1721*d9f75844SAndroid Build Coastguard Worker        "..:common_objc",
1722*d9f75844SAndroid Build Coastguard Worker        ":used_from_extension",
1723*d9f75844SAndroid Build Coastguard Worker      ]
1724*d9f75844SAndroid Build Coastguard Worker
1725*d9f75844SAndroid Build Coastguard Worker      if (is_ios && rtc_apprtcmobile_broadcast_extension) {
1726*d9f75844SAndroid Build Coastguard Worker        defines = [ "RTC_APPRTCMOBILE_BROADCAST_EXTENSION" ]
1727*d9f75844SAndroid Build Coastguard Worker      }
1728*d9f75844SAndroid Build Coastguard Worker
1729*d9f75844SAndroid Build Coastguard Worker      deps = [
1730*d9f75844SAndroid Build Coastguard Worker        ":base_native_additions_objc",
1731*d9f75844SAndroid Build Coastguard Worker        ":base_objc",
1732*d9f75844SAndroid Build Coastguard Worker        ":helpers_objc",
1733*d9f75844SAndroid Build Coastguard Worker        ":video_toolbox_cc",
1734*d9f75844SAndroid Build Coastguard Worker        ":videocodec_objc",
1735*d9f75844SAndroid Build Coastguard Worker        ":videoframebuffer_objc",
1736*d9f75844SAndroid Build Coastguard Worker        "../api/video_codecs:video_codecs_api",
1737*d9f75844SAndroid Build Coastguard Worker        "../common_video",
1738*d9f75844SAndroid Build Coastguard Worker        "../modules/video_coding:video_codec_interface",
1739*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:buffer",
1740*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:checks",
1741*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:logging",
1742*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:timeutils",
1743*d9f75844SAndroid Build Coastguard Worker        "//third_party/libyuv",
1744*d9f75844SAndroid Build Coastguard Worker      ]
1745*d9f75844SAndroid Build Coastguard Worker
1746*d9f75844SAndroid Build Coastguard Worker      frameworks = [
1747*d9f75844SAndroid Build Coastguard Worker        "CoreFoundation.framework",
1748*d9f75844SAndroid Build Coastguard Worker        "CoreMedia.framework",
1749*d9f75844SAndroid Build Coastguard Worker        "CoreVideo.framework",
1750*d9f75844SAndroid Build Coastguard Worker        "VideoToolbox.framework",
1751*d9f75844SAndroid Build Coastguard Worker      ]
1752*d9f75844SAndroid Build Coastguard Worker    }
1753*d9f75844SAndroid Build Coastguard Worker  }
1754*d9f75844SAndroid Build Coastguard Worker}
1755