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