Fix issues found by gn check.
It turns out that some headers were not owned by any targets.
These were:
RTCVideoCodec.h
RTCVideoCodecFactory.h
RTCVideoCodecH264.h
RTCVideoEncoderVP8.h
RTCVideoDecoderVP8.h
RTCVideoEncoderVP9.h
RTCVideoDecoderVP9.h
And some were owned by multiple targets, namely:
RTCPeerConnectionFactory+Native.h
RTCPeerConnectionFactory+Private.h
RTCVideoFrameBuffer.h
These have all been moved to their appropriate homes.
This CL also fixes a lot of cyclic interdependencies in the iOS sdk build files.
Bug: webrtc:8855
Change-Id: I1b7ddb6c2a93868d1510ccf0a64bd3dd169ec3e7
Reviewed-on: https://webrtc-review.googlesource.com/49060
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22052}
diff --git a/.gn b/.gn
index 2ffa7b6..5937b34 100644
--- a/.gn
+++ b/.gn
@@ -39,9 +39,7 @@
"//pc/*",
"//rtc_base/*",
"//rtc_tools/*",
-
- # TODO(bugs.webrtc.org/8850): Remove "/android" to re-enable on objc.
- "//sdk/android/*",
+ "//sdk/*",
"//stats/*",
"//system_wrappers/*",
"//test/*",
diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index e20ff4d..7067842 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -179,8 +179,7 @@
if (is_ios) {
deps = [
- ":AppRTCMobile_ios_frameworks",
- "../sdk:common_objc",
+ "../sdk:framework_objc",
"../system_wrappers:field_trial_default",
"../system_wrappers:runtime_enabled_features_default",
]
@@ -260,7 +259,7 @@
"../sdk:framework_objc",
]
} else {
- deps += [ "../sdk:peerconnection_objc" ]
+ deps += [ "../sdk:peerconnectionfactory_base_objc" ]
}
libs = [ "QuartzCore.framework" ]
}
@@ -377,8 +376,11 @@
deps = [
":apprtc_common",
":apprtc_signaling",
+ "../sdk:default_codec_factory_objc",
"../sdk:metal_objc",
"../sdk:ui_objc",
+ "../sdk:videocodec_objc",
+ "../sdk:videotoolbox_objc",
]
}
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index 59cffa3..6dd7305 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -487,8 +487,7 @@
"../../rtc_base:rtc_base_approved",
"../../sdk:common_objc",
"../../sdk:native_api",
- "../../sdk:peerconnection_objc",
- "../../sdk:peerconnectionfactory_objc",
+ "../../sdk:peerconnectionfactory_base_objc",
"../../sdk:videotoolbox_objc",
"../../sdk:videotracksource_objc",
]
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 30bfb0d..5acea5d 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -93,29 +93,31 @@
}
if (!build_with_chromium) {
- rtc_static_library("audio_objc") {
- sources = [
- "objc/Framework/Classes/Audio/RTCAudioSession+Configuration.mm",
- "objc/Framework/Classes/Audio/RTCAudioSession+Private.h",
- "objc/Framework/Classes/Audio/RTCAudioSession.mm",
- "objc/Framework/Classes/Audio/RTCAudioSessionConfiguration.m",
- "objc/Framework/Headers/WebRTC/RTCAudioSession.h",
- "objc/Framework/Headers/WebRTC/RTCAudioSessionConfiguration.h",
- ]
- configs += [ "..:common_objc" ]
+ if (is_ios) {
+ rtc_static_library("audio_objc") {
+ sources = [
+ "objc/Framework/Classes/Audio/RTCAudioSession+Configuration.mm",
+ "objc/Framework/Classes/Audio/RTCAudioSession+Private.h",
+ "objc/Framework/Classes/Audio/RTCAudioSession.mm",
+ "objc/Framework/Classes/Audio/RTCAudioSessionConfiguration.m",
+ "objc/Framework/Headers/WebRTC/RTCAudioSession.h",
+ "objc/Framework/Headers/WebRTC/RTCAudioSessionConfiguration.h",
+ ]
+ configs += [ "..:common_objc" ]
- public_configs = [ ":common_config_objc" ]
+ public_configs = [ ":common_config_objc" ]
- deps = [
- ":common_objc",
- "../rtc_base:checks",
- "../rtc_base:rtc_base_approved",
- ]
+ deps = [
+ ":common_objc",
+ "../rtc_base:checks",
+ "../rtc_base:rtc_base_approved",
+ ]
- if (is_clang) {
- # Suppress warnings from the Chromium Clang plugin
- # (bugs.webrtc.org/163).
- suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+ if (is_clang) {
+ # Suppress warnings from the Chromium Clang plugin
+ # (bugs.webrtc.org/163).
+ suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+ }
}
}
@@ -124,17 +126,13 @@
# for.
rtc_static_library("videotracksource_objc") {
sources = [
- "objc/Framework/Classes/Video/RTCCVPixelBuffer.mm",
- "objc/Framework/Classes/Video/RTCI420Buffer+Private.h",
- "objc/Framework/Classes/Video/RTCI420Buffer.mm",
"objc/Framework/Classes/Video/objcvideotracksource.h",
"objc/Framework/Classes/Video/objcvideotracksource.mm",
- "objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h",
]
deps = [
":common_objc",
- ":native_video",
+ ":videoframebuffer_objc",
"../api:libjingle_peerconnection_api",
"../api:video_frame_api",
"../api:video_frame_api_i420",
@@ -153,6 +151,32 @@
}
}
+ rtc_static_library("videoframebuffer_objc") {
+ sources = [
+ "objc/Framework/Classes/PeerConnection/RTCVideoFrame+Private.h",
+ "objc/Framework/Classes/PeerConnection/RTCVideoFrame.mm",
+ "objc/Framework/Classes/Video/RTCCVPixelBuffer.mm",
+ "objc/Framework/Classes/Video/RTCI420Buffer+Private.h",
+ "objc/Framework/Classes/Video/RTCI420Buffer.mm",
+ "objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
+ "objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h",
+ "objc/Framework/Native/api/video_frame_buffer.h",
+ "objc/Framework/Native/api/video_frame_buffer.mm",
+ "objc/Framework/Native/src/objc_frame_buffer.h",
+ "objc/Framework/Native/src/objc_frame_buffer.mm",
+ ]
+ deps = [
+ ":common_objc",
+ "//api:video_frame_api",
+ "//api:video_frame_api_i420",
+ "//common_video",
+ "//rtc_base:checks",
+ "//rtc_base:rtc_base_approved",
+ "//third_party/libyuv",
+ ]
+ configs += [ "..:common_objc" ]
+ }
+
rtc_static_library("video_objc") {
sources = [
"objc/Framework/Classes/Video/AVCaptureSession+DevicePosition.h",
@@ -164,6 +188,7 @@
"objc/Framework/Classes/Video/RTCOpenGLDefines.h",
"objc/Framework/Classes/Video/RTCShader.h",
"objc/Framework/Classes/Video/RTCShader.mm",
+ "objc/Framework/Headers/WebRTC/RTCVideoViewShading.h",
]
libs = []
if (is_ios) {
@@ -177,8 +202,6 @@
"QuartzCore.framework",
]
} else if (is_mac) {
- sources += []
-
libs += [
"CoreMedia.framework",
"CoreVideo.framework",
@@ -188,7 +211,9 @@
deps = [
":common_objc",
+ ":mediaconstraints_objc",
":native_video",
+ ":videoframebuffer_objc",
":videotracksource_objc",
"../api:libjingle_peerconnection_api",
"../api:optional",
@@ -226,7 +251,9 @@
configs += [ "..:common_objc" ]
deps = [
":common_objc",
- ":peerconnection_objc",
+ ":video_objc",
+ ":videocapture_objc",
+ ":videoframebuffer_objc",
]
}
@@ -259,7 +286,10 @@
"MetalKit.framework",
]
deps = [
+ ":common_objc",
+ ":peerconnectionfactory_base_objc",
":video_objc",
+ ":videoframebuffer_objc",
"../api:video_frame_api",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
@@ -269,11 +299,13 @@
}
}
- rtc_static_library("peerconnection_objc") {
+ rtc_static_library("videocapture_objc") {
visibility = [ "*" ]
sources = [
"objc/Framework/Classes/PeerConnection/RTCCameraVideoCapturer.m",
+ "objc/Framework/Classes/PeerConnection/RTCVideoCapturer.m",
"objc/Framework/Headers/WebRTC/RTCCameraVideoCapturer.h",
+ "objc/Framework/Headers/WebRTC/RTCVideoCapturer.h",
]
if (is_ios) {
sources += [
@@ -283,10 +315,6 @@
}
libs = [ "AVFoundation.framework" ]
- if (is_ios) {
- libs += [ "CoreGraphics.framework" ]
- }
-
configs += [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ]
@@ -299,56 +327,38 @@
deps = [
":common_objc",
- ":peerconnectionfactory_objc",
":video_objc",
- "../api:video_frame_api",
- "../media:rtc_media_base",
- "../pc:libjingle_peerconnection",
- "../rtc_base:rtc_base",
+ ":videoframebuffer_objc",
]
-
- if (rtc_use_metal_rendering) {
- deps += [ ":metal_objc" ]
- }
}
- rtc_static_library("peerconnectionfactory_objc") {
- sources = []
- deps = []
-
- sources += [
- "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h",
- "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Private.h",
- "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm",
+ rtc_static_library("videocodec_objc") {
+ sources = [
+ "objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm",
+ "objc/Framework/Classes/PeerConnection/RTCRtpFragmentationHeader.mm",
+ "objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h",
+ "objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm",
"objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm",
+ "objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm",
+ "objc/Framework/Headers/WebRTC/RTCVideoCodec.h",
+ "objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h",
+ "objc/Framework/Headers/WebRTC/RTCVideoCodecH264.h",
]
- public_configs = [ ":common_config_objc" ]
-
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin
# (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
-
- deps += [
+ visibility = [ "*" ]
+ public_configs = [ ":common_config_objc" ]
+ deps = [
":common_objc",
- ":default_codec_factory_objc",
- ":native_api",
- ":native_video",
- ":peerconnectionfactory_base_objc",
- ":video_objc",
- ":videotoolbox_objc",
- ":videotracksource_objc",
- "../api:libjingle_peerconnection_api",
- "../api:video_frame_api",
- "../api/audio_codecs:builtin_audio_decoder_factory",
- "../api/audio_codecs:builtin_audio_encoder_factory",
"../api/video_codecs:video_codecs_api",
- "../media:rtc_audio_video",
+ "../common_video",
"../media:rtc_media_base",
- "../pc:create_pc_factory",
- "../pc:peerconnection",
- "../rtc_base:rtc_base",
+ "../modules:module_api",
+ "../modules/video_coding:video_codec_interface",
+ "../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_api",
]
}
@@ -361,6 +371,8 @@
deps = [
":common_objc",
+ ":native_video",
+ ":videocodec_objc",
]
if (rtc_use_builtin_sw_codecs) {
deps += [
@@ -371,8 +383,11 @@
}
rtc_static_library("vp8") {
+ visibility = [ "*" ]
sources = [
"objc/Framework/Classes/PeerConnection/RTCVideoCodecVP8.mm",
+ "objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h",
+ "objc/Framework/Headers/WebRTC/RTCVideoEncoderVP8.h",
]
if (!build_with_chromium && is_clang) {
@@ -382,15 +397,18 @@
}
deps = [
- ":peerconnectionfactory_base_objc",
+ ":native_video",
"../modules/video_coding:webrtc_vp8",
"../system_wrappers:metrics_default",
]
}
rtc_static_library("vp9") {
+ visibility = [ "*" ]
sources = [
"objc/Framework/Classes/PeerConnection/RTCVideoCodecVP9.mm",
+ "objc/Framework/Headers/WebRTC/RTCVideoDecoderVP9.h",
+ "objc/Framework/Headers/WebRTC/RTCVideoEncoderVP9.h",
]
if (!build_with_chromium && is_clang) {
@@ -400,7 +418,7 @@
}
deps = [
- ":peerconnectionfactory_base_objc",
+ ":native_video",
"../modules/video_coding:webrtc_vp9",
"../system_wrappers:metrics_default",
]
@@ -419,9 +437,7 @@
defines = [ "HAVE_NO_MEDIA" ]
sources = [
- "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h",
- "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Private.h",
- "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm",
+ "objc/Framework/Classes/Common/noop.mm",
]
public_configs = [ ":common_config_objc" ]
@@ -441,6 +457,25 @@
]
}
+ rtc_static_library("mediaconstraints_objc") {
+ sources = [
+ "objc/Framework/Classes/PeerConnection/RTCMediaConstraints+Private.h",
+ "objc/Framework/Classes/PeerConnection/RTCMediaConstraints.mm",
+ "objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
+ ]
+ if (!build_with_chromium && is_clang) {
+ # Suppress warnings from the Chromium Clang plugin
+ # (bugs.webrtc.org/163).
+ suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+ }
+
+ public_configs = [ ":common_config_objc" ]
+ deps = [
+ ":common_objc",
+ "../api:libjingle_peerconnection_api",
+ ]
+ }
+
rtc_static_library("peerconnectionfactory_base_objc") {
sources = [
"objc/Framework/Classes/PeerConnection/RTCAudioSource+Private.h",
@@ -456,7 +491,6 @@
"objc/Framework/Classes/PeerConnection/RTCDataChannelConfiguration.mm",
"objc/Framework/Classes/PeerConnection/RTCDtmfSender+Private.h",
"objc/Framework/Classes/PeerConnection/RTCDtmfSender.mm",
- "objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm",
"objc/Framework/Classes/PeerConnection/RTCIceCandidate+Private.h",
"objc/Framework/Classes/PeerConnection/RTCIceCandidate.mm",
"objc/Framework/Classes/PeerConnection/RTCIceServer+Private.h",
@@ -465,8 +499,6 @@
"objc/Framework/Classes/PeerConnection/RTCIntervalRange.mm",
"objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport+Private.h",
"objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport.mm",
- "objc/Framework/Classes/PeerConnection/RTCMediaConstraints+Private.h",
- "objc/Framework/Classes/PeerConnection/RTCMediaConstraints.mm",
"objc/Framework/Classes/PeerConnection/RTCMediaSource+Private.h",
"objc/Framework/Classes/PeerConnection/RTCMediaSource.mm",
"objc/Framework/Classes/PeerConnection/RTCMediaStream+Private.h",
@@ -481,13 +513,15 @@
"objc/Framework/Classes/PeerConnection/RTCPeerConnection+Private.h",
"objc/Framework/Classes/PeerConnection/RTCPeerConnection+Stats.mm",
"objc/Framework/Classes/PeerConnection/RTCPeerConnection.mm",
+ "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h",
+ "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Private.h",
+ "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactoryOptions+Private.h",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactoryOptions.mm",
"objc/Framework/Classes/PeerConnection/RTCRtpCodecParameters+Private.h",
"objc/Framework/Classes/PeerConnection/RTCRtpCodecParameters.mm",
"objc/Framework/Classes/PeerConnection/RTCRtpEncodingParameters+Private.h",
"objc/Framework/Classes/PeerConnection/RTCRtpEncodingParameters.mm",
- "objc/Framework/Classes/PeerConnection/RTCRtpFragmentationHeader.mm",
"objc/Framework/Classes/PeerConnection/RTCRtpParameters+Private.h",
"objc/Framework/Classes/PeerConnection/RTCRtpParameters.mm",
"objc/Framework/Classes/PeerConnection/RTCRtpReceiver+Private.h",
@@ -498,12 +532,6 @@
"objc/Framework/Classes/PeerConnection/RTCSessionDescription+Private.h",
"objc/Framework/Classes/PeerConnection/RTCSessionDescription.mm",
"objc/Framework/Classes/PeerConnection/RTCTracing.mm",
- "objc/Framework/Classes/PeerConnection/RTCVideoCapturer.m",
- "objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h",
- "objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm",
- "objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm",
- "objc/Framework/Classes/PeerConnection/RTCVideoFrame+Private.h",
- "objc/Framework/Classes/PeerConnection/RTCVideoFrame.mm",
"objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter+Private.h",
"objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.h",
"objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.mm",
@@ -511,10 +539,6 @@
"objc/Framework/Classes/PeerConnection/RTCVideoSource.mm",
"objc/Framework/Classes/PeerConnection/RTCVideoTrack+Private.h",
"objc/Framework/Classes/PeerConnection/RTCVideoTrack.mm",
- "objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoDecoder.h",
- "objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoDecoder.mm",
- "objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.h",
- "objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.mm",
"objc/Framework/Headers/WebRTC/RTCAudioSource.h",
"objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
"objc/Framework/Headers/WebRTC/RTCConfiguration.h",
@@ -525,7 +549,6 @@
"objc/Framework/Headers/WebRTC/RTCIceServer.h",
"objc/Framework/Headers/WebRTC/RTCIntervalRange.h",
"objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h",
- "objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
"objc/Framework/Headers/WebRTC/RTCMediaSource.h",
"objc/Framework/Headers/WebRTC/RTCMediaStream.h",
"objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
@@ -542,17 +565,13 @@
"objc/Framework/Headers/WebRTC/RTCSSLAdapter.h",
"objc/Framework/Headers/WebRTC/RTCSessionDescription.h",
"objc/Framework/Headers/WebRTC/RTCTracing.h",
- "objc/Framework/Headers/WebRTC/RTCVideoCapturer.h",
- "objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
- "objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h",
"objc/Framework/Headers/WebRTC/RTCVideoRenderer.h",
"objc/Framework/Headers/WebRTC/RTCVideoSource.h",
"objc/Framework/Headers/WebRTC/RTCVideoTrack.h",
- "objc/Framework/Headers/WebRTC/RTCVideoViewShading.h",
]
configs += [ "..:common_objc" ]
-
+ visibility = [ "*" ]
public_configs = [ ":common_config_objc" ]
if (!build_with_chromium && is_clang) {
@@ -563,8 +582,12 @@
deps = [
":common_objc",
+ ":mediaconstraints_objc",
":native_api",
":native_video",
+ ":video_objc",
+ ":videocodec_objc",
+ ":videoframebuffer_objc",
":videotracksource_objc",
"../api:libjingle_peerconnection_api",
"../api:video_frame_api",
@@ -573,6 +596,7 @@
"../media:rtc_media_base",
"../modules:module_api",
"../modules/video_coding:video_codec_interface",
+ "../pc:create_pc_factory",
"../pc:peerconnection",
"../rtc_base:checks",
"../rtc_base:rtc_base",
@@ -594,21 +618,10 @@
"objc/Framework/UnitTests/RTCFileVideoCapturer_xctest.mm",
]
- if (current_cpu == "arm64" || use_ios_simulator) {
- sources += [ "objc/Framework/UnitTests/RTCMTLVideoView_xctest.mm" ]
- }
-
- if (use_ios_simulator) {
- # Only include this file on simulator, as it's already
- # included in device builds.
- sources += [ "objc/Framework/Classes/Metal/RTCMTLVideoView.m" ]
- libs = [ "CoreVideo.framework" ]
- }
deps = [
":common_objc",
":framework_objc",
- ":peerconnection_objc",
- ":peerconnectionfactory_objc",
+ ":videocapture_objc",
":videotoolbox_objc",
":videotracksource_objc",
"../../system_wrappers:system_wrappers_default",
@@ -617,10 +630,17 @@
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_tests_utils",
]
+
+ if (rtc_use_metal_rendering) {
+ sources += [ "objc/Framework/UnitTests/RTCMTLVideoView_xctest.mm" ]
+ deps += [ ":metal_objc" ]
+ }
+
public_deps = [
"//build/config/ios:xctest",
"//third_party/ocmock",
]
+
include_dirs += [ "$root_out_dir/WebRTC.framework/Headers/" ]
}
@@ -681,9 +701,14 @@
defines = [ "GTEST_RELATIVE_PATH" ]
deps = [
":common_objc",
+ ":mediaconstraints_objc",
+ ":native_api",
":native_video",
- ":peerconnection_objc",
- ":peerconnectionfactory_objc",
+ ":peerconnectionfactory_base_objc",
+ ":video_objc",
+ ":videocapture_objc",
+ ":videocodec_objc",
+ ":videoframebuffer_objc",
":videotoolbox_objc",
":videotracksource_objc",
"../../system_wrappers:system_wrappers_default",
@@ -697,6 +722,7 @@
if (is_ios) {
sources += [ "objc/Framework/UnitTests/RTCAudioSessionTest.mm" ]
+ deps += [ ":audio_objc" ]
}
if (!build_with_chromium && is_clang) {
@@ -762,10 +788,6 @@
"objc/Framework/Headers/WebRTC/RTCVideoViewShading.h",
"objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h",
]
- if (rtc_use_metal_rendering) {
- common_objc_headers +=
- [ "objc/Framework/Headers/WebRTC/RTCMTLVideoView.h" ]
- }
if (rtc_use_builtin_sw_codecs) {
common_objc_headers += [
"objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h",
@@ -774,20 +796,16 @@
"objc/Framework/Headers/WebRTC/RTCVideoEncoderVP9.h",
]
}
- sources = common_objc_headers
- public_headers = common_objc_headers
-
if (!build_with_chromium) {
- sources += [
- "objc/Framework/Headers/WebRTC/RTCCallbackLogger.h",
- "objc/Framework/Headers/WebRTC/RTCFileLogger.h",
- ]
- public_headers += [
+ common_objc_headers += [
"objc/Framework/Headers/WebRTC/RTCCallbackLogger.h",
"objc/Framework/Headers/WebRTC/RTCFileLogger.h",
]
}
+ sources = common_objc_headers
+ public_headers = common_objc_headers
+
ldflags = [
"-all_load",
"-install_name",
@@ -796,13 +814,25 @@
deps = [
":audio_objc",
- ":peerconnection_objc",
+ ":common_objc",
+ ":default_codec_factory_objc",
+ ":native_api",
+ ":native_video",
+ ":peerconnectionfactory_base_objc",
":ui_objc",
+ ":videocapture_objc",
+ ":videocodec_objc",
+ ":videotoolbox_objc",
"../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
]
+ if (rtc_use_metal_rendering) {
+ common_objc_headers +=
+ [ "objc/Framework/Headers/WebRTC/RTCMTLVideoView.h" ]
+ deps += [ ":metal_objc" ]
+ }
libs = [
"AVFoundation.framework",
@@ -831,8 +861,6 @@
"objc/Framework/Native/api/video_decoder_factory.mm",
"objc/Framework/Native/api/video_encoder_factory.h",
"objc/Framework/Native/api/video_encoder_factory.mm",
- "objc/Framework/Native/api/video_frame_buffer.h",
- "objc/Framework/Native/api/video_frame_buffer.mm",
]
configs += [ "..:common_objc" ]
@@ -847,6 +875,8 @@
deps = [
":native_video",
+ ":videocodec_objc",
+ ":videoframebuffer_objc",
"../api/video_codecs:video_codecs_api",
"../common_video",
"../rtc_base:rtc_base",
@@ -855,8 +885,10 @@
rtc_static_library("native_video") {
sources = [
- "objc/Framework/Native/src/objc_frame_buffer.h",
- "objc/Framework/Native/src/objc_frame_buffer.mm",
+ "objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoDecoder.h",
+ "objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoDecoder.mm",
+ "objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.h",
+ "objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.mm",
"objc/Framework/Native/src/objc_video_decoder_factory.h",
"objc/Framework/Native/src/objc_video_decoder_factory.mm",
"objc/Framework/Native/src/objc_video_encoder_factory.h",
@@ -875,6 +907,9 @@
deps = [
":common_objc",
+ ":videocodec_objc",
+ ":videoframebuffer_objc",
+ ":videotracksource_objc",
"../api:video_frame_api",
"../api/video_codecs:video_codecs_api",
"../common_video",
@@ -890,8 +925,8 @@
rtc_static_library("rtc_sdk_objc") {
complete_static_lib = true
deps = [
- ":peerconnection_objc",
":ui_objc",
+ ":videocapture_objc",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
@@ -921,10 +956,10 @@
}
rtc_static_library("videotoolbox_objc") {
+ visibility = [ "*" ]
sources = [
"objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm",
"objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm",
- "objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h",
]
configs += [ "..:common_objc" ]
@@ -934,6 +969,8 @@
":native_api",
":video_objc",
":video_toolbox_cc",
+ ":videocodec_objc",
+ ":videoframebuffer_objc",
":videotracksource_objc",
"../api:video_frame_api",
"../api/video_codecs:video_codecs_api",
diff --git a/sdk/objc/Framework/Classes/Common/noop.mm b/sdk/objc/Framework/Classes/Common/noop.mm
new file mode 100644
index 0000000..16a8e6d
--- /dev/null
+++ b/sdk/objc/Framework/Classes/Common/noop.mm
@@ -0,0 +1,13 @@
+/*
+ * Copyright 2015 The WebRTC Project Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+// This file is only needed to make ninja happy on some platforms.
+// On some platforms it is not possible to link an rtc_static_library
+// without any source file listed in the GN target.