Split iOS sdk in to separate targets

This CL splits the iOS sdk into separate static libraries for video,
audio, ui, common, and peerconnection-related code. This will in the
future make it easier to compile WebRTC without unneeded components.

BUG=webrtc:4867

Review-Url: https://codereview.webrtc.org/2862543002
Cr-Commit-Position: refs/heads/master@{#18166}
This commit is contained in:
kthelgason
2017-05-16 07:06:59 -07:00
committed by Commit bot
parent 860249ec62
commit 52c83fe710
116 changed files with 328 additions and 272 deletions

View File

@ -410,7 +410,7 @@ if (rtc_include_tests) {
} }
if (is_ios || is_mac) { if (is_ios || is_mac) {
deps += [ "sdk:rtc_sdk_peerconnection_objc_unittests" ] deps += [ "sdk:objc_sdk_unittests" ]
} }
} }

View File

@ -163,7 +163,7 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
public_configs = [ ":apprtc_common_config" ] public_configs = [ ":apprtc_common_config" ]
deps = [ deps = [
"//webrtc/sdk:rtc_sdk_common_objc", "//webrtc/sdk:objc_common",
"//webrtc/system_wrappers:field_trial_default", "//webrtc/system_wrappers:field_trial_default",
"//webrtc/system_wrappers:metrics_default", "//webrtc/system_wrappers:metrics_default",
] ]
@ -232,7 +232,7 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
":socketrocket", ":socketrocket",
] ]
public_deps = [ public_deps = [
"//webrtc/sdk:rtc_sdk_peerconnection_objc", "//webrtc/sdk:objc_peerconnection",
] ]
libs = [ "QuartzCore.framework" ] libs = [ "QuartzCore.framework" ]
} }
@ -290,7 +290,7 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
bundle_data("AppRTCMobile_ios_frameworks") { bundle_data("AppRTCMobile_ios_frameworks") {
public_deps = [ public_deps = [
"//webrtc/sdk:rtc_sdk_framework_objc+link", "//webrtc/sdk:objc_framework+link",
] ]
sources = [ sources = [
"$root_out_dir/WebRTC.framework", "$root_out_dir/WebRTC.framework",

View File

@ -176,7 +176,7 @@ rtc_static_library("audio_device") {
public_deps = [ public_deps = [
"../../base:gtest_prod", "../../base:gtest_prod",
"../../base:rtc_base", "../../base:rtc_base",
"../../sdk:rtc_sdk_common_objc", "../../sdk:objc_common",
] ]
sources += [ sources += [
"ios/audio_device_ios.h", "ios/audio_device_ios.h",

View File

@ -23,7 +23,7 @@
#include "webrtc/base/thread.h" #include "webrtc/base/thread.h"
#include "webrtc/base/thread_annotations.h" #include "webrtc/base/thread_annotations.h"
#include "webrtc/modules/audio_device/fine_audio_buffer.h" #include "webrtc/modules/audio_device/fine_audio_buffer.h"
#include "webrtc/sdk/objc/Framework/Classes/helpers.h" #include "webrtc/sdk/objc/Framework/Classes/Common/helpers.h"
#import "WebRTC/RTCLogging.h" #import "WebRTC/RTCLogging.h"
#import "webrtc/modules/audio_device/ios/objc/RTCAudioSession.h" #import "webrtc/modules/audio_device/ios/objc/RTCAudioSession.h"

View File

@ -376,7 +376,7 @@ if (rtc_include_tests) {
if (is_ios || is_mac) { if (is_ios || is_mac) {
deps += [ deps += [
"../../media:rtc_media_base", "../../media:rtc_media_base",
"../../sdk:webrtc_h264_video_toolbox", "../../sdk:objc_videotoolbox",
] ]
} }
} }

View File

@ -23,8 +23,8 @@
#include "webrtc/sdk/android/src/jni/androidmediadecoder_jni.h" #include "webrtc/sdk/android/src/jni/androidmediadecoder_jni.h"
#include "webrtc/sdk/android/src/jni/androidmediaencoder_jni.h" #include "webrtc/sdk/android/src/jni/androidmediaencoder_jni.h"
#elif defined(WEBRTC_IOS) #elif defined(WEBRTC_IOS)
#include "webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_decoder.h" #include "webrtc/sdk/objc/Framework/Classes/VideoToolbox/decoder.h"
#include "webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.h" #include "webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.h"
#endif #endif
#include "webrtc/base/checks.h" #include "webrtc/base/checks.h"

View File

@ -11,44 +11,50 @@ if (is_ios) {
import("//build/config/ios/rules.gni") import("//build/config/ios/rules.gni")
} }
declare_args() {
# Determine whether or not to include metal rendering
rtc_use_metal_rendering = is_mac || (is_ios && current_cpu == "arm64")
}
group("sdk") { group("sdk") {
if (is_ios) { if (is_ios) {
public_deps = [ public_deps = [
":rtc_sdk_framework_objc", ":objc_framework",
] ]
} }
} }
if (is_ios || is_mac) { if (is_ios || is_mac) {
config("rtc_sdk_common_objc_config") { config("objc_common_config") {
include_dirs = [ include_dirs = [
"objc/Framework/Classes", "objc/Framework/Classes",
"objc/Framework/Classes/Audio",
"objc/Framework/Classes/Common",
"objc/Framework/Classes/Metal",
"objc/Framework/Classes/PeerConnection",
"objc/Framework/Classes/UI",
"objc/Framework/Classes/Video",
"objc/Framework/Classes/VideoToolbox",
"objc/Framework/Headers", "objc/Framework/Headers",
] ]
} }
rtc_static_library("rtc_sdk_common_objc") { rtc_static_library("objc_common") {
sources = [ sources = [
"objc/Framework/Classes/NSString+StdString.h", "objc/Framework/Classes/Common/NSString+StdString.h",
"objc/Framework/Classes/NSString+StdString.mm", "objc/Framework/Classes/Common/NSString+StdString.mm",
"objc/Framework/Classes/RTCDispatcher.m", "objc/Framework/Classes/Common/RTCDispatcher+Private.h",
"objc/Framework/Classes/RTCFieldTrials.mm", "objc/Framework/Classes/Common/RTCDispatcher.m",
"objc/Framework/Classes/RTCLogging.mm", "objc/Framework/Classes/Common/RTCFieldTrials.mm",
"objc/Framework/Classes/RTCMetrics.mm", "objc/Framework/Classes/Common/RTCLogging.mm",
"objc/Framework/Classes/RTCMetricsSampleInfo+Private.h", "objc/Framework/Classes/Common/RTCUIApplication.h",
"objc/Framework/Classes/RTCMetricsSampleInfo.mm", "objc/Framework/Classes/Common/RTCUIApplication.mm",
"objc/Framework/Classes/RTCSSLAdapter.mm", "objc/Framework/Classes/Common/helpers.h",
"objc/Framework/Classes/RTCTracing.mm", "objc/Framework/Classes/Common/helpers.mm",
"objc/Framework/Classes/helpers.h",
"objc/Framework/Classes/helpers.mm",
"objc/Framework/Headers/WebRTC/RTCDispatcher.h", "objc/Framework/Headers/WebRTC/RTCDispatcher.h",
"objc/Framework/Headers/WebRTC/RTCFieldTrials.h", "objc/Framework/Headers/WebRTC/RTCFieldTrials.h",
"objc/Framework/Headers/WebRTC/RTCLogging.h", "objc/Framework/Headers/WebRTC/RTCLogging.h",
"objc/Framework/Headers/WebRTC/RTCMacros.h", "objc/Framework/Headers/WebRTC/RTCMacros.h",
"objc/Framework/Headers/WebRTC/RTCMetrics.h",
"objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h",
"objc/Framework/Headers/WebRTC/RTCSSLAdapter.h",
"objc/Framework/Headers/WebRTC/RTCTracing.h",
] ]
deps = [ deps = [
@ -56,132 +62,201 @@ if (is_ios || is_mac) {
] ]
configs += [ "..:common_objc" ] configs += [ "..:common_objc" ]
public_configs = [ ":rtc_sdk_common_objc_config" ] public_configs = [ ":objc_common_config" ]
if (is_ios) { if (is_ios) {
sources += [ sources += [
"objc/Framework/Classes/RTCCameraPreviewView.m", "objc/Framework/Classes/Common/UIDevice+RTCDevice.mm",
"objc/Framework/Classes/RTCUIApplication.h",
"objc/Framework/Classes/RTCUIApplication.mm",
"objc/Framework/Classes/UIDevice+RTCDevice.mm",
"objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h",
"objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h", "objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h",
] ]
} }
if (is_mac || (is_ios && current_cpu == "arm64")) { if (!build_with_chromium) {
sources += [ sources += [
"objc/Framework/Classes/Common/RTCFileLogger.mm",
"objc/Framework/Headers/WebRTC/RTCFileLogger.h",
]
}
}
rtc_static_library("objc_video") {
sources = [
"objc/Framework/Classes/Video/RTCAVFoundationVideoCapturerInternal.h",
"objc/Framework/Classes/Video/RTCAVFoundationVideoCapturerInternal.mm",
"objc/Framework/Classes/Video/RTCI420Shader.mm",
"objc/Framework/Classes/Video/RTCI420TextureCache.h",
"objc/Framework/Classes/Video/RTCI420TextureCache.mm",
"objc/Framework/Classes/Video/RTCOpenGLDefines.h",
"objc/Framework/Classes/Video/RTCShader+Private.h",
"objc/Framework/Classes/Video/RTCShader.h",
"objc/Framework/Classes/Video/RTCShader.mm",
"objc/Framework/Classes/Video/avfoundationformatmapper.h",
"objc/Framework/Classes/Video/avfoundationformatmapper.mm",
"objc/Framework/Classes/Video/avfoundationvideocapturer.h",
"objc/Framework/Classes/Video/avfoundationvideocapturer.mm",
"objc/Framework/Classes/Video/objcvideotracksource.h",
"objc/Framework/Classes/Video/objcvideotracksource.mm",
]
libs = []
if (is_ios) {
sources += [
"objc/Framework/Classes/Video/RTCNV12TextureCache.h",
"objc/Framework/Classes/Video/RTCNV12TextureCache.m",
"objc/Framework/Classes/Video/RTCNativeNV12Shader.mm",
]
libs += [
"GLKit.framework",
"OpenGLES.framework",
"QuartzCore.framework",
]
} else if (is_mac) {
sources += []
libs += [
"CoreMedia.framework",
"CoreVideo.framework",
"OpenGL.framework",
]
}
deps = [
":objc_common",
":objc_corevideoframebuffer",
":objc_videotoolbox",
"//webrtc/api:libjingle_peerconnection_api",
"//webrtc/base:rtc_base",
"//webrtc/common_video",
"//webrtc/media:rtc_media_base",
]
configs += [ "..:common_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" ]
}
}
rtc_static_library("objc_ui") {
if (is_ios) {
sources = [
"objc/Framework/Classes/UI/RTCCameraPreviewView.m",
"objc/Framework/Classes/UI/RTCEAGLVideoView.m",
"objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h",
"objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h",
]
}
if (is_mac) {
sources = [
"objc/Framework/Classes/UI/RTCNSGLVideoView.m",
"objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h",
]
}
configs += [ "..:common_objc" ]
deps = [
":objc_common",
]
}
if (rtc_use_metal_rendering) {
rtc_static_library("objc_metal") {
sources = [
"objc/Framework/Classes/Metal/RTCMTLI420Renderer.h", "objc/Framework/Classes/Metal/RTCMTLI420Renderer.h",
"objc/Framework/Classes/Metal/RTCMTLI420Renderer.mm", "objc/Framework/Classes/Metal/RTCMTLI420Renderer.mm",
"objc/Framework/Classes/Metal/RTCMTLRenderer+Private.h", "objc/Framework/Classes/Metal/RTCMTLRenderer+Private.h",
"objc/Framework/Classes/Metal/RTCMTLRenderer.h", "objc/Framework/Classes/Metal/RTCMTLRenderer.h",
"objc/Framework/Classes/Metal/RTCMTLRenderer.mm", "objc/Framework/Classes/Metal/RTCMTLRenderer.mm",
] ]
deps += [ "../api:video_frame_api" ]
if (is_ios) { if (is_ios) {
sources += [ sources += [
"objc/Framework/Classes/Metal/RTCMTLNV12Renderer.h", "objc/Framework/Classes/Metal/RTCMTLNV12Renderer.h",
"objc/Framework/Classes/Metal/RTCMTLNV12Renderer.mm", "objc/Framework/Classes/Metal/RTCMTLNV12Renderer.mm",
"objc/Framework/Classes/Metal/RTCMTLVideoView.m", "objc/Framework/Classes/Metal/RTCMTLVideoView.m",
"objc/Framework/Headers/WebRTC/RTCMTLVideoView.h",
] ]
} }
if (is_mac) { if (is_mac) {
sources += [ "objc/Framework/Classes/Metal/RTCMTLNSVideoView.m" ] sources += [
"objc/Framework/Classes/Metal/RTCMTLNSVideoView.m",
"objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h",
]
} }
} libs = [
libs = [ "AVFoundation.framework" ]
if (is_mac || (is_ios && current_cpu == "arm64")) {
libs += [
"CoreVideo.framework", "CoreVideo.framework",
"Metal.framework", "Metal.framework",
"MetalKit.framework", "MetalKit.framework",
] ]
} deps = [
if (!build_with_chromium) { ":objc_video",
sources += [ "//webrtc/api:video_frame_api",
"objc/Framework/Classes/RTCFileLogger.mm", "//webrtc/base:rtc_base_approved",
"objc/Framework/Headers/WebRTC/RTCFileLogger.h",
] ]
configs += [ "..:common_objc" ]
public_configs = [ ":objc_common_config" ]
} }
} }
rtc_static_library("rtc_sdk_peerconnection_objc") { rtc_static_library("objc_peerconnection") {
sources = [ sources = [
"objc/Framework/Classes/Metal/RTCMTLNV12Renderer.h", "objc/Framework/Classes/PeerConnection/RTCAVFoundationVideoSource+Private.h",
"objc/Framework/Classes/RTCAVFoundationVideoCapturerInternal.h", "objc/Framework/Classes/PeerConnection/RTCAVFoundationVideoSource.mm",
"objc/Framework/Classes/RTCAVFoundationVideoCapturerInternal.mm", "objc/Framework/Classes/PeerConnection/RTCAudioSource+Private.h",
"objc/Framework/Classes/RTCAVFoundationVideoSource+Private.h", "objc/Framework/Classes/PeerConnection/RTCAudioSource.mm",
"objc/Framework/Classes/RTCAVFoundationVideoSource.mm", "objc/Framework/Classes/PeerConnection/RTCAudioTrack+Private.h",
"objc/Framework/Classes/RTCAudioSource+Private.h", "objc/Framework/Classes/PeerConnection/RTCAudioTrack.mm",
"objc/Framework/Classes/RTCAudioSource.mm", "objc/Framework/Classes/PeerConnection/RTCCameraVideoCapturer.m",
"objc/Framework/Classes/RTCAudioTrack+Private.h", "objc/Framework/Classes/PeerConnection/RTCConfiguration+Private.h",
"objc/Framework/Classes/RTCAudioTrack.mm", "objc/Framework/Classes/PeerConnection/RTCConfiguration.mm",
"objc/Framework/Classes/RTCCameraVideoCapturer.m", "objc/Framework/Classes/PeerConnection/RTCDataChannel+Private.h",
"objc/Framework/Classes/RTCConfiguration+Private.h", "objc/Framework/Classes/PeerConnection/RTCDataChannel.mm",
"objc/Framework/Classes/RTCConfiguration.mm", "objc/Framework/Classes/PeerConnection/RTCDataChannelConfiguration+Private.h",
"objc/Framework/Classes/RTCDataChannel+Private.h", "objc/Framework/Classes/PeerConnection/RTCDataChannelConfiguration.mm",
"objc/Framework/Classes/RTCDataChannel.mm", "objc/Framework/Classes/PeerConnection/RTCIceCandidate+Private.h",
"objc/Framework/Classes/RTCDataChannelConfiguration+Private.h", "objc/Framework/Classes/PeerConnection/RTCIceCandidate.mm",
"objc/Framework/Classes/RTCDataChannelConfiguration.mm", "objc/Framework/Classes/PeerConnection/RTCIceServer+Private.h",
"objc/Framework/Classes/RTCI420Shader.mm", "objc/Framework/Classes/PeerConnection/RTCIceServer.mm",
"objc/Framework/Classes/RTCI420TextureCache.h", "objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport+Private.h",
"objc/Framework/Classes/RTCI420TextureCache.mm", "objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport.mm",
"objc/Framework/Classes/RTCIceCandidate+Private.h", "objc/Framework/Classes/PeerConnection/RTCMediaConstraints+Private.h",
"objc/Framework/Classes/RTCIceCandidate.mm", "objc/Framework/Classes/PeerConnection/RTCMediaConstraints.mm",
"objc/Framework/Classes/RTCIceServer+Private.h", "objc/Framework/Classes/PeerConnection/RTCMediaSource+Private.h",
"objc/Framework/Classes/RTCIceServer.mm", "objc/Framework/Classes/PeerConnection/RTCMediaSource.mm",
"objc/Framework/Classes/RTCLegacyStatsReport+Private.h", "objc/Framework/Classes/PeerConnection/RTCMediaStream+Private.h",
"objc/Framework/Classes/RTCLegacyStatsReport.mm", "objc/Framework/Classes/PeerConnection/RTCMediaStream.mm",
"objc/Framework/Classes/RTCMediaConstraints+Private.h", "objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack+Private.h",
"objc/Framework/Classes/RTCMediaConstraints.mm", "objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack.mm",
"objc/Framework/Classes/RTCMediaSource+Private.h", "objc/Framework/Classes/PeerConnection/RTCMetrics.mm",
"objc/Framework/Classes/RTCMediaSource.mm", "objc/Framework/Classes/PeerConnection/RTCMetricsSampleInfo+Private.h",
"objc/Framework/Classes/RTCMediaStream+Private.h", "objc/Framework/Classes/PeerConnection/RTCMetricsSampleInfo.mm",
"objc/Framework/Classes/RTCMediaStream.mm", "objc/Framework/Classes/PeerConnection/RTCPeerConnection+DataChannel.mm",
"objc/Framework/Classes/RTCMediaStreamTrack+Private.h", "objc/Framework/Classes/PeerConnection/RTCPeerConnection+Private.h",
"objc/Framework/Classes/RTCMediaStreamTrack.mm", "objc/Framework/Classes/PeerConnection/RTCPeerConnection+Stats.mm",
"objc/Framework/Classes/RTCOpenGLDefines.h", "objc/Framework/Classes/PeerConnection/RTCPeerConnection.mm",
"objc/Framework/Classes/RTCPeerConnection+DataChannel.mm", "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Private.h",
"objc/Framework/Classes/RTCPeerConnection+Private.h", "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm",
"objc/Framework/Classes/RTCPeerConnection+Stats.mm", "objc/Framework/Classes/PeerConnection/RTCRtpCodecParameters+Private.h",
"objc/Framework/Classes/RTCPeerConnection.mm", "objc/Framework/Classes/PeerConnection/RTCRtpCodecParameters.mm",
"objc/Framework/Classes/RTCPeerConnectionFactory+Private.h", "objc/Framework/Classes/PeerConnection/RTCRtpEncodingParameters+Private.h",
"objc/Framework/Classes/RTCPeerConnectionFactory.mm", "objc/Framework/Classes/PeerConnection/RTCRtpEncodingParameters.mm",
"objc/Framework/Classes/RTCRtpCodecParameters+Private.h", "objc/Framework/Classes/PeerConnection/RTCRtpParameters+Private.h",
"objc/Framework/Classes/RTCRtpCodecParameters.mm", "objc/Framework/Classes/PeerConnection/RTCRtpParameters.mm",
"objc/Framework/Classes/RTCRtpEncodingParameters+Private.h", "objc/Framework/Classes/PeerConnection/RTCRtpReceiver+Private.h",
"objc/Framework/Classes/RTCRtpEncodingParameters.mm", "objc/Framework/Classes/PeerConnection/RTCRtpReceiver.mm",
"objc/Framework/Classes/RTCRtpParameters+Private.h", "objc/Framework/Classes/PeerConnection/RTCRtpSender+Private.h",
"objc/Framework/Classes/RTCRtpParameters.mm", "objc/Framework/Classes/PeerConnection/RTCRtpSender.mm",
"objc/Framework/Classes/RTCRtpReceiver+Private.h", "objc/Framework/Classes/PeerConnection/RTCSSLAdapter.mm",
"objc/Framework/Classes/RTCRtpReceiver.mm", "objc/Framework/Classes/PeerConnection/RTCSessionDescription+Private.h",
"objc/Framework/Classes/RTCRtpSender+Private.h", "objc/Framework/Classes/PeerConnection/RTCSessionDescription.mm",
"objc/Framework/Classes/RTCRtpSender.mm", "objc/Framework/Classes/PeerConnection/RTCTracing.mm",
"objc/Framework/Classes/RTCSessionDescription+Private.h", "objc/Framework/Classes/PeerConnection/RTCVideoCapturer.m",
"objc/Framework/Classes/RTCSessionDescription.mm", "objc/Framework/Classes/PeerConnection/RTCVideoFrame+Private.h",
"objc/Framework/Classes/RTCShader+Private.h", "objc/Framework/Classes/PeerConnection/RTCVideoFrame.mm",
"objc/Framework/Classes/RTCShader.h", "objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter+Private.h",
"objc/Framework/Classes/RTCShader.mm", "objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.h",
"objc/Framework/Classes/RTCVideoCapturer.m", "objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.mm",
"objc/Framework/Classes/RTCVideoFrame+Private.h", "objc/Framework/Classes/PeerConnection/RTCVideoSource+Private.h",
"objc/Framework/Classes/RTCVideoFrame.mm", "objc/Framework/Classes/PeerConnection/RTCVideoSource.mm",
"objc/Framework/Classes/RTCVideoRendererAdapter+Private.h", "objc/Framework/Classes/PeerConnection/RTCVideoTrack+Private.h",
"objc/Framework/Classes/RTCVideoRendererAdapter.h", "objc/Framework/Classes/PeerConnection/RTCVideoTrack.mm",
"objc/Framework/Classes/RTCVideoRendererAdapter.mm",
"objc/Framework/Classes/RTCVideoSource+Private.h",
"objc/Framework/Classes/RTCVideoSource.mm",
"objc/Framework/Classes/RTCVideoTrack+Private.h",
"objc/Framework/Classes/RTCVideoTrack.mm",
"objc/Framework/Classes/avfoundationformatmapper.h",
"objc/Framework/Classes/avfoundationformatmapper.mm",
"objc/Framework/Classes/avfoundationvideocapturer.h",
"objc/Framework/Classes/avfoundationvideocapturer.mm",
"objc/Framework/Classes/objcvideotracksource.h",
"objc/Framework/Classes/objcvideotracksource.mm",
"objc/Framework/Classes/videotoolboxvideocodecfactory.cc",
"objc/Framework/Classes/videotoolboxvideocodecfactory.h",
"objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h", "objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h",
"objc/Framework/Headers/WebRTC/RTCAudioSource.h", "objc/Framework/Headers/WebRTC/RTCAudioSource.h",
"objc/Framework/Headers/WebRTC/RTCAudioTrack.h", "objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
@ -196,6 +271,8 @@ if (is_ios || is_mac) {
"objc/Framework/Headers/WebRTC/RTCMediaSource.h", "objc/Framework/Headers/WebRTC/RTCMediaSource.h",
"objc/Framework/Headers/WebRTC/RTCMediaStream.h", "objc/Framework/Headers/WebRTC/RTCMediaStream.h",
"objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h", "objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
"objc/Framework/Headers/WebRTC/RTCMetrics.h",
"objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h",
"objc/Framework/Headers/WebRTC/RTCPeerConnection.h", "objc/Framework/Headers/WebRTC/RTCPeerConnection.h",
"objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h", "objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h",
"objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h", "objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h",
@ -203,7 +280,9 @@ if (is_ios || is_mac) {
"objc/Framework/Headers/WebRTC/RTCRtpParameters.h", "objc/Framework/Headers/WebRTC/RTCRtpParameters.h",
"objc/Framework/Headers/WebRTC/RTCRtpReceiver.h", "objc/Framework/Headers/WebRTC/RTCRtpReceiver.h",
"objc/Framework/Headers/WebRTC/RTCRtpSender.h", "objc/Framework/Headers/WebRTC/RTCRtpSender.h",
"objc/Framework/Headers/WebRTC/RTCSSLAdapter.h",
"objc/Framework/Headers/WebRTC/RTCSessionDescription.h", "objc/Framework/Headers/WebRTC/RTCSessionDescription.h",
"objc/Framework/Headers/WebRTC/RTCTracing.h",
"objc/Framework/Headers/WebRTC/RTCVideoCapturer.h", "objc/Framework/Headers/WebRTC/RTCVideoCapturer.h",
"objc/Framework/Headers/WebRTC/RTCVideoFrame.h", "objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
"objc/Framework/Headers/WebRTC/RTCVideoRenderer.h", "objc/Framework/Headers/WebRTC/RTCVideoRenderer.h",
@ -211,65 +290,36 @@ if (is_ios || is_mac) {
"objc/Framework/Headers/WebRTC/RTCVideoTrack.h", "objc/Framework/Headers/WebRTC/RTCVideoTrack.h",
] ]
deps = [ libs = [ "AVFoundation.framework" ]
":rtc_sdk_corevideoframebuffer",
":webrtc_h264_video_toolbox",
"../api:video_frame_api",
"../base:rtc_base",
"../base:rtc_base_approved",
"../common_video",
"../media:rtc_media",
"../media:rtc_media_base",
"../system_wrappers",
]
if (is_ios) { if (is_ios) {
sources += [ libs += [ "CoreGraphics.framework" ]
"objc/Framework/Classes/RTCEAGLVideoView.m",
"objc/Framework/Classes/RTCNV12TextureCache.h",
"objc/Framework/Classes/RTCNV12TextureCache.m",
"objc/Framework/Classes/RTCNativeNV12Shader.mm",
"objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h",
]
libs = [
"CoreGraphics.framework",
"GLKit.framework",
"OpenGLES.framework",
"QuartzCore.framework",
]
}
if (is_mac) {
sources += [
"objc/Framework/Classes/RTCNSGLVideoView.m",
"objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h",
"objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h",
]
libs = [
"CoreVideo.framework",
"CoreMedia.framework",
"OpenGL.framework",
"Metal.framework",
"MetalKit.framework",
]
} }
configs += [ "..:common_objc" ] configs += [ "..:common_objc" ]
public_configs = [ ":rtc_sdk_common_objc_config" ] public_configs = [ ":objc_common_config" ]
if (!build_with_chromium && is_clang) { if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
} }
libs += [ "AVFoundation.framework" ] deps = [
":objc_common",
deps += [ ":objc_corevideoframebuffer",
":rtc_sdk_common_objc", ":objc_ui",
":objc_video",
"../pc:libjingle_peerconnection", "../pc:libjingle_peerconnection",
"//webrtc/api:video_frame_api",
"//webrtc/base:rtc_base",
"//webrtc/media:rtc_media_base",
] ]
if (rtc_use_metal_rendering) {
deps += [ ":objc_metal" ]
}
if (rtc_build_libyuv) { if (rtc_build_libyuv) {
deps += [ "$rtc_libyuv_dir" ] deps += [ "$rtc_libyuv_dir" ]
public_deps = [ public_deps = [
@ -279,7 +329,7 @@ if (is_ios || is_mac) {
} }
if (rtc_include_tests) { if (rtc_include_tests) {
rtc_source_set("rtc_sdk_peerconnection_objc_unittests") { rtc_source_set("objc_sdk_unittests") {
testonly = true testonly = true
# Skip restricting visibility on mobile platforms since the tests on those # Skip restricting visibility on mobile platforms since the tests on those
@ -299,15 +349,6 @@ if (is_ios || is_mac) {
"objc/Framework/UnitTests/RTCSessionDescriptionTest.mm", "objc/Framework/UnitTests/RTCSessionDescriptionTest.mm",
"objc/Framework/UnitTests/avformatmappertests.mm", "objc/Framework/UnitTests/avformatmappertests.mm",
] ]
if (is_ios) {
sources += [ "objc/Framework/UnitTests/RTCMTLVideoViewTests.mm" ]
if (current_cpu != "arm64") {
sources += [ "objc/Framework/Classes/Metal/RTCMTLVideoView.m" ]
}
}
# TODO(tkchin): Cleanup this warning.
cflags = [ "-Wno-objc-property-no-attribute" ]
# |-ObjC| flag needed to make sure category method implementations # |-ObjC| flag needed to make sure category method implementations
# are included: # are included:
@ -316,12 +357,24 @@ if (is_ios || is_mac) {
defines = [ "GTEST_RELATIVE_PATH" ] defines = [ "GTEST_RELATIVE_PATH" ]
deps = [ deps = [
":rtc_sdk_peerconnection_objc", ":objc_peerconnection",
"..//system_wrappers:system_wrappers_default",
"../base:rtc_base_tests_utils", "../base:rtc_base_tests_utils",
"//third_party/ocmock", "//third_party/ocmock",
"//webrtc/system_wrappers:system_wrappers_default", "//webrtc/system_wrappers:system_wrappers_default",
] ]
# RTCMTLVideoView not supported on 32-bit arm
if (is_ios && current_cpu != "arm") {
sources += [ "objc/Framework/UnitTests/RTCMTLVideoViewTests.mm" ]
if (current_cpu != "arm64") {
# Only include this file on simulator, as it's already
# included in device builds.
sources += [ "objc/Framework/Classes/Metal/RTCMTLVideoView.m" ]
libs = [ "CoreVideo.framework" ]
}
}
if (!build_with_chromium && is_clang) { if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
@ -330,16 +383,12 @@ if (is_ios || is_mac) {
} }
if (is_ios) { if (is_ios) {
ios_framework_bundle("rtc_sdk_framework_objc") { ios_framework_bundle("objc_framework") {
info_plist = "objc/Framework/Info.plist" info_plist = "objc/Framework/Info.plist"
output_name = "WebRTC" output_name = "WebRTC"
common_objc_headers = [ common_objc_headers = [
"objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h", "objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h",
"objc/Framework/Headers/WebRTC/RTCAudioSource.h",
"objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
"objc/Framework/Headers/WebRTC/RTCCameraVideoCapturer.h",
"objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h",
"objc/Framework/Headers/WebRTC/RTCConfiguration.h", "objc/Framework/Headers/WebRTC/RTCConfiguration.h",
"objc/Framework/Headers/WebRTC/RTCDataChannel.h", "objc/Framework/Headers/WebRTC/RTCDataChannel.h",
"objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h", "objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h",
@ -357,7 +406,6 @@ if (is_ios || is_mac) {
"objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h", "objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
"objc/Framework/Headers/WebRTC/RTCMetrics.h", "objc/Framework/Headers/WebRTC/RTCMetrics.h",
"objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h", "objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h",
"objc/Framework/Headers/WebRTC/RTCMTLVideoView.h",
"objc/Framework/Headers/WebRTC/RTCPeerConnection.h", "objc/Framework/Headers/WebRTC/RTCPeerConnection.h",
"objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h", "objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h",
"objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h", "objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h",
@ -392,23 +440,22 @@ if (is_ios || is_mac) {
] ]
deps = [ deps = [
":rtc_sdk_peerconnection_objc", ":objc_peerconnection",
"../base:rtc_base_approved",
"../system_wrappers:field_trial_default", "../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default", "../system_wrappers:metrics_default",
] ]
libs = [ libs = [
"AVFoundation.framework", "AVFoundation.framework",
"AudioToolbox.framework",
"CoreGraphics.framework", "CoreGraphics.framework",
"CoreMedia.framework", "CoreMedia.framework",
"GLKit.framework", "GLKit.framework",
"VideoToolbox.framework",
] ]
configs += [ "..:common_objc" ] configs += [ "..:common_objc" ]
public_configs = [ ":rtc_sdk_common_objc_config" ] public_configs = [ ":objc_common_config" ]
if (!build_with_chromium && is_clang) { if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163) # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163)
@ -420,16 +467,16 @@ if (is_ios || is_mac) {
rtc_static_library("rtc_sdk_objc") { rtc_static_library("rtc_sdk_objc") {
complete_static_lib = true complete_static_lib = true
deps = [ deps = [
":rtc_sdk_peerconnection_objc", ":objc_peerconnection",
"//webrtc/system_wrappers:field_trial_default", "//webrtc/system_wrappers:field_trial_default",
"//webrtc/system_wrappers:metrics_default", "//webrtc/system_wrappers:metrics_default",
] ]
} }
rtc_static_library("rtc_sdk_corevideoframebuffer") { rtc_static_library("objc_corevideoframebuffer") {
sources = [ sources = [
"objc/Framework/Classes/corevideo_frame_buffer.cc", "objc/Framework/Classes/Video/corevideo_frame_buffer.cc",
"objc/Framework/Classes/corevideo_frame_buffer.h", "objc/Framework/Classes/Video/corevideo_frame_buffer.h",
] ]
deps = [ deps = [
@ -437,32 +484,39 @@ if (is_ios || is_mac) {
"../common_video", "../common_video",
] ]
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" ]
}
libs = [ "CoreVideo.framework" ] libs = [ "CoreVideo.framework" ]
} }
rtc_static_library("webrtc_h264_video_toolbox") { rtc_static_library("objc_videotoolbox") {
sources = [ sources = [
"objc/Framework/Classes/h264_video_toolbox_decoder.cc", "objc/Framework/Classes/VideoToolbox/decoder.cc",
"objc/Framework/Classes/h264_video_toolbox_decoder.h", "objc/Framework/Classes/VideoToolbox/decoder.h",
"objc/Framework/Classes/h264_video_toolbox_encoder.h", "objc/Framework/Classes/VideoToolbox/encoder.h",
"objc/Framework/Classes/h264_video_toolbox_encoder.mm", "objc/Framework/Classes/VideoToolbox/encoder.mm",
"objc/Framework/Classes/h264_video_toolbox_nalu.cc", "objc/Framework/Classes/VideoToolbox/nalu_rewriter.cc",
"objc/Framework/Classes/h264_video_toolbox_nalu.h", "objc/Framework/Classes/VideoToolbox/nalu_rewriter.h",
"objc/Framework/Classes/VideoToolbox/videocodecfactory.cc",
"objc/Framework/Classes/VideoToolbox/videocodecfactory.h",
] ]
configs += [ "//webrtc:common_objc" ] configs += [ "//webrtc:common_objc" ]
deps = [ deps = [
":rtc_sdk_common_objc", ":objc_common",
":rtc_sdk_corevideoframebuffer", ":objc_corevideoframebuffer",
"../api:video_frame_api",
"../base:rtc_base_approved", "../base:rtc_base_approved",
"../common_video", "//webrtc/common_video",
"../media:rtc_media_base", "//webrtc/media:rtc_media",
"../modules:module_api", "//webrtc/media:rtc_media_base",
"../modules/video_coding:video_coding_utility", "//webrtc/modules:module_api",
"../modules/video_coding:webrtc_h264", "//webrtc/modules/video_coding:video_coding_utility",
"../system_wrappers", "//webrtc/modules/video_coding:webrtc_h264",
"//webrtc/system_wrappers",
] ]
libs = [ libs = [

View File

@ -1,5 +1,12 @@
include_rules = [ include_rules = [
"+WebRTC", "+WebRTC",
"+Common",
"+Video",
"+Audio",
"+UI",
"+PeerConnection",
"+VideoToolbox",
"+Metal",
"+webrtc/api", "+webrtc/api",
"+webrtc/common_video/h264", "+webrtc/common_video/h264",
"+webrtc/common_video/include", "+webrtc/common_video/include",

View File

@ -8,8 +8,8 @@
* be found in the AUTHORS file in the root of the source tree. * be found in the AUTHORS file in the root of the source tree.
*/ */
#ifndef WEBRTC_BASE_OBJC_RTC_UI_APPLICATION_H_ #ifndef WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_UI_RTCUIAPPLICATION_H_
#define WEBRTC_BASE_OBJC_RTC_UI_APPLICATION_H_ #define WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_UI_RTCUIAPPLICATION_H_
#include "WebRTC/RTCMacros.h" #include "WebRTC/RTCMacros.h"
@ -18,4 +18,4 @@
RTC_EXTERN bool RTCIsUIApplicationActive(); RTC_EXTERN bool RTCIsUIApplicationActive();
#endif // WEBRTC_IOS #endif // WEBRTC_IOS
#endif // WEBRTC_BASE_OBJC_RTC_UI_APPLICATION_H_ #endif // WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_UI_RTCUIAPPLICATION_H_

View File

@ -8,8 +8,8 @@
* be found in the AUTHORS file in the root of the source tree. * be found in the AUTHORS file in the root of the source tree.
*/ */
#ifndef WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_HELPERS_H_ #ifndef WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_COMMON_HELPERS_H_
#define WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_HELPERS_H_ #define WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_COMMON_HELPERS_H_
#if defined(WEBRTC_IOS) #if defined(WEBRTC_IOS)
@ -33,8 +33,6 @@ std::string GetThreadInfo();
// Example: <NSThread: 0x170066d80>{number = 1, name = main} // Example: <NSThread: 0x170066d80>{number = 1, name = main}
std::string GetCurrentThreadDescription(); std::string GetCurrentThreadDescription();
std::string GetAudioSessionCategory();
// Returns the current name of the operating system. // Returns the current name of the operating system.
std::string GetSystemName(); std::string GetSystemName();
@ -75,4 +73,4 @@ bool GetLowPowerModeEnabled();
#endif // defined(WEBRTC_IOS) #endif // defined(WEBRTC_IOS)
#endif // WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_HELPERS_H_ #endif // WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_COMMON_HELPERS_H_

View File

@ -9,7 +9,6 @@
*/ */
#import <AVFoundation/AVFoundation.h>
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <sys/sysctl.h> #import <sys/sysctl.h>
#if defined(WEBRTC_IOS) #if defined(WEBRTC_IOS)
@ -20,7 +19,7 @@
#include "webrtc/base/checks.h" #include "webrtc/base/checks.h"
#include "webrtc/base/logging.h" #include "webrtc/base/logging.h"
#include "webrtc/sdk/objc/Framework/Classes/helpers.h" #include "webrtc/sdk/objc/Framework/Classes/Common/helpers.h"
namespace webrtc { namespace webrtc {
namespace ios { namespace ios {
@ -65,11 +64,6 @@ std::string GetCurrentThreadDescription() {
} }
#if defined(WEBRTC_IOS) #if defined(WEBRTC_IOS)
std::string GetAudioSessionCategory() {
NSString* category = [[AVAudioSession sharedInstance] category];
return StdStringFromNSString(category);
}
std::string GetSystemName() { std::string GetSystemName() {
NSString* osName = [[UIDevice currentDevice] systemName]; NSString* osName = [[UIDevice currentDevice] systemName];
return StdStringFromNSString(osName); return StdStringFromNSString(osName);

View File

@ -11,7 +11,6 @@
#import "RTCPeerConnectionFactory+Private.h" #import "RTCPeerConnectionFactory+Private.h"
#import "NSString+StdString.h" #import "NSString+StdString.h"
#import "RTCAVFoundationVideoSource+Private.h"
#import "RTCAudioSource+Private.h" #import "RTCAudioSource+Private.h"
#import "RTCAudioTrack+Private.h" #import "RTCAudioTrack+Private.h"
#import "RTCMediaConstraints+Private.h" #import "RTCMediaConstraints+Private.h"
@ -19,10 +18,11 @@
#import "RTCPeerConnection+Private.h" #import "RTCPeerConnection+Private.h"
#import "RTCVideoSource+Private.h" #import "RTCVideoSource+Private.h"
#import "RTCVideoTrack+Private.h" #import "RTCVideoTrack+Private.h"
#import "RTCAVFoundationVideoSource+Private.h"
#import "WebRTC/RTCLogging.h" #import "WebRTC/RTCLogging.h"
#include "objcvideotracksource.h" #include "Video/objcvideotracksource.h"
#include "videotoolboxvideocodecfactory.h" #include "VideoToolbox/videocodecfactory.h"
@implementation RTCPeerConnectionFactory { @implementation RTCPeerConnectionFactory {
std::unique_ptr<rtc::Thread> _networkThread; std::unique_ptr<rtc::Thread> _networkThread;

View File

@ -10,7 +10,7 @@
#import "RTCVideoFrame+Private.h" #import "RTCVideoFrame+Private.h"
#include "webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h" #include "webrtc/sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.h"
@implementation RTCVideoFrame { @implementation RTCVideoFrame {
rtc::scoped_refptr<webrtc::VideoFrameBuffer> _videoBuffer; rtc::scoped_refptr<webrtc::VideoFrameBuffer> _videoBuffer;

View File

@ -11,7 +11,7 @@
#import "RTCVideoSource+Private.h" #import "RTCVideoSource+Private.h"
#include "webrtc/base/checks.h" #include "webrtc/base/checks.h"
#include "webrtc/sdk/objc/Framework/Classes/objcvideotracksource.h" #include "webrtc/sdk/objc/Framework/Classes/Video/objcvideotracksource.h"
// TODO(magjed): Refactor this class and target ObjcVideoTrackSource only once // TODO(magjed): Refactor this class and target ObjcVideoTrackSource only once
// RTCAVFoundationVideoSource is gone. See http://crbug/webrtc/7177 for more // RTCAVFoundationVideoSource is gone. See http://crbug/webrtc/7177 for more

View File

@ -8,8 +8,8 @@
* be found in the AUTHORS file in the root of the source tree. * be found in the AUTHORS file in the root of the source tree.
*/ */
#ifndef WEBRTC_API_OBJC_AVFOUNDATION_VIDEO_CAPTURER_H_ #ifndef WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_VIDEO_AVFOUNDATIONVIDEOCAPTURER_H_
#define WEBRTC_API_OBJC_AVFOUNDATION_VIDEO_CAPTURER_H_ #define WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_VIDEO_AVFOUNDATIONVIDEOCAPTURER_H_
#import <AVFoundation/AVFoundation.h> #import <AVFoundation/AVFoundation.h>
@ -69,4 +69,4 @@ class AVFoundationVideoCapturer : public cricket::VideoCapturer {
} // namespace webrtc } // namespace webrtc
#endif // WEBRTC_API_OBJC_AVFOUNDATION_VIDEO_CAPTURER_H_ #endif // WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_VIDEO_AVFOUNDATIONVIDEOCAPTURER_H_

View File

@ -23,7 +23,7 @@
#include "webrtc/base/checks.h" #include "webrtc/base/checks.h"
#include "webrtc/base/logging.h" #include "webrtc/base/logging.h"
#include "webrtc/base/thread.h" #include "webrtc/base/thread.h"
#include "webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h" #include "webrtc/sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.h"
namespace webrtc { namespace webrtc {

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree. * be found in the AUTHORS file in the root of the source tree.
*/ */
#include "webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h" #include "webrtc/sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.h"
#include "libyuv/convert.h" #include "libyuv/convert.h"
#include "webrtc/api/video/i420_buffer.h" #include "webrtc/api/video/i420_buffer.h"

Some files were not shown because too many files have changed in this diff Show More