webrtc_m130/sdk/BUILD.gn

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

1751 lines
58 KiB
Plaintext
Raw Normal View History

# Copyright 2016 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.
import("//third_party/libaom/options.gni")
Reland of Moving webrtc.gni up one level from build/ (patchset #1 id:1 of https://codereview.webrtc.org/2657563002/ ) Reason for revert: Starting to work on a fix (it seems that there are third_party dependencies that depends on the path to the webrtc.gni file) Original issue's description: > Revert of Moving webrtc.gni up one level from build/ (patchset #1 id:1 of https://codereview.webrtc.org/2651543003/ ) > > Reason for revert: > This was causing the following failure: https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Builder/builds/838/steps/generate_build_files/logs/stdio > > Original issue's description: > > Moving webrtc.gni up one level from build/ > > > > BUG=webrtc:7030 > > > > Review-Url: https://codereview.webrtc.org/2651543003 > > Cr-Commit-Position: refs/heads/master@{#16241} > > Committed: https://chromium.googlesource.com/external/webrtc/+/35a32700fc9b5d932ddbd528c12f59c3274e4774 > > TBR=kjellander@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:7030 > > Review-Url: https://codereview.webrtc.org/2657563002 > Cr-Commit-Position: refs/heads/master@{#16244} > Committed: https://chromium.googlesource.com/external/webrtc/+/69dc7dbe247ead087f3bae0eb7e23f27f0de1ec3 TBR=kjellander@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:7030 Review-Url: https://codereview.webrtc.org/2654773002 Cr-Commit-Position: refs/heads/master@{#16247}
2017-01-24 06:58:22 -08:00
import("../webrtc.gni")
if (is_ios) {
import("//build/config/ios/ios_sdk.gni")
import("//build/config/ios/rules.gni")
}
if (is_mac) {
import("//build/config/mac/rules.gni")
Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2911053002/ ) Reason for revert: Take three of relanding this after all internal issues have been resolved. Original issue's description: > Revert of Split iOS sdk in to separate targets (patchset #3 id:320001 of https://codereview.webrtc.org/2893843003/ ) > > Reason for revert: > Breaks downstream project. > > Original issue's description: > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2893593002/ ) > > > > Reason for revert: > > Take two of fixing downstream issues? > > > > Original issue's description: > > > Revert of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890733003/ ) > > > > > > Reason for revert: > > > Still problems with downstream projects > > > > > > Original issue's description: > > > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890513002/ ) > > > > > > > > Reason for revert: > > > > Fixing downstream breakages > > > > > > > > Original issue's description: > > > > > Revert of Split iOS sdk in to separate targets (patchset #13 id:280001 of https://codereview.webrtc.org/2862543002/ ) > > > > > > > > > > Reason for revert: > > > > > Breaking downstream projects. > > > > > > > > > > Original issue's description: > > > > > > 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} > > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/52c83fe7102f566cf35a7533092873d58b38f426 > > > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,kthelgason@webrtc.org > > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > > NOPRESUBMIT=true > > > > > NOTREECHECKS=true > > > > > NOTRY=true > > > > > BUG=webrtc:4867 > > > > > > > > > > Review-Url: https://codereview.webrtc.org/2890513002 > > > > > Cr-Commit-Position: refs/heads/master@{#18170} > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/9756238084707787f735e1294e896e462e459717 > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > NOPRESUBMIT=true > > > > NOTREECHECKS=true > > > > NOTRY=true > > > > BUG=webrtc:4867 > > > > > > > > Review-Url: https://codereview.webrtc.org/2890733003 > > > > Cr-Commit-Position: refs/heads/master@{#18174} > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/d51e042492bedd057bc0cac7828979d5c7369cea > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > NOPRESUBMIT=true > > > NOTREECHECKS=true > > > NOTRY=true > > > BUG=webrtc:4867 > > > > > > Review-Url: https://codereview.webrtc.org/2893593002 > > > Cr-Commit-Position: refs/heads/master@{#18182} > > > Committed: https://chromium.googlesource.com/external/webrtc/+/37144b214e2baf62ecb262ab878dde8c59cdd6a3 > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=webrtc:4867 > > > > Review-Url: https://codereview.webrtc.org/2893843003 > > Cr-Commit-Position: refs/heads/master@{#18303} > > Committed: https://chromium.googlesource.com/external/webrtc/+/580c3522d294c877adfe555048c675bd8d166657 > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,kthelgason@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:4867 > > Review-Url: https://codereview.webrtc.org/2911053002 > Cr-Commit-Position: refs/heads/master@{#18309} > Committed: https://chromium.googlesource.com/external/webrtc/+/af5c05540cc8208f682cafe88c5c16a505479196 TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,mbonadei@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:4867 Review-Url: https://codereview.webrtc.org/2913753003 Cr-Commit-Position: refs/heads/master@{#18319}
2017-05-30 01:48:47 -07:00
}
GN: New conventions, default target and refactorings Introduce a convention on categorizing GN targets: 1. Production code 2. Tests 3. Examples 4. Tools The first two have targets spread out all over the tree, while the latter are isolated to examples/ and tools/ directories. Another new convention: Each directory's BUILD.gn file shall contain a target named similar to the directory name. This target shall contain the 'most common' production code, i.e. so that most consumers of the directory can depend on only the directory (which implicitly means that target in GN). //webrtc:webrtc_tests is changed to depend on all WebRTC tests. From now on, it's necessary to add new test targets to this dependency tree in order to get them compiled. Two new group targets are created: //webrtc/modules/audio_coding:audio_coding_tests //webrtc/modules/audio_processing:audio_processing_tests to reduce the long list of tests in //webrtc:webrtc_tests. Visibility on //webrtc:webrtc and //webrtc:webrtc_tests is restricted to the root target, to avoid circular dependencies due to the monolithic property of these targets (a problem we've had in the past). The 'root' target at the top level is renamed to 'default', which means GN will build this target instead of _all_ generated targets (see https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/faq.md#Can-I-control-what-targets-are-built-by-default). This target now depends on everything we want to build, meaning all targets now explicitly needs to be wired up from the root target in order to get build. Having this, the number of compiled objects on Android is decreased from 8855 to 6276. It also gives us better control over our build. BUG=webrtc:6440 TESTED=git cl try --clobber NOTRY=True Review-Url: https://codereview.webrtc.org/2441383002 Cr-Commit-Position: refs/heads/master@{#14821}
2016-10-28 05:44:03 -07:00
group("sdk") {
public_deps = []
if (!build_with_chromium) {
if (is_android) {
public_deps += [ "android" ]
}
if (is_ios) {
public_deps += [ ":framework_objc" ]
}
GN: New conventions, default target and refactorings Introduce a convention on categorizing GN targets: 1. Production code 2. Tests 3. Examples 4. Tools The first two have targets spread out all over the tree, while the latter are isolated to examples/ and tools/ directories. Another new convention: Each directory's BUILD.gn file shall contain a target named similar to the directory name. This target shall contain the 'most common' production code, i.e. so that most consumers of the directory can depend on only the directory (which implicitly means that target in GN). //webrtc:webrtc_tests is changed to depend on all WebRTC tests. From now on, it's necessary to add new test targets to this dependency tree in order to get them compiled. Two new group targets are created: //webrtc/modules/audio_coding:audio_coding_tests //webrtc/modules/audio_processing:audio_processing_tests to reduce the long list of tests in //webrtc:webrtc_tests. Visibility on //webrtc:webrtc and //webrtc:webrtc_tests is restricted to the root target, to avoid circular dependencies due to the monolithic property of these targets (a problem we've had in the past). The 'root' target at the top level is renamed to 'default', which means GN will build this target instead of _all_ generated targets (see https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/faq.md#Can-I-control-what-targets-are-built-by-default). This target now depends on everything we want to build, meaning all targets now explicitly needs to be wired up from the root target in order to get build. Having this, the number of compiled objects on Android is decreased from 8855 to 6276. It also gives us better control over our build. BUG=webrtc:6440 TESTED=git cl try --clobber NOTRY=True Review-Url: https://codereview.webrtc.org/2441383002 Cr-Commit-Position: refs/heads/master@{#14821}
2016-10-28 05:44:03 -07:00
}
}
rtc_library("media_constraints") {
sources = [
"media_constraints.cc",
"media_constraints.h",
]
deps = [
"../api:audio_options_api",
"../api:libjingle_peerconnection_api",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("sdk_tests") {
testonly = true
sources = [ "media_constraints_unittest.cc" ]
deps = [
":media_constraints",
"../test:test_support",
]
}
if (is_ios || is_mac) {
config("common_config_objc") {
include_dirs = [
"objc",
# This is needed so that framework headers can include base headers
# without pathname (so it works from within the framework module).
"objc/base",
]
cflags = [
"-Wimplicit-retain-self",
"-Wstrict-overflow",
"-Wmissing-field-initializers",
]
if (use_clang_coverage) {
configs = [ "//build/config/coverage:default_coverage" ]
}
}
config("used_from_extension") {
if (is_ios && rtc_apprtcmobile_broadcast_extension) {
cflags = [ "-fapplication-extension" ]
}
}
# TODO(bugs.webrtc.org/9627): Remove this when unused. Targets should depend on base_objc
# or helpers_objc directly instead.
rtc_library("common_objc") {
visibility = [ "*" ]
sources = [ "objc/helpers/noop.mm" ]
public_configs = [ ":common_config_objc" ]
deps = [
":base_objc",
":helpers_objc",
]
}
rtc_library("base_objc") {
visibility = [ "*" ]
sources = [
"objc/base/RTCCodecSpecificInfo.h",
"objc/base/RTCEncodedImage.h",
"objc/base/RTCEncodedImage.m",
"objc/base/RTCI420Buffer.h",
"objc/base/RTCLogging.h",
"objc/base/RTCLogging.mm",
"objc/base/RTCMacros.h",
"objc/base/RTCMutableI420Buffer.h",
"objc/base/RTCMutableYUVPlanarBuffer.h",
"objc/base/RTCSSLCertificateVerifier.h",
"objc/base/RTCVideoCapturer.h",
"objc/base/RTCVideoCapturer.m",
"objc/base/RTCVideoCodecInfo.h",
"objc/base/RTCVideoCodecInfo.m",
"objc/base/RTCVideoDecoder.h",
"objc/base/RTCVideoDecoderFactory.h",
"objc/base/RTCVideoEncoder.h",
"objc/base/RTCVideoEncoderFactory.h",
"objc/base/RTCVideoEncoderQpThresholds.h",
"objc/base/RTCVideoEncoderQpThresholds.m",
"objc/base/RTCVideoEncoderSettings.h",
"objc/base/RTCVideoEncoderSettings.m",
"objc/base/RTCVideoFrame.h",
"objc/base/RTCVideoFrame.mm",
"objc/base/RTCVideoFrameBuffer.h",
"objc/base/RTCVideoRenderer.h",
"objc/base/RTCYUVPlanarBuffer.h",
]
deps = [
"../rtc_base",
"../rtc_base:checks",
"../rtc_base:logging",
]
configs += [
"..:common_objc",
":used_from_extension",
]
Reland of GN: Enable ARC for Mac and iOS in rtc_* templates (patchset #1 id:1 of https://codereview.webrtc.org/2827223003/ ) Reason for revert: Relanding after fixing ARC issue. Original issue's description: > Revert of GN: Enable ARC for Mac and iOS in rtc_* templates (patchset #3 id:40001 of https://codereview.webrtc.org/2781713004/ ) > > Reason for revert: > Breaks mac build > > Original issue's description: > > GN: Enable ARC for Mac and iOS in rtc_* templates > > > > Remove all uses of retain/release and NSAutoreleasePool. > > > > This makes transformation to Bazel easier. > > > > This CL subsumes https://codereview.webrtc.org/2778163002 and depends on https://codereview.webrtc.org/2784483002/ > > > > BUG=webrtc:6412 > > > > Review-Url: https://codereview.webrtc.org/2781713004 > > Cr-Commit-Position: refs/heads/master@{#17780} > > Committed: https://chromium.googlesource.com/external/webrtc/+/6bda02b51dc00401d2a0d04be996ed10e5acac47 > > TBR=kjellander@webrtc.org,magjed@webrtc.org,stefan@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:6412 > > Review-Url: https://codereview.webrtc.org/2827223003 > Cr-Commit-Position: refs/heads/master@{#17784} > Committed: https://chromium.googlesource.com/external/webrtc/+/7c8786ae8f2d8481f74b0ab16eb91a8101fe51dc TBR=kjellander@webrtc.org,magjed@webrtc.org,stefan@webrtc.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=webrtc:6412 Review-Url: https://codereview.webrtc.org/2834273002 Cr-Commit-Position: refs/heads/master@{#17836}
2017-04-24 00:57:16 -07:00
public_configs = [ ":common_config_objc" ]
}
rtc_library("helpers_objc") {
sources = [
Revert "Add a prefix for objc category." This reverts commit 181ea6e414c5982015ce161e6368120be3658ec4. Reason for revert: Breaks downstream project. Kári will help to land it next week. Original change's description: > Add a prefix for objc category. > > According to the Google Objective-C style [1], category names should > start with an appropriate prefix. WebRTC has some category definitions > for system interfaces, but it doesn't use prefixes. > > $ otool -ov WebRTC.framework/WebRTC | grep -E "^[0-9a-z]{16} 0x[0-9a-z]+ __OBJC_._CATEGORY" | grep -v "_RTC" > 0000000002160840 0x217c3c0 __OBJC_$_CATEGORY_UIDevice_$_H264Profile > 0000000002160850 0x21808b8 __OBJC_$_CATEGORY_AVCaptureSession_$_DevicePosition > 0000000002160858 0x2180968 __OBJC_$_CATEGORY_NSString_$_StdString > 0000000002160860 0x21809c8 __OBJC_$_CATEGORY_NSString_$_AbslStringView > > To avoid conflicts, prefix the names and methods of those categories. > Also remove sdk/objc/Framework/Classes/Common/NSString+StdString.h as > it is not used by any other files. > > [1] https://google.github.io/styleguide/objcguide.html#category-naming > > Bug: webrtc:13884 > Change-Id: I2cf2742af198ab4e0bfb15c0476d72971e50ceee > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262341 > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com> > Reviewed-by: Artem Titov <titovartem@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#36880} Bug: webrtc:13884 Change-Id: I85257088e4a3a62e01ff925ab5e77af83b078ef3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262420 Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Artem Titov <titovartem@webrtc.org> Auto-Submit: Artem Titov <titovartem@webrtc.org> Owners-Override: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/main@{#36885}
2022-05-13 14:46:42 +00:00
"objc/helpers/AVCaptureSession+DevicePosition.h",
"objc/helpers/AVCaptureSession+DevicePosition.mm",
"objc/helpers/NSString+StdString.h",
"objc/helpers/NSString+StdString.mm",
"objc/helpers/RTCDispatcher+Private.h",
"objc/helpers/RTCDispatcher.h",
"objc/helpers/RTCDispatcher.m",
"objc/helpers/scoped_cftyperef.h",
]
deps = [
":base_objc",
"../rtc_base:checks",
]
absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
frameworks = [
"AVFoundation.framework",
"CoreMedia.framework",
]
configs += [
"..:common_objc",
":used_from_extension",
]
public_configs = [ ":common_config_objc" ]
if (is_ios) {
sources += [
"objc/helpers/RTCCameraPreviewView.h",
"objc/helpers/RTCCameraPreviewView.m",
"objc/helpers/UIDevice+RTCDevice.h",
"objc/helpers/UIDevice+RTCDevice.mm",
]
}
}
if (!build_with_chromium) {
rtc_library("callback_logger_objc") {
sources = [
"objc/api/logging/RTCCallbackLogger.h",
"objc/api/logging/RTCCallbackLogger.mm",
]
deps = [
":base_objc",
":helpers_objc",
"../rtc_base",
"../rtc_base:checks",
"../rtc_base:logging",
]
configs += [
"..:common_objc",
":used_from_extension",
]
absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}
rtc_library("file_logger_objc") {
sources = [
"objc/api/peerconnection/RTCFileLogger.h",
"objc/api/peerconnection/RTCFileLogger.mm",
]
deps = [
":base_objc",
"../rtc_base",
"../rtc_base:checks",
"../rtc_base:logging",
]
configs += [
"..:common_objc",
":used_from_extension",
Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2911053002/ ) Reason for revert: Take three of relanding this after all internal issues have been resolved. Original issue's description: > Revert of Split iOS sdk in to separate targets (patchset #3 id:320001 of https://codereview.webrtc.org/2893843003/ ) > > Reason for revert: > Breaks downstream project. > > Original issue's description: > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2893593002/ ) > > > > Reason for revert: > > Take two of fixing downstream issues? > > > > Original issue's description: > > > Revert of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890733003/ ) > > > > > > Reason for revert: > > > Still problems with downstream projects > > > > > > Original issue's description: > > > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890513002/ ) > > > > > > > > Reason for revert: > > > > Fixing downstream breakages > > > > > > > > Original issue's description: > > > > > Revert of Split iOS sdk in to separate targets (patchset #13 id:280001 of https://codereview.webrtc.org/2862543002/ ) > > > > > > > > > > Reason for revert: > > > > > Breaking downstream projects. > > > > > > > > > > Original issue's description: > > > > > > 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} > > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/52c83fe7102f566cf35a7533092873d58b38f426 > > > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,kthelgason@webrtc.org > > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > > NOPRESUBMIT=true > > > > > NOTREECHECKS=true > > > > > NOTRY=true > > > > > BUG=webrtc:4867 > > > > > > > > > > Review-Url: https://codereview.webrtc.org/2890513002 > > > > > Cr-Commit-Position: refs/heads/master@{#18170} > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/9756238084707787f735e1294e896e462e459717 > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > NOPRESUBMIT=true > > > > NOTREECHECKS=true > > > > NOTRY=true > > > > BUG=webrtc:4867 > > > > > > > > Review-Url: https://codereview.webrtc.org/2890733003 > > > > Cr-Commit-Position: refs/heads/master@{#18174} > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/d51e042492bedd057bc0cac7828979d5c7369cea > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > NOPRESUBMIT=true > > > NOTREECHECKS=true > > > NOTRY=true > > > BUG=webrtc:4867 > > > > > > Review-Url: https://codereview.webrtc.org/2893593002 > > > Cr-Commit-Position: refs/heads/master@{#18182} > > > Committed: https://chromium.googlesource.com/external/webrtc/+/37144b214e2baf62ecb262ab878dde8c59cdd6a3 > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=webrtc:4867 > > > > Review-Url: https://codereview.webrtc.org/2893843003 > > Cr-Commit-Position: refs/heads/master@{#18303} > > Committed: https://chromium.googlesource.com/external/webrtc/+/580c3522d294c877adfe555048c675bd8d166657 > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,kthelgason@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:4867 > > Review-Url: https://codereview.webrtc.org/2911053002 > Cr-Commit-Position: refs/heads/master@{#18309} > Committed: https://chromium.googlesource.com/external/webrtc/+/af5c05540cc8208f682cafe88c5c16a505479196 TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,mbonadei@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:4867 Review-Url: https://codereview.webrtc.org/2913753003 Cr-Commit-Position: refs/heads/master@{#18319}
2017-05-30 01:48:47 -07:00
]
}
}
if (!build_with_chromium) {
if (is_ios) {
rtc_library("native_api_audio_device_module") {
visibility = [ "*" ]
sources = [
"objc/native/api/audio_device_module.h",
"objc/native/api/audio_device_module.mm",
]
deps = [
":audio_device",
"../api:make_ref_counted",
"../modules/audio_device:audio_device_api",
"../modules/audio_device:audio_device_generic",
"../rtc_base:checks",
"../rtc_base:logging",
"../system_wrappers",
]
}
rtc_source_set("audio_session_observer") {
visibility = [ ":*" ]
sources = [ "objc/native/src/audio/audio_session_observer.h" ]
Reland "Refactor rtc_base build targets." This is a reland of 69241a93fb14f6527a26d5c94dde879013012d2a Fix: The problem was related to NO_MAIN_THREAD_WRAPPING, which affects https://source.chromium.org/chromium/chromium/src/+/master:third_party/webrtc/rtc_base/thread.cc;l=257-263;drc=7acc2d9fe3a6e3c4d8881d2bdfc9b8968a724cd5. The original CL didn't attach the definition of the macro NO_MAIN_THREAD_WRAPPING when building for Chromium (which doesn't have to be related to //rtc_base anymore but to //rtc_base:threading). Original change's description: > Refactor rtc_base build targets. > > The "//rtc_base:rtc_base" build target has historically been one of the > biggest targets in the WebRTC build. Big targets are the main source of > circular dependencies and non-API types leakage. > > This CL is a step forward into splitting "//rtc_base:rtc_base" into > smaller targets (as originally started in 2018). > > The only non-automated changes are (like re-wiring the build system): > * The creation of //rtc_base/async_resolver.{h,cc} which allows to > break a circular dependency (is has been extracted from > //rtc_base/net_helpers.{h,cc}). > * The creation of //rtc_base/internal/default_socket_server.{h,cc} to > break another circular dependency. > > Bug: webrtc:9987 > Change-Id: I0c8f5e7efe2c8fd8e6bffa0d6dd2dd494cf3df02 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196903 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#32941} Bug: webrtc:9987 Change-Id: I7cdf49d2aac8357f1f50f90010bf2c2f62fa19f6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202021 Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33001}
2021-01-15 10:41:01 +01:00
deps = [
"../rtc_base",
"../rtc_base:threading",
]
}
rtc_library("audio_device") {
visibility = [ "*" ]
sources = [
"objc/native/src/audio/audio_device_ios.h",
"objc/native/src/audio/audio_device_ios.mm",
"objc/native/src/audio/audio_device_module_ios.h",
"objc/native/src/audio/audio_device_module_ios.mm",
"objc/native/src/audio/helpers.h",
"objc/native/src/audio/helpers.mm",
"objc/native/src/audio/voice_processing_audio_unit.h",
"objc/native/src/audio/voice_processing_audio_unit.mm",
]
deps = [
":audio_objc",
":audio_session_observer",
":base_objc",
"../api:array_view",
"../api:sequence_checker",
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
"../modules/audio_device:audio_device_api",
"../modules/audio_device:audio_device_buffer",
"../modules/audio_device:audio_device_generic",
"../rtc_base",
"../rtc_base:buffer",
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:macromagic",
"../rtc_base:refcount",
Reland "Refactor rtc_base build targets." This is a reland of 69241a93fb14f6527a26d5c94dde879013012d2a Fix: The problem was related to NO_MAIN_THREAD_WRAPPING, which affects https://source.chromium.org/chromium/chromium/src/+/master:third_party/webrtc/rtc_base/thread.cc;l=257-263;drc=7acc2d9fe3a6e3c4d8881d2bdfc9b8968a724cd5. The original CL didn't attach the definition of the macro NO_MAIN_THREAD_WRAPPING when building for Chromium (which doesn't have to be related to //rtc_base anymore but to //rtc_base:threading). Original change's description: > Refactor rtc_base build targets. > > The "//rtc_base:rtc_base" build target has historically been one of the > biggest targets in the WebRTC build. Big targets are the main source of > circular dependencies and non-API types leakage. > > This CL is a step forward into splitting "//rtc_base:rtc_base" into > smaller targets (as originally started in 2018). > > The only non-automated changes are (like re-wiring the build system): > * The creation of //rtc_base/async_resolver.{h,cc} which allows to > break a circular dependency (is has been extracted from > //rtc_base/net_helpers.{h,cc}). > * The creation of //rtc_base/internal/default_socket_server.{h,cc} to > break another circular dependency. > > Bug: webrtc:9987 > Change-Id: I0c8f5e7efe2c8fd8e6bffa0d6dd2dd494cf3df02 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196903 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#32941} Bug: webrtc:9987 Change-Id: I7cdf49d2aac8357f1f50f90010bf2c2f62fa19f6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202021 Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33001}
2021-01-15 10:41:01 +01:00
"../rtc_base:threading",
"../rtc_base:timeutils",
"../system_wrappers:field_trial",
"../system_wrappers:metrics",
]
absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
frameworks = [ "AudioToolbox.framework" ]
}
# This target exists to expose :audio_session_objc and
# :audio_session_delegate_adapter_objc for backward compatibility,
# and should be deprecated.
group("audio_objc") {
public_deps = [ # no-presubmit-check TODO(webrtc:11238)
":audio_session_delegate_adapter_objc",
":audio_session_objc",
]
}
rtc_library("audio_session_delegate_adapter_objc") {
sources = [
"objc/components/audio/RTCNativeAudioSessionDelegateAdapter.h",
"objc/components/audio/RTCNativeAudioSessionDelegateAdapter.mm",
]
configs += [
"..:common_objc",
":used_from_extension",
]
public_configs = [ ":common_config_objc" ]
deps = [
":audio_session_objc",
":audio_session_observer",
":base_objc",
]
}
rtc_library("audio_session_objc") {
visibility = [ "*" ]
sources = [
"objc/components/audio/RTCAudioSession+Configuration.mm",
"objc/components/audio/RTCAudioSession+Private.h",
"objc/components/audio/RTCAudioSession.h",
"objc/components/audio/RTCAudioSession.mm",
"objc/components/audio/RTCAudioSessionConfiguration.h",
"objc/components/audio/RTCAudioSessionConfiguration.m",
]
configs += [
"..:common_objc",
":used_from_extension",
]
public_configs = [ ":common_config_objc" ]
frameworks = [ "AVFoundation.framework" ]
deps = [
":base_objc",
":helpers_objc",
"../rtc_base",
"../rtc_base:checks",
"../rtc_base/synchronization:mutex",
]
absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
}
rtc_source_set("network_monitor_observer") {
visibility = [ ":*" ]
sources = [ "objc/native/src/network_monitor_observer.h" ]
Reland "Refactor rtc_base build targets." This is a reland of 69241a93fb14f6527a26d5c94dde879013012d2a Fix: The problem was related to NO_MAIN_THREAD_WRAPPING, which affects https://source.chromium.org/chromium/chromium/src/+/master:third_party/webrtc/rtc_base/thread.cc;l=257-263;drc=7acc2d9fe3a6e3c4d8881d2bdfc9b8968a724cd5. The original CL didn't attach the definition of the macro NO_MAIN_THREAD_WRAPPING when building for Chromium (which doesn't have to be related to //rtc_base anymore but to //rtc_base:threading). Original change's description: > Refactor rtc_base build targets. > > The "//rtc_base:rtc_base" build target has historically been one of the > biggest targets in the WebRTC build. Big targets are the main source of > circular dependencies and non-API types leakage. > > This CL is a step forward into splitting "//rtc_base:rtc_base" into > smaller targets (as originally started in 2018). > > The only non-automated changes are (like re-wiring the build system): > * The creation of //rtc_base/async_resolver.{h,cc} which allows to > break a circular dependency (is has been extracted from > //rtc_base/net_helpers.{h,cc}). > * The creation of //rtc_base/internal/default_socket_server.{h,cc} to > break another circular dependency. > > Bug: webrtc:9987 > Change-Id: I0c8f5e7efe2c8fd8e6bffa0d6dd2dd494cf3df02 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196903 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#32941} Bug: webrtc:9987 Change-Id: I7cdf49d2aac8357f1f50f90010bf2c2f62fa19f6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202021 Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33001}
2021-01-15 10:41:01 +01:00
deps = [
"../rtc_base",
"../rtc_base:network_constants",
"../rtc_base:stringutils",
Reland "Refactor rtc_base build targets." This is a reland of 69241a93fb14f6527a26d5c94dde879013012d2a Fix: The problem was related to NO_MAIN_THREAD_WRAPPING, which affects https://source.chromium.org/chromium/chromium/src/+/master:third_party/webrtc/rtc_base/thread.cc;l=257-263;drc=7acc2d9fe3a6e3c4d8881d2bdfc9b8968a724cd5. The original CL didn't attach the definition of the macro NO_MAIN_THREAD_WRAPPING when building for Chromium (which doesn't have to be related to //rtc_base anymore but to //rtc_base:threading). Original change's description: > Refactor rtc_base build targets. > > The "//rtc_base:rtc_base" build target has historically been one of the > biggest targets in the WebRTC build. Big targets are the main source of > circular dependencies and non-API types leakage. > > This CL is a step forward into splitting "//rtc_base:rtc_base" into > smaller targets (as originally started in 2018). > > The only non-automated changes are (like re-wiring the build system): > * The creation of //rtc_base/async_resolver.{h,cc} which allows to > break a circular dependency (is has been extracted from > //rtc_base/net_helpers.{h,cc}). > * The creation of //rtc_base/internal/default_socket_server.{h,cc} to > break another circular dependency. > > Bug: webrtc:9987 > Change-Id: I0c8f5e7efe2c8fd8e6bffa0d6dd2dd494cf3df02 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196903 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#32941} Bug: webrtc:9987 Change-Id: I7cdf49d2aac8357f1f50f90010bf2c2f62fa19f6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202021 Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33001}
2021-01-15 10:41:01 +01:00
"../rtc_base:threading",
]
absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}
rtc_library("network_monitor_objc") {
visibility = [ "*" ]
sources = [
"objc/components/network/RTCNetworkMonitor+Private.h",
"objc/components/network/RTCNetworkMonitor.h",
"objc/components/network/RTCNetworkMonitor.mm",
]
configs += [ ":used_from_extension" ]
frameworks = [ "Network.framework" ]
deps = [
":base_objc",
":helpers_objc",
":network_monitor_observer",
"../rtc_base:stringutils",
"../rtc_base/system:gcd_helpers",
]
}
}
rtc_source_set("audio_device_api_objc") {
visibility = [ "*" ]
sources = [ "objc/components/audio/RTCAudioDevice.h" ]
public_configs = [ ":common_config_objc" ]
frameworks = [ "AudioToolbox.framework" ]
deps = [ ":base_objc" ]
}
rtc_library("audio_device_objc") {
visibility = [ "*" ]
Reland "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]" This is a reland of commit 2b9aaad58f56744f5c573c3b918fe072566598a5 Original change's description: > ObjC ADM: record/play implementation via RTCAudioDevice [3/3] > > # Overview > This CL chain exposes new API from ObjC WebRTC SDK to inject custom > means to play and record audio. The goal of CLs is achieved by having > additional implementation of `webrtc::AudioDeviceModule` > called `ObjCAudioDeviceModule`. The feature > of `ObjCAudioDeviceModule` is that it does not directly use any > of OS-provided audio APIs like AudioUnit, AVAudioEngine, AudioQueue, > AVCaptureSession etc. Instead it delegates communication with specific > system audio API to user-injectable audio device instance which > implements `RTCAudioDevice` protocol. > `RTCAudioDevice` is new API added to ObC WebRTC SDK in the CL chain. > > # AudioDeviceBuffer > `ObjCAudioDeviceModule` does conform to heavy `AudioDeviceModule` > interface providing stubs for unrelated methods. It also implements > common low-level management of audio device buffer, which glues audio > PCM flow to/from WebRTC. > `ObjCAudioDeviceModule` owns single `webrtc::AudioDeviceBuffer` which > with the help of two `FineAudioBuffer` (one for recording and one for > playout) is exchanged audio PCMs with user-provided `RTCAudioDevice` > instance. > `webrtc::AudioDeviceBuffer` is configured to work with specific audio: > it has to know sample rate and channels count of audio being played and > recorded. These formats could be different between playout and > recording. `ObjCAudioDeviceModule` stores current audio parameters > applied to `webrtc::AudioDeviceBuffer` as fields of > type `webrtc::AudioParameters`. `RTCAudioDevice` has it's own variable > audio parameters like sample rate, channels count and IO buffer > duration. The audio parameters of `RTCAudioDevice` must be kept in sync > with audio parameters applied to `webrtc::AudioDeviceBuffer`, otherwise > audio playout and recording will be corrupted: audio is sent only > partially over the wire and/or audio is played with artifacts. > `ObjCAudioDeviceModule` reads current `RTCAudioDevice` audio parameters > when playout or recording is initialized. Whenever `RTCAudioDevice` > audio parameters parameters are changed, there must be a notification to > `ObjCAudioDeviceModule` to allow it to reconfigure > it's `webrtc::AudioDeviceBuffer`. The notification is performed > via `RTCAudioDeviceDelegate` object, which is provided > by `ObjCAudioDeviceModule` during initialization of `RTCAudioDevice`. > > # Threading > `ObjCAudioDeviceModule` is stick to same thread between initialization > and termination. The only exception is two IO functions invoked by SDK > user code presumably from real-time audio IO thread. > Implementation of `RTCAudioDevice` may rely on the fact that all the > methods of `RTCAudioDevice` are called on the same thread between > initialization and termination. `ObjCAudioDeviceModule` is also expect > that the implementation of `RTCAudioDevice` will call methods related > to notification of audio parameters changes and audio interruption are > invoked on `ObjCAudioDeviceModule` thread. To facilitate this > requirement `RTCAudioDeviceDelegate` provides two functions to execute > sync and async block on `ObjCAudioDeviceModule` thread. > Async block could be useful when handling audio session notifications to > dispatch whole block re-configuring audio objects used > by `RTCAudioDevice` implementation. > Sync block could be used to make sure changes to audio parameters > of ADB owned by `ObjCAudioDeviceModule` are notified, before interrupted > playout/recording restarted. > > Bug: webrtc:14193 > Change-Id: I5587ec6bbee3cf02bad70dd59b822feb0ada7f86 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269006 > Reviewed-by: Henrik Andreasson <henrika@google.com> > Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com> > Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org> > Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#37928} Bug: webrtc:14193 Change-Id: Iaf950d24bb2394a20e50421d5122f72ce46ae840 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273380 Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37946}
2022-08-29 21:00:31 +02:00
allow_poison = [ "default_task_queue" ]
sources = [
"objc/native/src/objc_audio_device.h",
"objc/native/src/objc_audio_device.mm",
Reland "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]" This is a reland of commit 2b9aaad58f56744f5c573c3b918fe072566598a5 Original change's description: > ObjC ADM: record/play implementation via RTCAudioDevice [3/3] > > # Overview > This CL chain exposes new API from ObjC WebRTC SDK to inject custom > means to play and record audio. The goal of CLs is achieved by having > additional implementation of `webrtc::AudioDeviceModule` > called `ObjCAudioDeviceModule`. The feature > of `ObjCAudioDeviceModule` is that it does not directly use any > of OS-provided audio APIs like AudioUnit, AVAudioEngine, AudioQueue, > AVCaptureSession etc. Instead it delegates communication with specific > system audio API to user-injectable audio device instance which > implements `RTCAudioDevice` protocol. > `RTCAudioDevice` is new API added to ObC WebRTC SDK in the CL chain. > > # AudioDeviceBuffer > `ObjCAudioDeviceModule` does conform to heavy `AudioDeviceModule` > interface providing stubs for unrelated methods. It also implements > common low-level management of audio device buffer, which glues audio > PCM flow to/from WebRTC. > `ObjCAudioDeviceModule` owns single `webrtc::AudioDeviceBuffer` which > with the help of two `FineAudioBuffer` (one for recording and one for > playout) is exchanged audio PCMs with user-provided `RTCAudioDevice` > instance. > `webrtc::AudioDeviceBuffer` is configured to work with specific audio: > it has to know sample rate and channels count of audio being played and > recorded. These formats could be different between playout and > recording. `ObjCAudioDeviceModule` stores current audio parameters > applied to `webrtc::AudioDeviceBuffer` as fields of > type `webrtc::AudioParameters`. `RTCAudioDevice` has it's own variable > audio parameters like sample rate, channels count and IO buffer > duration. The audio parameters of `RTCAudioDevice` must be kept in sync > with audio parameters applied to `webrtc::AudioDeviceBuffer`, otherwise > audio playout and recording will be corrupted: audio is sent only > partially over the wire and/or audio is played with artifacts. > `ObjCAudioDeviceModule` reads current `RTCAudioDevice` audio parameters > when playout or recording is initialized. Whenever `RTCAudioDevice` > audio parameters parameters are changed, there must be a notification to > `ObjCAudioDeviceModule` to allow it to reconfigure > it's `webrtc::AudioDeviceBuffer`. The notification is performed > via `RTCAudioDeviceDelegate` object, which is provided > by `ObjCAudioDeviceModule` during initialization of `RTCAudioDevice`. > > # Threading > `ObjCAudioDeviceModule` is stick to same thread between initialization > and termination. The only exception is two IO functions invoked by SDK > user code presumably from real-time audio IO thread. > Implementation of `RTCAudioDevice` may rely on the fact that all the > methods of `RTCAudioDevice` are called on the same thread between > initialization and termination. `ObjCAudioDeviceModule` is also expect > that the implementation of `RTCAudioDevice` will call methods related > to notification of audio parameters changes and audio interruption are > invoked on `ObjCAudioDeviceModule` thread. To facilitate this > requirement `RTCAudioDeviceDelegate` provides two functions to execute > sync and async block on `ObjCAudioDeviceModule` thread. > Async block could be useful when handling audio session notifications to > dispatch whole block re-configuring audio objects used > by `RTCAudioDevice` implementation. > Sync block could be used to make sure changes to audio parameters > of ADB owned by `ObjCAudioDeviceModule` are notified, before interrupted > playout/recording restarted. > > Bug: webrtc:14193 > Change-Id: I5587ec6bbee3cf02bad70dd59b822feb0ada7f86 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269006 > Reviewed-by: Henrik Andreasson <henrika@google.com> > Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com> > Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org> > Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#37928} Bug: webrtc:14193 Change-Id: Iaf950d24bb2394a20e50421d5122f72ce46ae840 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273380 Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37946}
2022-08-29 21:00:31 +02:00
"objc/native/src/objc_audio_device_delegate.h",
"objc/native/src/objc_audio_device_delegate.mm",
]
deps = [
":audio_device_api_objc",
Reland "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]" This is a reland of commit 2b9aaad58f56744f5c573c3b918fe072566598a5 Original change's description: > ObjC ADM: record/play implementation via RTCAudioDevice [3/3] > > # Overview > This CL chain exposes new API from ObjC WebRTC SDK to inject custom > means to play and record audio. The goal of CLs is achieved by having > additional implementation of `webrtc::AudioDeviceModule` > called `ObjCAudioDeviceModule`. The feature > of `ObjCAudioDeviceModule` is that it does not directly use any > of OS-provided audio APIs like AudioUnit, AVAudioEngine, AudioQueue, > AVCaptureSession etc. Instead it delegates communication with specific > system audio API to user-injectable audio device instance which > implements `RTCAudioDevice` protocol. > `RTCAudioDevice` is new API added to ObC WebRTC SDK in the CL chain. > > # AudioDeviceBuffer > `ObjCAudioDeviceModule` does conform to heavy `AudioDeviceModule` > interface providing stubs for unrelated methods. It also implements > common low-level management of audio device buffer, which glues audio > PCM flow to/from WebRTC. > `ObjCAudioDeviceModule` owns single `webrtc::AudioDeviceBuffer` which > with the help of two `FineAudioBuffer` (one for recording and one for > playout) is exchanged audio PCMs with user-provided `RTCAudioDevice` > instance. > `webrtc::AudioDeviceBuffer` is configured to work with specific audio: > it has to know sample rate and channels count of audio being played and > recorded. These formats could be different between playout and > recording. `ObjCAudioDeviceModule` stores current audio parameters > applied to `webrtc::AudioDeviceBuffer` as fields of > type `webrtc::AudioParameters`. `RTCAudioDevice` has it's own variable > audio parameters like sample rate, channels count and IO buffer > duration. The audio parameters of `RTCAudioDevice` must be kept in sync > with audio parameters applied to `webrtc::AudioDeviceBuffer`, otherwise > audio playout and recording will be corrupted: audio is sent only > partially over the wire and/or audio is played with artifacts. > `ObjCAudioDeviceModule` reads current `RTCAudioDevice` audio parameters > when playout or recording is initialized. Whenever `RTCAudioDevice` > audio parameters parameters are changed, there must be a notification to > `ObjCAudioDeviceModule` to allow it to reconfigure > it's `webrtc::AudioDeviceBuffer`. The notification is performed > via `RTCAudioDeviceDelegate` object, which is provided > by `ObjCAudioDeviceModule` during initialization of `RTCAudioDevice`. > > # Threading > `ObjCAudioDeviceModule` is stick to same thread between initialization > and termination. The only exception is two IO functions invoked by SDK > user code presumably from real-time audio IO thread. > Implementation of `RTCAudioDevice` may rely on the fact that all the > methods of `RTCAudioDevice` are called on the same thread between > initialization and termination. `ObjCAudioDeviceModule` is also expect > that the implementation of `RTCAudioDevice` will call methods related > to notification of audio parameters changes and audio interruption are > invoked on `ObjCAudioDeviceModule` thread. To facilitate this > requirement `RTCAudioDeviceDelegate` provides two functions to execute > sync and async block on `ObjCAudioDeviceModule` thread. > Async block could be useful when handling audio session notifications to > dispatch whole block re-configuring audio objects used > by `RTCAudioDevice` implementation. > Sync block could be used to make sure changes to audio parameters > of ADB owned by `ObjCAudioDeviceModule` are notified, before interrupted > playout/recording restarted. > > Bug: webrtc:14193 > Change-Id: I5587ec6bbee3cf02bad70dd59b822feb0ada7f86 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269006 > Reviewed-by: Henrik Andreasson <henrika@google.com> > Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com> > Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org> > Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#37928} Bug: webrtc:14193 Change-Id: Iaf950d24bb2394a20e50421d5122f72ce46ae840 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273380 Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37946}
2022-08-29 21:00:31 +02:00
"../api:array_view",
"../api:make_ref_counted",
"../api:refcountedbase",
"../api:scoped_refptr",
"../api:sequence_checker",
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
"../modules/audio_device:audio_device_api",
Reland "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]" This is a reland of commit 2b9aaad58f56744f5c573c3b918fe072566598a5 Original change's description: > ObjC ADM: record/play implementation via RTCAudioDevice [3/3] > > # Overview > This CL chain exposes new API from ObjC WebRTC SDK to inject custom > means to play and record audio. The goal of CLs is achieved by having > additional implementation of `webrtc::AudioDeviceModule` > called `ObjCAudioDeviceModule`. The feature > of `ObjCAudioDeviceModule` is that it does not directly use any > of OS-provided audio APIs like AudioUnit, AVAudioEngine, AudioQueue, > AVCaptureSession etc. Instead it delegates communication with specific > system audio API to user-injectable audio device instance which > implements `RTCAudioDevice` protocol. > `RTCAudioDevice` is new API added to ObC WebRTC SDK in the CL chain. > > # AudioDeviceBuffer > `ObjCAudioDeviceModule` does conform to heavy `AudioDeviceModule` > interface providing stubs for unrelated methods. It also implements > common low-level management of audio device buffer, which glues audio > PCM flow to/from WebRTC. > `ObjCAudioDeviceModule` owns single `webrtc::AudioDeviceBuffer` which > with the help of two `FineAudioBuffer` (one for recording and one for > playout) is exchanged audio PCMs with user-provided `RTCAudioDevice` > instance. > `webrtc::AudioDeviceBuffer` is configured to work with specific audio: > it has to know sample rate and channels count of audio being played and > recorded. These formats could be different between playout and > recording. `ObjCAudioDeviceModule` stores current audio parameters > applied to `webrtc::AudioDeviceBuffer` as fields of > type `webrtc::AudioParameters`. `RTCAudioDevice` has it's own variable > audio parameters like sample rate, channels count and IO buffer > duration. The audio parameters of `RTCAudioDevice` must be kept in sync > with audio parameters applied to `webrtc::AudioDeviceBuffer`, otherwise > audio playout and recording will be corrupted: audio is sent only > partially over the wire and/or audio is played with artifacts. > `ObjCAudioDeviceModule` reads current `RTCAudioDevice` audio parameters > when playout or recording is initialized. Whenever `RTCAudioDevice` > audio parameters parameters are changed, there must be a notification to > `ObjCAudioDeviceModule` to allow it to reconfigure > it's `webrtc::AudioDeviceBuffer`. The notification is performed > via `RTCAudioDeviceDelegate` object, which is provided > by `ObjCAudioDeviceModule` during initialization of `RTCAudioDevice`. > > # Threading > `ObjCAudioDeviceModule` is stick to same thread between initialization > and termination. The only exception is two IO functions invoked by SDK > user code presumably from real-time audio IO thread. > Implementation of `RTCAudioDevice` may rely on the fact that all the > methods of `RTCAudioDevice` are called on the same thread between > initialization and termination. `ObjCAudioDeviceModule` is also expect > that the implementation of `RTCAudioDevice` will call methods related > to notification of audio parameters changes and audio interruption are > invoked on `ObjCAudioDeviceModule` thread. To facilitate this > requirement `RTCAudioDeviceDelegate` provides two functions to execute > sync and async block on `ObjCAudioDeviceModule` thread. > Async block could be useful when handling audio session notifications to > dispatch whole block re-configuring audio objects used > by `RTCAudioDevice` implementation. > Sync block could be used to make sure changes to audio parameters > of ADB owned by `ObjCAudioDeviceModule` are notified, before interrupted > playout/recording restarted. > > Bug: webrtc:14193 > Change-Id: I5587ec6bbee3cf02bad70dd59b822feb0ada7f86 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269006 > Reviewed-by: Henrik Andreasson <henrika@google.com> > Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com> > Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org> > Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#37928} Bug: webrtc:14193 Change-Id: Iaf950d24bb2394a20e50421d5122f72ce46ae840 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273380 Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37946}
2022-08-29 21:00:31 +02:00
"../modules/audio_device:audio_device_buffer",
"../rtc_base:buffer",
"../rtc_base:checks",
"../rtc_base:logging",
Reland "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]" This is a reland of commit 2b9aaad58f56744f5c573c3b918fe072566598a5 Original change's description: > ObjC ADM: record/play implementation via RTCAudioDevice [3/3] > > # Overview > This CL chain exposes new API from ObjC WebRTC SDK to inject custom > means to play and record audio. The goal of CLs is achieved by having > additional implementation of `webrtc::AudioDeviceModule` > called `ObjCAudioDeviceModule`. The feature > of `ObjCAudioDeviceModule` is that it does not directly use any > of OS-provided audio APIs like AudioUnit, AVAudioEngine, AudioQueue, > AVCaptureSession etc. Instead it delegates communication with specific > system audio API to user-injectable audio device instance which > implements `RTCAudioDevice` protocol. > `RTCAudioDevice` is new API added to ObC WebRTC SDK in the CL chain. > > # AudioDeviceBuffer > `ObjCAudioDeviceModule` does conform to heavy `AudioDeviceModule` > interface providing stubs for unrelated methods. It also implements > common low-level management of audio device buffer, which glues audio > PCM flow to/from WebRTC. > `ObjCAudioDeviceModule` owns single `webrtc::AudioDeviceBuffer` which > with the help of two `FineAudioBuffer` (one for recording and one for > playout) is exchanged audio PCMs with user-provided `RTCAudioDevice` > instance. > `webrtc::AudioDeviceBuffer` is configured to work with specific audio: > it has to know sample rate and channels count of audio being played and > recorded. These formats could be different between playout and > recording. `ObjCAudioDeviceModule` stores current audio parameters > applied to `webrtc::AudioDeviceBuffer` as fields of > type `webrtc::AudioParameters`. `RTCAudioDevice` has it's own variable > audio parameters like sample rate, channels count and IO buffer > duration. The audio parameters of `RTCAudioDevice` must be kept in sync > with audio parameters applied to `webrtc::AudioDeviceBuffer`, otherwise > audio playout and recording will be corrupted: audio is sent only > partially over the wire and/or audio is played with artifacts. > `ObjCAudioDeviceModule` reads current `RTCAudioDevice` audio parameters > when playout or recording is initialized. Whenever `RTCAudioDevice` > audio parameters parameters are changed, there must be a notification to > `ObjCAudioDeviceModule` to allow it to reconfigure > it's `webrtc::AudioDeviceBuffer`. The notification is performed > via `RTCAudioDeviceDelegate` object, which is provided > by `ObjCAudioDeviceModule` during initialization of `RTCAudioDevice`. > > # Threading > `ObjCAudioDeviceModule` is stick to same thread between initialization > and termination. The only exception is two IO functions invoked by SDK > user code presumably from real-time audio IO thread. > Implementation of `RTCAudioDevice` may rely on the fact that all the > methods of `RTCAudioDevice` are called on the same thread between > initialization and termination. `ObjCAudioDeviceModule` is also expect > that the implementation of `RTCAudioDevice` will call methods related > to notification of audio parameters changes and audio interruption are > invoked on `ObjCAudioDeviceModule` thread. To facilitate this > requirement `RTCAudioDeviceDelegate` provides two functions to execute > sync and async block on `ObjCAudioDeviceModule` thread. > Async block could be useful when handling audio session notifications to > dispatch whole block re-configuring audio objects used > by `RTCAudioDevice` implementation. > Sync block could be used to make sure changes to audio parameters > of ADB owned by `ObjCAudioDeviceModule` are notified, before interrupted > playout/recording restarted. > > Bug: webrtc:14193 > Change-Id: I5587ec6bbee3cf02bad70dd59b822feb0ada7f86 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269006 > Reviewed-by: Henrik Andreasson <henrika@google.com> > Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com> > Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org> > Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#37928} Bug: webrtc:14193 Change-Id: Iaf950d24bb2394a20e50421d5122f72ce46ae840 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273380 Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37946}
2022-08-29 21:00:31 +02:00
"../rtc_base:safe_minmax",
"../rtc_base:threading",
"../rtc_base:timeutils",
]
}
rtc_library("objc_audio_device_module") {
visibility = [ "*" ]
Reland "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]" This is a reland of commit 2b9aaad58f56744f5c573c3b918fe072566598a5 Original change's description: > ObjC ADM: record/play implementation via RTCAudioDevice [3/3] > > # Overview > This CL chain exposes new API from ObjC WebRTC SDK to inject custom > means to play and record audio. The goal of CLs is achieved by having > additional implementation of `webrtc::AudioDeviceModule` > called `ObjCAudioDeviceModule`. The feature > of `ObjCAudioDeviceModule` is that it does not directly use any > of OS-provided audio APIs like AudioUnit, AVAudioEngine, AudioQueue, > AVCaptureSession etc. Instead it delegates communication with specific > system audio API to user-injectable audio device instance which > implements `RTCAudioDevice` protocol. > `RTCAudioDevice` is new API added to ObC WebRTC SDK in the CL chain. > > # AudioDeviceBuffer > `ObjCAudioDeviceModule` does conform to heavy `AudioDeviceModule` > interface providing stubs for unrelated methods. It also implements > common low-level management of audio device buffer, which glues audio > PCM flow to/from WebRTC. > `ObjCAudioDeviceModule` owns single `webrtc::AudioDeviceBuffer` which > with the help of two `FineAudioBuffer` (one for recording and one for > playout) is exchanged audio PCMs with user-provided `RTCAudioDevice` > instance. > `webrtc::AudioDeviceBuffer` is configured to work with specific audio: > it has to know sample rate and channels count of audio being played and > recorded. These formats could be different between playout and > recording. `ObjCAudioDeviceModule` stores current audio parameters > applied to `webrtc::AudioDeviceBuffer` as fields of > type `webrtc::AudioParameters`. `RTCAudioDevice` has it's own variable > audio parameters like sample rate, channels count and IO buffer > duration. The audio parameters of `RTCAudioDevice` must be kept in sync > with audio parameters applied to `webrtc::AudioDeviceBuffer`, otherwise > audio playout and recording will be corrupted: audio is sent only > partially over the wire and/or audio is played with artifacts. > `ObjCAudioDeviceModule` reads current `RTCAudioDevice` audio parameters > when playout or recording is initialized. Whenever `RTCAudioDevice` > audio parameters parameters are changed, there must be a notification to > `ObjCAudioDeviceModule` to allow it to reconfigure > it's `webrtc::AudioDeviceBuffer`. The notification is performed > via `RTCAudioDeviceDelegate` object, which is provided > by `ObjCAudioDeviceModule` during initialization of `RTCAudioDevice`. > > # Threading > `ObjCAudioDeviceModule` is stick to same thread between initialization > and termination. The only exception is two IO functions invoked by SDK > user code presumably from real-time audio IO thread. > Implementation of `RTCAudioDevice` may rely on the fact that all the > methods of `RTCAudioDevice` are called on the same thread between > initialization and termination. `ObjCAudioDeviceModule` is also expect > that the implementation of `RTCAudioDevice` will call methods related > to notification of audio parameters changes and audio interruption are > invoked on `ObjCAudioDeviceModule` thread. To facilitate this > requirement `RTCAudioDeviceDelegate` provides two functions to execute > sync and async block on `ObjCAudioDeviceModule` thread. > Async block could be useful when handling audio session notifications to > dispatch whole block re-configuring audio objects used > by `RTCAudioDevice` implementation. > Sync block could be used to make sure changes to audio parameters > of ADB owned by `ObjCAudioDeviceModule` are notified, before interrupted > playout/recording restarted. > > Bug: webrtc:14193 > Change-Id: I5587ec6bbee3cf02bad70dd59b822feb0ada7f86 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269006 > Reviewed-by: Henrik Andreasson <henrika@google.com> > Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com> > Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org> > Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#37928} Bug: webrtc:14193 Change-Id: Iaf950d24bb2394a20e50421d5122f72ce46ae840 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273380 Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37946}
2022-08-29 21:00:31 +02:00
allow_poison = [ "default_task_queue" ]
sources = [
"objc/native/api/objc_audio_device_module.h",
"objc/native/api/objc_audio_device_module.mm",
]
deps = [
":audio_device_api_objc",
":audio_device_objc",
"../api:make_ref_counted",
"../modules/audio_device:audio_device_api",
"../rtc_base:logging",
]
}
rtc_library("videosource_objc") {
sources = [
"objc/api/peerconnection/RTCVideoSource+Private.h",
"objc/api/peerconnection/RTCVideoSource.h",
"objc/api/peerconnection/RTCVideoSource.mm",
]
deps = [
":base_objc",
":mediasource_objc",
":native_video",
":videoframebuffer_objc",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api/video:video_frame",
"../api/video:video_rtp_headers",
"../common_video",
"../media:rtc_media_base",
"../pc:video_track_source_proxy",
"../rtc_base",
"../rtc_base:checks",
Reland "Refactor rtc_base build targets." This is a reland of 69241a93fb14f6527a26d5c94dde879013012d2a Fix: The problem was related to NO_MAIN_THREAD_WRAPPING, which affects https://source.chromium.org/chromium/chromium/src/+/master:third_party/webrtc/rtc_base/thread.cc;l=257-263;drc=7acc2d9fe3a6e3c4d8881d2bdfc9b8968a724cd5. The original CL didn't attach the definition of the macro NO_MAIN_THREAD_WRAPPING when building for Chromium (which doesn't have to be related to //rtc_base anymore but to //rtc_base:threading). Original change's description: > Refactor rtc_base build targets. > > The "//rtc_base:rtc_base" build target has historically been one of the > biggest targets in the WebRTC build. Big targets are the main source of > circular dependencies and non-API types leakage. > > This CL is a step forward into splitting "//rtc_base:rtc_base" into > smaller targets (as originally started in 2018). > > The only non-automated changes are (like re-wiring the build system): > * The creation of //rtc_base/async_resolver.{h,cc} which allows to > break a circular dependency (is has been extracted from > //rtc_base/net_helpers.{h,cc}). > * The creation of //rtc_base/internal/default_socket_server.{h,cc} to > break another circular dependency. > > Bug: webrtc:9987 > Change-Id: I0c8f5e7efe2c8fd8e6bffa0d6dd2dd494cf3df02 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196903 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#32941} Bug: webrtc:9987 Change-Id: I7cdf49d2aac8357f1f50f90010bf2c2f62fa19f6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202021 Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33001}
2021-01-15 10:41:01 +01:00
"../rtc_base:threading",
"//third_party/libyuv",
]
configs += [
"..:common_objc",
":used_from_extension",
]
}
rtc_library("videoframebuffer_objc") {
visibility = [ "*" ]
sources = [
"objc/api/video_frame_buffer/RTCNativeI420Buffer+Private.h",
"objc/api/video_frame_buffer/RTCNativeI420Buffer.h",
"objc/api/video_frame_buffer/RTCNativeI420Buffer.mm",
"objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.h",
"objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.mm",
"objc/components/video_frame_buffer/RTCCVPixelBuffer.h",
"objc/components/video_frame_buffer/RTCCVPixelBuffer.mm",
]
deps = [
":base_objc",
"../rtc_base:logging",
"//api/video:video_frame",
"//api/video:video_rtp_headers",
"//common_video",
"//rtc_base:checks",
"//third_party/libyuv",
]
configs += [
"..:common_objc",
":used_from_extension",
]
frameworks = [
"VideoToolbox.framework",
"CoreGraphics.framework",
"CoreVideo.framework",
]
}
rtc_library("opengl_objc") {
Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2911053002/ ) Reason for revert: Take three of relanding this after all internal issues have been resolved. Original issue's description: > Revert of Split iOS sdk in to separate targets (patchset #3 id:320001 of https://codereview.webrtc.org/2893843003/ ) > > Reason for revert: > Breaks downstream project. > > Original issue's description: > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2893593002/ ) > > > > Reason for revert: > > Take two of fixing downstream issues? > > > > Original issue's description: > > > Revert of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890733003/ ) > > > > > > Reason for revert: > > > Still problems with downstream projects > > > > > > Original issue's description: > > > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890513002/ ) > > > > > > > > Reason for revert: > > > > Fixing downstream breakages > > > > > > > > Original issue's description: > > > > > Revert of Split iOS sdk in to separate targets (patchset #13 id:280001 of https://codereview.webrtc.org/2862543002/ ) > > > > > > > > > > Reason for revert: > > > > > Breaking downstream projects. > > > > > > > > > > Original issue's description: > > > > > > 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} > > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/52c83fe7102f566cf35a7533092873d58b38f426 > > > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,kthelgason@webrtc.org > > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > > NOPRESUBMIT=true > > > > > NOTREECHECKS=true > > > > > NOTRY=true > > > > > BUG=webrtc:4867 > > > > > > > > > > Review-Url: https://codereview.webrtc.org/2890513002 > > > > > Cr-Commit-Position: refs/heads/master@{#18170} > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/9756238084707787f735e1294e896e462e459717 > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > NOPRESUBMIT=true > > > > NOTREECHECKS=true > > > > NOTRY=true > > > > BUG=webrtc:4867 > > > > > > > > Review-Url: https://codereview.webrtc.org/2890733003 > > > > Cr-Commit-Position: refs/heads/master@{#18174} > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/d51e042492bedd057bc0cac7828979d5c7369cea > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > NOPRESUBMIT=true > > > NOTREECHECKS=true > > > NOTRY=true > > > BUG=webrtc:4867 > > > > > > Review-Url: https://codereview.webrtc.org/2893593002 > > > Cr-Commit-Position: refs/heads/master@{#18182} > > > Committed: https://chromium.googlesource.com/external/webrtc/+/37144b214e2baf62ecb262ab878dde8c59cdd6a3 > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=webrtc:4867 > > > > Review-Url: https://codereview.webrtc.org/2893843003 > > Cr-Commit-Position: refs/heads/master@{#18303} > > Committed: https://chromium.googlesource.com/external/webrtc/+/580c3522d294c877adfe555048c675bd8d166657 > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,kthelgason@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:4867 > > Review-Url: https://codereview.webrtc.org/2911053002 > Cr-Commit-Position: refs/heads/master@{#18309} > Committed: https://chromium.googlesource.com/external/webrtc/+/af5c05540cc8208f682cafe88c5c16a505479196 TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,mbonadei@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:4867 Review-Url: https://codereview.webrtc.org/2913753003 Cr-Commit-Position: refs/heads/master@{#18319}
2017-05-30 01:48:47 -07:00
sources = [
"objc/components/renderer/opengl/RTCDefaultShader.h",
"objc/components/renderer/opengl/RTCDefaultShader.mm",
"objc/components/renderer/opengl/RTCI420TextureCache.h",
"objc/components/renderer/opengl/RTCI420TextureCache.mm",
"objc/components/renderer/opengl/RTCOpenGLDefines.h",
"objc/components/renderer/opengl/RTCShader.h",
"objc/components/renderer/opengl/RTCShader.mm",
"objc/components/renderer/opengl/RTCVideoViewShading.h",
]
frameworks = [ "CoreVideo.framework" ]
if (is_ios) {
sources += [
"objc/components/renderer/opengl/RTCNV12TextureCache.h",
"objc/components/renderer/opengl/RTCNV12TextureCache.m",
]
frameworks += [
"GLKit.framework",
"OpenGLES.framework",
"QuartzCore.framework",
]
} else if (is_mac) {
frameworks += [
"CoreMedia.framework",
"OpenGL.framework",
Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2911053002/ ) Reason for revert: Take three of relanding this after all internal issues have been resolved. Original issue's description: > Revert of Split iOS sdk in to separate targets (patchset #3 id:320001 of https://codereview.webrtc.org/2893843003/ ) > > Reason for revert: > Breaks downstream project. > > Original issue's description: > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2893593002/ ) > > > > Reason for revert: > > Take two of fixing downstream issues? > > > > Original issue's description: > > > Revert of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890733003/ ) > > > > > > Reason for revert: > > > Still problems with downstream projects > > > > > > Original issue's description: > > > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890513002/ ) > > > > > > > > Reason for revert: > > > > Fixing downstream breakages > > > > > > > > Original issue's description: > > > > > Revert of Split iOS sdk in to separate targets (patchset #13 id:280001 of https://codereview.webrtc.org/2862543002/ ) > > > > > > > > > > Reason for revert: > > > > > Breaking downstream projects. > > > > > > > > > > Original issue's description: > > > > > > 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} > > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/52c83fe7102f566cf35a7533092873d58b38f426 > > > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,kthelgason@webrtc.org > > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > > NOPRESUBMIT=true > > > > > NOTREECHECKS=true > > > > > NOTRY=true > > > > > BUG=webrtc:4867 > > > > > > > > > > Review-Url: https://codereview.webrtc.org/2890513002 > > > > > Cr-Commit-Position: refs/heads/master@{#18170} > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/9756238084707787f735e1294e896e462e459717 > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > NOPRESUBMIT=true > > > > NOTREECHECKS=true > > > > NOTRY=true > > > > BUG=webrtc:4867 > > > > > > > > Review-Url: https://codereview.webrtc.org/2890733003 > > > > Cr-Commit-Position: refs/heads/master@{#18174} > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/d51e042492bedd057bc0cac7828979d5c7369cea > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > NOPRESUBMIT=true > > > NOTREECHECKS=true > > > NOTRY=true > > > BUG=webrtc:4867 > > > > > > Review-Url: https://codereview.webrtc.org/2893593002 > > > Cr-Commit-Position: refs/heads/master@{#18182} > > > Committed: https://chromium.googlesource.com/external/webrtc/+/37144b214e2baf62ecb262ab878dde8c59cdd6a3 > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=webrtc:4867 > > > > Review-Url: https://codereview.webrtc.org/2893843003 > > Cr-Commit-Position: refs/heads/master@{#18303} > > Committed: https://chromium.googlesource.com/external/webrtc/+/580c3522d294c877adfe555048c675bd8d166657 > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,kthelgason@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:4867 > > Review-Url: https://codereview.webrtc.org/2911053002 > Cr-Commit-Position: refs/heads/master@{#18309} > Committed: https://chromium.googlesource.com/external/webrtc/+/af5c05540cc8208f682cafe88c5c16a505479196 TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,mbonadei@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:4867 Review-Url: https://codereview.webrtc.org/2913753003 Cr-Commit-Position: refs/heads/master@{#18319}
2017-05-30 01:48:47 -07:00
]
}
# TODO(bugs.webrtc.org/12937): Remove OpenGL deprecation warning
# workaround.
defines = [ "GLES_SILENCE_DEPRECATION" ]
Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2911053002/ ) Reason for revert: Take three of relanding this after all internal issues have been resolved. Original issue's description: > Revert of Split iOS sdk in to separate targets (patchset #3 id:320001 of https://codereview.webrtc.org/2893843003/ ) > > Reason for revert: > Breaks downstream project. > > Original issue's description: > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2893593002/ ) > > > > Reason for revert: > > Take two of fixing downstream issues? > > > > Original issue's description: > > > Revert of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890733003/ ) > > > > > > Reason for revert: > > > Still problems with downstream projects > > > > > > Original issue's description: > > > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890513002/ ) > > > > > > > > Reason for revert: > > > > Fixing downstream breakages > > > > > > > > Original issue's description: > > > > > Revert of Split iOS sdk in to separate targets (patchset #13 id:280001 of https://codereview.webrtc.org/2862543002/ ) > > > > > > > > > > Reason for revert: > > > > > Breaking downstream projects. > > > > > > > > > > Original issue's description: > > > > > > 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} > > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/52c83fe7102f566cf35a7533092873d58b38f426 > > > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,kthelgason@webrtc.org > > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > > NOPRESUBMIT=true > > > > > NOTREECHECKS=true > > > > > NOTRY=true > > > > > BUG=webrtc:4867 > > > > > > > > > > Review-Url: https://codereview.webrtc.org/2890513002 > > > > > Cr-Commit-Position: refs/heads/master@{#18170} > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/9756238084707787f735e1294e896e462e459717 > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > NOPRESUBMIT=true > > > > NOTREECHECKS=true > > > > NOTRY=true > > > > BUG=webrtc:4867 > > > > > > > > Review-Url: https://codereview.webrtc.org/2890733003 > > > > Cr-Commit-Position: refs/heads/master@{#18174} > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/d51e042492bedd057bc0cac7828979d5c7369cea > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > NOPRESUBMIT=true > > > NOTREECHECKS=true > > > NOTRY=true > > > BUG=webrtc:4867 > > > > > > Review-Url: https://codereview.webrtc.org/2893593002 > > > Cr-Commit-Position: refs/heads/master@{#18182} > > > Committed: https://chromium.googlesource.com/external/webrtc/+/37144b214e2baf62ecb262ab878dde8c59cdd6a3 > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=webrtc:4867 > > > > Review-Url: https://codereview.webrtc.org/2893843003 > > Cr-Commit-Position: refs/heads/master@{#18303} > > Committed: https://chromium.googlesource.com/external/webrtc/+/580c3522d294c877adfe555048c675bd8d166657 > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,kthelgason@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:4867 > > Review-Url: https://codereview.webrtc.org/2911053002 > Cr-Commit-Position: refs/heads/master@{#18309} > Committed: https://chromium.googlesource.com/external/webrtc/+/af5c05540cc8208f682cafe88c5c16a505479196 TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,mbonadei@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:4867 Review-Url: https://codereview.webrtc.org/2913753003 Cr-Commit-Position: refs/heads/master@{#18319}
2017-05-30 01:48:47 -07:00
deps = [
":base_objc",
":helpers_objc",
":mediaconstraints_objc",
":native_video",
":videoframebuffer_objc",
":videosource_objc",
"../api:libjingle_peerconnection_api",
"../api/video:video_frame",
"../api/video:video_rtp_headers",
"../common_video",
"../media:rtc_media_base",
"../rtc_base",
"../rtc_base:checks",
"../rtc_base:logging",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
configs += [
"..:common_objc",
":used_from_extension",
]
}
rtc_library("opengl_ui_objc") {
Revert "Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*""" This reverts commit c73e1f437889d882cbf2987f7fb3a029a6150613. Reason for revert: The problem with failed deps in chrome content/renderer had already been fixed in https://webrtc-review.googlesource.com/c/src/+/38660 Original change's description: > Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*"" > > This reverts commit 588c548657b3ddf76e7b3f241263eef7f5799f16. > > Reason for revert: > > Breaks Chrome FYI: > > /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check > -> returned 1 > ERROR at //build/split_static_library.gni:12:5: Dependency not allowed. > static_library(target_name) { > ^---------------------------- > The item //content/renderer:renderer > can not depend on //third_party/webrtc/media:rtc_internal_video_codecs > because it is not in //third_party/webrtc/media:rtc_internal_video_codecs's visibility list: [ > //third_party/webrtc/* > //third_party/webrtc_overrides/* > ] > > https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2FLinux_Builder%2F23560%2F%2B%2Frecipes%2Fsteps%2Fgenerate_build_files%2F0%2Fstdout > > Original change's description: > > GN rtc_* templates: Set default visibility to webrtc_root + "/*" > > > > This means that by default, targets are visible to everything under > > the WebRTC root, but not visible to anything else. > > > > API targets are manually tagged with visibility "*", so that targets > > outside the WebRTC tree can see them. > > > > BUG=webrtc:8254 > > > > Change-Id: Icdbee6e0d22d93240ff2fb530c8f9dc48e351509 > > Reviewed-on: https://webrtc-review.googlesource.com/24140 > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > Commit-Queue: Karl Wiberg <kwiberg@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#21548} > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org > > Change-Id: I06620ce3d6f67482935c22efa231dd6cab91625a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:8254 > Reviewed-on: https://webrtc-review.googlesource.com/38760 > Reviewed-by: Per Kjellander <perkj@webrtc.org> > Commit-Queue: Per Kjellander <perkj@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#21555} TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org Change-Id: I6f720078ce21bd172e0a6471bae8c4c011e4a657 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:8254 Reviewed-on: https://webrtc-review.googlesource.com/38860 Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21558}
2018-01-10 15:54:53 +00:00
visibility = [ "*" ]
allow_poison = [
"audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
"default_task_queue",
]
if (is_ios) {
sources = [
"objc/components/renderer/opengl/RTCDisplayLinkTimer.h",
"objc/components/renderer/opengl/RTCDisplayLinkTimer.m",
"objc/components/renderer/opengl/RTCEAGLVideoView.h",
"objc/components/renderer/opengl/RTCEAGLVideoView.m",
]
# TODO(bugs.webrtc.org/12937): Remove OpenGL deprecation warning
# workaround.
defines = [ "GLES_SILENCE_DEPRECATION" ]
}
if (is_mac) {
sources = [
"objc/components/renderer/opengl/RTCNSGLVideoView.h",
"objc/components/renderer/opengl/RTCNSGLVideoView.m",
]
}
configs += [ "..:common_objc" ]
deps = [
":base_objc",
":helpers_objc",
":metal_objc",
":opengl_objc",
":videocapture_objc",
":videoframebuffer_objc",
]
}
rtc_library("metal_objc") {
visibility = [ "*" ]
allow_poison = [
"audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
"default_task_queue",
]
sources = [
"objc/components/renderer/metal/RTCMTLI420Renderer.h",
"objc/components/renderer/metal/RTCMTLI420Renderer.mm",
"objc/components/renderer/metal/RTCMTLNV12Renderer.h",
"objc/components/renderer/metal/RTCMTLNV12Renderer.mm",
"objc/components/renderer/metal/RTCMTLRGBRenderer.h",
"objc/components/renderer/metal/RTCMTLRGBRenderer.mm",
"objc/components/renderer/metal/RTCMTLRenderer+Private.h",
"objc/components/renderer/metal/RTCMTLRenderer.h",
"objc/components/renderer/metal/RTCMTLRenderer.mm",
]
frameworks = [
"CoreVideo.framework",
"Metal.framework",
"MetalKit.framework",
]
if (is_ios) {
sources += [
"objc/components/renderer/metal/RTCMTLVideoView.h",
"objc/components/renderer/metal/RTCMTLVideoView.m",
]
}
if (is_mac) {
sources += [
"objc/components/renderer/metal/RTCMTLNSVideoView.h",
"objc/components/renderer/metal/RTCMTLNSVideoView.m",
]
frameworks += [ "AppKit.framework" ]
}
deps = [
":base_objc",
":peerconnectionfactory_base_objc",
":videoframebuffer_objc",
"../api/video:video_frame",
"../api/video:video_rtp_headers",
"../rtc_base:checks",
]
configs += [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ]
}
# TODO(bugs.webrtc.org/9627): Remove this target.
rtc_library("videocapturebase_objc") {
visibility = [ "*" ]
sources = [ "objc/helpers/noop.mm" ]
configs += [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ]
deps = [
":base_objc",
":videoframebuffer_objc",
]
}
rtc_library("videocapture_objc") {
Revert "Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*""" This reverts commit c73e1f437889d882cbf2987f7fb3a029a6150613. Reason for revert: The problem with failed deps in chrome content/renderer had already been fixed in https://webrtc-review.googlesource.com/c/src/+/38660 Original change's description: > Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*"" > > This reverts commit 588c548657b3ddf76e7b3f241263eef7f5799f16. > > Reason for revert: > > Breaks Chrome FYI: > > /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check > -> returned 1 > ERROR at //build/split_static_library.gni:12:5: Dependency not allowed. > static_library(target_name) { > ^---------------------------- > The item //content/renderer:renderer > can not depend on //third_party/webrtc/media:rtc_internal_video_codecs > because it is not in //third_party/webrtc/media:rtc_internal_video_codecs's visibility list: [ > //third_party/webrtc/* > //third_party/webrtc_overrides/* > ] > > https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2FLinux_Builder%2F23560%2F%2B%2Frecipes%2Fsteps%2Fgenerate_build_files%2F0%2Fstdout > > Original change's description: > > GN rtc_* templates: Set default visibility to webrtc_root + "/*" > > > > This means that by default, targets are visible to everything under > > the WebRTC root, but not visible to anything else. > > > > API targets are manually tagged with visibility "*", so that targets > > outside the WebRTC tree can see them. > > > > BUG=webrtc:8254 > > > > Change-Id: Icdbee6e0d22d93240ff2fb530c8f9dc48e351509 > > Reviewed-on: https://webrtc-review.googlesource.com/24140 > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > Commit-Queue: Karl Wiberg <kwiberg@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#21548} > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org > > Change-Id: I06620ce3d6f67482935c22efa231dd6cab91625a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:8254 > Reviewed-on: https://webrtc-review.googlesource.com/38760 > Reviewed-by: Per Kjellander <perkj@webrtc.org> > Commit-Queue: Per Kjellander <perkj@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#21555} TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org Change-Id: I6f720078ce21bd172e0a6471bae8c4c011e4a657 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:8254 Reviewed-on: https://webrtc-review.googlesource.com/38860 Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21558}
2018-01-10 15:54:53 +00:00
visibility = [ "*" ]
allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
sources = [
"objc/components/capturer/RTCCameraVideoCapturer.h",
"objc/components/capturer/RTCCameraVideoCapturer.m",
"objc/components/capturer/RTCFileVideoCapturer.h",
"objc/components/capturer/RTCFileVideoCapturer.m",
]
frameworks = [
"AVFoundation.framework",
"CoreVideo.framework",
"QuartzCore.framework",
]
configs += [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ]
deps = [
":base_objc",
":helpers_objc",
":videoframebuffer_objc",
"../rtc_base/system:gcd_helpers",
]
}
rtc_library("videocodec_objc") {
visibility = [ "*" ]
configs += [ "..:no_global_constructors" ]
sources = [
"objc/components/video_codec/RTCCodecSpecificInfoH264+Private.h",
"objc/components/video_codec/RTCCodecSpecificInfoH264.h",
"objc/components/video_codec/RTCCodecSpecificInfoH264.mm",
"objc/components/video_codec/RTCH264ProfileLevelId.h",
"objc/components/video_codec/RTCH264ProfileLevelId.mm",
]
if (is_ios) {
sources += [
Revert "Add a prefix for objc category." This reverts commit 181ea6e414c5982015ce161e6368120be3658ec4. Reason for revert: Breaks downstream project. Kári will help to land it next week. Original change's description: > Add a prefix for objc category. > > According to the Google Objective-C style [1], category names should > start with an appropriate prefix. WebRTC has some category definitions > for system interfaces, but it doesn't use prefixes. > > $ otool -ov WebRTC.framework/WebRTC | grep -E "^[0-9a-z]{16} 0x[0-9a-z]+ __OBJC_._CATEGORY" | grep -v "_RTC" > 0000000002160840 0x217c3c0 __OBJC_$_CATEGORY_UIDevice_$_H264Profile > 0000000002160850 0x21808b8 __OBJC_$_CATEGORY_AVCaptureSession_$_DevicePosition > 0000000002160858 0x2180968 __OBJC_$_CATEGORY_NSString_$_StdString > 0000000002160860 0x21809c8 __OBJC_$_CATEGORY_NSString_$_AbslStringView > > To avoid conflicts, prefix the names and methods of those categories. > Also remove sdk/objc/Framework/Classes/Common/NSString+StdString.h as > it is not used by any other files. > > [1] https://google.github.io/styleguide/objcguide.html#category-naming > > Bug: webrtc:13884 > Change-Id: I2cf2742af198ab4e0bfb15c0476d72971e50ceee > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262341 > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com> > Reviewed-by: Artem Titov <titovartem@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#36880} Bug: webrtc:13884 Change-Id: I85257088e4a3a62e01ff925ab5e77af83b078ef3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262420 Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Artem Titov <titovartem@webrtc.org> Auto-Submit: Artem Titov <titovartem@webrtc.org> Owners-Override: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/main@{#36885}
2022-05-13 14:46:42 +00:00
"objc/components/video_codec/UIDevice+H264Profile.h",
"objc/components/video_codec/UIDevice+H264Profile.mm",
]
}
public_configs = [ ":common_config_objc" ]
deps = [
":base_objc",
":helpers_objc",
Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2980173002/ ) Reason for revert: Relanding after fixing issues with no video. Original issue's description: > Revert of Injectable Obj-C video codecs (patchset #2 id:370001 of https://codereview.webrtc.org/2979983002/ ) > > Reason for revert: > Still having problems with no video. Reverting. > Once no video is visible, no video is available from then on even if the callee app is in the foreground. > > > Original issue's description: > > Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2979973002/ ) > > > > Reason for revert: > > Fix the broken build file > > > > Original issue's description: > > > Revert of Injectable Obj-C video codecs (patchset #3 id:400001 of https://codereview.webrtc.org/2981583002/ ) > > > > > > Reason for revert: > > > Breaks bots. Build file incorrect. > > > > > > Original issue's description: > > > > Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2975963002/ ) > > > > > > > > Reason for revert: > > > > New CL for fixing the issues > > > > > > > > Original issue's description: > > > > > Revert of Injectable Obj-C video codecs (patchset #8 id:140001 of https://codereview.webrtc.org/2966023002/ ) > > > > > > > > > > Reason for revert: > > > > > Causes no video in certain scenarios. Please come up with a test plan or unit test to prevent such problems in the future. > > > > > > > > > > Original issue's description: > > > > > > Injectable Obj-C video codecs > > > > > > > > > > > > Initial CL for this effort, with a working RTCVideoEncoder/Decoder for H264 > > > > > > (wrapping the VideoToolbox codec). > > > > > > > > > > > > Some notes / things left to do: > > > > > > - There are some hard-coded references to codec types that are supported by > > > > > > webrtc::VideoCodec, cricket::VideoCodec, webrtc::CodecSpecificInfo etc > > > > > > since we need to convert to/from these types in ObjCVideoEncoder/Decoder. > > > > > > These types would need to be more codec agnostic to avoid this. > > > > > > - Most interfaces are borrowed from the design document for injectable > > > > > > codecs in Android. Some data in the corresponding C++ classes is discarded > > > > > > when converting to the Obj-C version, since it has fewer fields. I have not > > > > > > verified whether all data that we do keep is needed, or whether we might be > > > > > > losing anything useful in these conversions. > > > > > > - Implement the VideoToolbox codec code directly in the RTCVideoEncoderH264 > > > > > > classes, instead of wrapping webrtc::H264VideoToolboxEncoder / decoder. > > > > > > Eliminates converting between ObjC/C++ types outside the ObjCVideoEncoder/ > > > > > > Decoder wrapper classes. > > > > > > - List the injected codec factory's supported codecs in the list of codecs in > > > > > > AppRTCMobile. > > > > > > > > > > > > BUG=webrtc:7924 > > > > > > R=magjed@webrtc.org > > > > > > > > > > > > Review-Url: https://codereview.webrtc.org/2966023002 . > > > > > > Cr-Commit-Position: refs/heads/master@{#18928} > > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/a0349c138db62c52435be84b6c837f5f4758e264 > > > > > > > > > > TBR=magjed@webrtc.org,andersc@webrtc.org > > > > > # Not skipping CQ checks because original CL landed more than 1 days ago. > > > > > BUG=webrtc:7924 > > > > > NOTRY=true > > > > > > > > > > Review-Url: https://codereview.webrtc.org/2975963002 > > > > > Cr-Commit-Position: refs/heads/master@{#18979} > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/1095ada7ad56fe29b7b2bbc560a8f6475a7978ce > > > > > > > > R=magjed@webrtc.org > > > > TBR=tkchin@webrtc.org > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > NOPRESUBMIT=true > > > > NOTREECHECKS=true > > > > NOTRY=true > > > > BUG=webrtc:7924 > > > > > > > > Review-Url: https://codereview.webrtc.org/2981583002 . > > > > Cr-Commit-Position: refs/heads/master@{#19002} > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/a5f1de1e6541de03f944bcbf49be87c01f57a18b > > > > > > TBR=magjed@webrtc.org,tkchin@webrtc.org,jtteh@webrtc.org,andersc@webrtc.org > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > NOPRESUBMIT=true > > > NOTREECHECKS=true > > > NOTRY=true > > > BUG=webrtc:7924 > > > > > > Review-Url: https://codereview.webrtc.org/2979973002 > > > Cr-Commit-Position: refs/heads/master@{#19004} > > > Committed: https://chromium.googlesource.com/external/webrtc/+/81d40ee1491d5229c2677cc04b1f40d67c2babef > > > > TBR=magjed@webrtc.org,tkchin@webrtc.org,jtteh@webrtc.org,sprang@webrtc.org > > BUG=webrtc:7924 > > > > Review-Url: https://codereview.webrtc.org/2979983002 > > Cr-Commit-Position: refs/heads/master@{#19005} > > Committed: https://chromium.googlesource.com/external/webrtc/+/732a3437da4db7b452758b8e1cf26fce0ce3bf65 > > TBR=magjed@webrtc.org,tkchin@webrtc.org,sprang@webrtc.org,haysc@webrtc.org,andersc@webrtc.org > # Not skipping CQ checks because original CL landed more than 1 days ago. > BUG=webrtc:7924 > > Review-Url: https://codereview.webrtc.org/2980173002 > Cr-Commit-Position: refs/heads/master@{#19036} > Committed: https://chromium.googlesource.com/external/webrtc/+/860f7298166084d966749e22b69aa2fdcf4d4ed6 TBR=magjed@webrtc.org,tkchin@webrtc.org,sprang@webrtc.org,haysc@webrtc.org,andersc@webrtc.org,jtteh@webrtc.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=webrtc:7924 Review-Url: https://codereview.webrtc.org/2977213002 Cr-Commit-Position: refs/heads/master@{#19135}
2017-07-25 07:55:58 -07:00
"../api/video_codecs:video_codecs_api",
"../common_video",
"../media:rtc_media_base",
"../modules/video_coding:video_codec_interface",
"../rtc_base:checks",
]
}
rtc_library("default_codec_factory_objc") {
sources = [
"objc/components/video_codec/RTCDefaultVideoDecoderFactory.h",
"objc/components/video_codec/RTCDefaultVideoDecoderFactory.m",
"objc/components/video_codec/RTCDefaultVideoEncoderFactory.h",
"objc/components/video_codec/RTCDefaultVideoEncoderFactory.m",
]
deps = [
":base_objc",
":native_video",
":videocodec_objc",
":videotoolbox_objc",
":vp8",
":vp9",
":vpx_codec_constants",
]
defines = []
if (enable_libaom) {
defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ]
deps += [ ":libaom_av1_encoder" ]
}
if (rtc_include_dav1d_in_internal_decoder_factory) {
deps += [ ":dav1d_decoder" ]
}
}
rtc_library("vpx_codec_constants") {
configs += [ "..:no_global_constructors" ]
sources = [
"objc/api/video_codec/RTCVideoCodecConstants.h",
"objc/api/video_codec/RTCVideoCodecConstants.mm",
]
deps = [
":base_objc",
"../media:rtc_media_base",
]
}
rtc_library("vp8") {
visibility = [ "*" ]
allow_poison = [ "software_video_codecs" ]
sources = [
"objc/api/video_codec/RTCVideoDecoderVP8.h",
"objc/api/video_codec/RTCVideoDecoderVP8.mm",
"objc/api/video_codec/RTCVideoEncoderVP8.h",
"objc/api/video_codec/RTCVideoEncoderVP8.mm",
]
deps = [
":base_objc",
":wrapped_native_codec_objc",
"../modules/video_coding:webrtc_vp8",
]
}
rtc_library("vp9") {
visibility = [ "*" ]
allow_poison = [ "software_video_codecs" ]
sources = [
"objc/api/video_codec/RTCVideoDecoderVP9.h",
"objc/api/video_codec/RTCVideoDecoderVP9.mm",
"objc/api/video_codec/RTCVideoEncoderVP9.h",
"objc/api/video_codec/RTCVideoEncoderVP9.mm",
]
deps = [
":base_objc",
":wrapped_native_codec_objc",
"../media:rtc_media_base",
"../modules/video_coding:webrtc_vp9",
]
}
rtc_library("dav1d_decoder") {
visibility = [ "*" ]
allow_poison = [ "software_video_codecs" ]
sources = [
"objc/api/video_codec/RTCVideoDecoderAV1.h",
"objc/api/video_codec/RTCVideoDecoderAV1.mm",
]
deps = [
":base_objc",
":wrapped_native_codec_objc",
"../media:rtc_media_base",
"../modules/video_coding/codecs/av1:dav1d_decoder",
]
}
rtc_library("libaom_av1_encoder") {
visibility = [ "*" ]
allow_poison = [ "software_video_codecs" ]
sources = [
"objc/api/video_codec/RTCVideoEncoderAV1.h",
"objc/api/video_codec/RTCVideoEncoderAV1.mm",
]
deps = [
":base_objc",
":wrapped_native_codec_objc",
"../media:rtc_media_base",
"../modules/video_coding/codecs/av1:libaom_av1_encoder",
]
}
rtc_library("mediaconstraints_objc") {
configs += [ "..:no_global_constructors" ]
sources = [
"objc/api/peerconnection/RTCMediaConstraints+Private.h",
"objc/api/peerconnection/RTCMediaConstraints.h",
"objc/api/peerconnection/RTCMediaConstraints.mm",
]
public_configs = [ ":common_config_objc" ]
deps = [
":base_objc",
":helpers_objc",
":media_constraints",
]
}
# TODO(bugs.webrtc.org/9627): Remove, targets should depend on base_objc.
rtc_library("videorenderer_objc") {
visibility = [ "*" ]
sources = [ "objc/helpers/noop.mm" ]
configs += [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ]
deps = [ ":base_objc" ]
}
rtc_library("videorendereradapter_objc") {
visibility = [ "*" ]
allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
sources = [
"objc/api/RTCVideoRendererAdapter+Private.h",
"objc/api/RTCVideoRendererAdapter.h",
"objc/api/RTCVideoRendererAdapter.mm",
]
configs += [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ]
deps = [
":base_objc",
":native_api",
":videoframebuffer_objc",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
]
}
rtc_library("mediasource_objc") {
sources = [
"objc/api/peerconnection/RTCMediaSource+Private.h",
"objc/api/peerconnection/RTCMediaSource.h",
"objc/api/peerconnection/RTCMediaSource.mm",
]
configs += [
"..:common_objc",
":used_from_extension",
]
public_configs = [ ":common_config_objc" ]
deps = [
":base_objc",
"../api:media_stream_interface",
"../rtc_base:checks",
]
}
rtc_library("base_native_additions_objc") {
sources = [
"objc/api/peerconnection/RTCEncodedImage+Private.h",
"objc/api/peerconnection/RTCEncodedImage+Private.mm",
"objc/api/peerconnection/RTCVideoCodecInfo+Private.h",
"objc/api/peerconnection/RTCVideoCodecInfo+Private.mm",
"objc/api/peerconnection/RTCVideoEncoderSettings+Private.h",
"objc/api/peerconnection/RTCVideoEncoderSettings+Private.mm",
]
configs += [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ]
deps = [
":base_objc",
":helpers_objc",
"../api/video:encoded_image",
"../api/video_codecs:video_codecs_api",
"../modules/video_coding:video_codec_interface",
"../rtc_base",
"../rtc_base:refcount",
"../rtc_base:safe_conversions",
]
}
rtc_library("peerconnectionfactory_base_objc") {
visibility = [ "*" ]
allow_poison = [
"audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
"default_task_queue",
]
configs += [ "..:no_global_constructors" ]
sources = [
"objc/api/peerconnection/RTCAudioSource+Private.h",
"objc/api/peerconnection/RTCAudioSource.h",
"objc/api/peerconnection/RTCAudioSource.mm",
"objc/api/peerconnection/RTCAudioTrack+Private.h",
"objc/api/peerconnection/RTCAudioTrack.h",
"objc/api/peerconnection/RTCAudioTrack.mm",
"objc/api/peerconnection/RTCCertificate.h",
"objc/api/peerconnection/RTCCertificate.mm",
"objc/api/peerconnection/RTCConfiguration+Native.h",
"objc/api/peerconnection/RTCConfiguration+Private.h",
"objc/api/peerconnection/RTCConfiguration.h",
"objc/api/peerconnection/RTCConfiguration.mm",
"objc/api/peerconnection/RTCCryptoOptions.h",
"objc/api/peerconnection/RTCCryptoOptions.mm",
"objc/api/peerconnection/RTCDataChannel+Private.h",
"objc/api/peerconnection/RTCDataChannel.h",
"objc/api/peerconnection/RTCDataChannel.mm",
"objc/api/peerconnection/RTCDataChannelConfiguration+Private.h",
"objc/api/peerconnection/RTCDataChannelConfiguration.h",
"objc/api/peerconnection/RTCDataChannelConfiguration.mm",
"objc/api/peerconnection/RTCDtmfSender+Private.h",
"objc/api/peerconnection/RTCDtmfSender.h",
"objc/api/peerconnection/RTCDtmfSender.mm",
"objc/api/peerconnection/RTCFieldTrials.h",
"objc/api/peerconnection/RTCFieldTrials.mm",
"objc/api/peerconnection/RTCIceCandidate+Private.h",
"objc/api/peerconnection/RTCIceCandidate.h",
"objc/api/peerconnection/RTCIceCandidate.mm",
"objc/api/peerconnection/RTCIceCandidateErrorEvent+Private.h",
"objc/api/peerconnection/RTCIceCandidateErrorEvent.h",
"objc/api/peerconnection/RTCIceCandidateErrorEvent.mm",
"objc/api/peerconnection/RTCIceServer+Private.h",
"objc/api/peerconnection/RTCIceServer.h",
"objc/api/peerconnection/RTCIceServer.mm",
"objc/api/peerconnection/RTCLegacyStatsReport+Private.h",
"objc/api/peerconnection/RTCLegacyStatsReport.h",
"objc/api/peerconnection/RTCLegacyStatsReport.mm",
"objc/api/peerconnection/RTCMediaStream+Private.h",
"objc/api/peerconnection/RTCMediaStream.h",
"objc/api/peerconnection/RTCMediaStream.mm",
"objc/api/peerconnection/RTCMediaStreamTrack+Private.h",
"objc/api/peerconnection/RTCMediaStreamTrack.h",
"objc/api/peerconnection/RTCMediaStreamTrack.mm",
"objc/api/peerconnection/RTCMetrics.h",
"objc/api/peerconnection/RTCMetrics.mm",
"objc/api/peerconnection/RTCMetricsSampleInfo+Private.h",
"objc/api/peerconnection/RTCMetricsSampleInfo.h",
"objc/api/peerconnection/RTCMetricsSampleInfo.mm",
"objc/api/peerconnection/RTCPeerConnection+DataChannel.mm",
"objc/api/peerconnection/RTCPeerConnection+Private.h",
"objc/api/peerconnection/RTCPeerConnection+Stats.mm",
"objc/api/peerconnection/RTCPeerConnection.h",
"objc/api/peerconnection/RTCPeerConnection.mm",
"objc/api/peerconnection/RTCPeerConnectionFactory+Native.h",
"objc/api/peerconnection/RTCPeerConnectionFactory+Private.h",
"objc/api/peerconnection/RTCPeerConnectionFactory.h",
"objc/api/peerconnection/RTCPeerConnectionFactory.mm",
"objc/api/peerconnection/RTCPeerConnectionFactoryBuilder+DefaultComponents.h",
"objc/api/peerconnection/RTCPeerConnectionFactoryBuilder+DefaultComponents.mm",
"objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.h",
"objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm",
"objc/api/peerconnection/RTCPeerConnectionFactoryOptions+Private.h",
"objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h",
"objc/api/peerconnection/RTCPeerConnectionFactoryOptions.mm",
"objc/api/peerconnection/RTCRtcpParameters+Private.h",
"objc/api/peerconnection/RTCRtcpParameters.h",
"objc/api/peerconnection/RTCRtcpParameters.mm",
"objc/api/peerconnection/RTCRtpCodecParameters+Private.h",
"objc/api/peerconnection/RTCRtpCodecParameters.h",
"objc/api/peerconnection/RTCRtpCodecParameters.mm",
"objc/api/peerconnection/RTCRtpEncodingParameters+Private.h",
"objc/api/peerconnection/RTCRtpEncodingParameters.h",
"objc/api/peerconnection/RTCRtpEncodingParameters.mm",
"objc/api/peerconnection/RTCRtpHeaderExtension+Private.h",
"objc/api/peerconnection/RTCRtpHeaderExtension.h",
"objc/api/peerconnection/RTCRtpHeaderExtension.mm",
"objc/api/peerconnection/RTCRtpParameters+Private.h",
"objc/api/peerconnection/RTCRtpParameters.h",
"objc/api/peerconnection/RTCRtpParameters.mm",
"objc/api/peerconnection/RTCRtpReceiver+Native.h",
"objc/api/peerconnection/RTCRtpReceiver+Private.h",
"objc/api/peerconnection/RTCRtpReceiver.h",
"objc/api/peerconnection/RTCRtpReceiver.mm",
"objc/api/peerconnection/RTCRtpSender+Native.h",
"objc/api/peerconnection/RTCRtpSender+Private.h",
"objc/api/peerconnection/RTCRtpSender.h",
"objc/api/peerconnection/RTCRtpSender.mm",
"objc/api/peerconnection/RTCRtpTransceiver+Private.h",
"objc/api/peerconnection/RTCRtpTransceiver.h",
"objc/api/peerconnection/RTCRtpTransceiver.mm",
"objc/api/peerconnection/RTCSSLAdapter.h",
"objc/api/peerconnection/RTCSSLAdapter.mm",
"objc/api/peerconnection/RTCSessionDescription+Private.h",
"objc/api/peerconnection/RTCSessionDescription.h",
"objc/api/peerconnection/RTCSessionDescription.mm",
"objc/api/peerconnection/RTCStatisticsReport+Private.h",
"objc/api/peerconnection/RTCStatisticsReport.h",
"objc/api/peerconnection/RTCStatisticsReport.mm",
"objc/api/peerconnection/RTCTracing.h",
"objc/api/peerconnection/RTCTracing.mm",
"objc/api/peerconnection/RTCVideoTrack+Private.h",
"objc/api/peerconnection/RTCVideoTrack.h",
"objc/api/peerconnection/RTCVideoTrack.mm",
]
configs += [
"..:common_objc",
":used_from_extension",
]
public_configs = [ ":common_config_objc" ]
deps = [
":audio_device_api_objc",
":base_native_additions_objc",
":base_objc",
":file_logger_objc",
":helpers_objc",
":mediaconstraints_objc",
":mediasource_objc",
":native_api",
":native_video",
":objc_audio_device_module",
":videoframebuffer_objc",
":videorendereradapter_objc",
":videosource_objc",
":videotoolbox_objc",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:rtc_event_log_output_file",
"../api:rtc_stats_api",
"../api:rtp_parameters",
"../api:scoped_refptr",
"../api/audio_codecs:audio_codecs_api",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../api/crypto:frame_decryptor_interface",
"../api/crypto:frame_encryptor_interface",
"../api/rtc_event_log:rtc_event_log_factory",
"../api/task_queue:default_task_queue_factory",
"../api/transport:field_trial_based_config",
"../api/video:video_frame",
"../api/video:video_rtp_headers",
"../api/video_codecs:video_codecs_api",
Revert "Revert "Revert "Revert "Support more formats in RTCVideoFrame"""" This reverts commit 1cfeb435427a2fa677a495e34c882096efc193d0. Reason for revert: Fix unit test Original change's description: > Revert "Revert "Revert "Support more formats in RTCVideoFrame""" > > This reverts commit 7583390d1a3a7c4e9a77da0d77250abac0c34d1d. > > Reason for revert: Breaks unit tests > > Original change's description: > > Revert "Revert "Support more formats in RTCVideoFrame"" > > > > This reverts commit 0789dab2cbd1617e94d7300e375163d42345f3d4. > > > > Reason for revert: Include obc_corevideoframebuffer target > > > > Original change's description: > > > Revert "Support more formats in RTCVideoFrame" > > > > > > This reverts commit bd2220a9c496ef2e8567b68d4be9435a110bdc34. > > > > > > Reason for revert: Broke external clients > > > > > > Original change's description: > > > > Support more formats in RTCVideoFrame > > > > > > > > Implement Obj-C version of webrtc::VideoFrameBuffer and use that in > > > > RTCVideoFrame. > > > > > > > > Bug: webrtc:7785 > > > > Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677 > > > > Reviewed-on: https://chromium-review.googlesource.com/536773 > > > > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > > > > Reviewed-by: Magnus Jedvert <magjed@webrtc.org> > > > > Cr-Commit-Position: refs/heads/master@{#18691} > > > > > > TBR=magjed@webrtc.org,andersc@webrtc.org > > > > > > Change-Id: Id765dd9543ed0613a6b2de108b268c3501025fcd > > > No-Presubmit: true > > > No-Tree-Checks: true > > > No-Try: true > > > Bug: webrtc:7785 > > > Reviewed-on: https://chromium-review.googlesource.com/542837 > > > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > > > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#18697} > > > > TBR=magjed@webrtc.org,andersc@webrtc.org > > > > Change-Id: I1ef5313b4a6c56eb8c7fd02d95db62c4e3c00255 > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: webrtc:7785 > > Reviewed-on: https://chromium-review.googlesource.com/542838 > > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#18716} > > TBR=magjed@webrtc.org,andersc@webrtc.org > > Change-Id: Id12f33698eb02041607cb9a5c54f37f01bfac5b1 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:7785 > Reviewed-on: https://chromium-review.googlesource.com/544840 > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#18718} TBR=magjed@webrtc.org,andersc@webrtc.org Change-Id: I184303ecba8db91ef7de709f982a295a2efe92eb Bug: webrtc:7785 Reviewed-on: https://chromium-review.googlesource.com/544841 Commit-Queue: Magnus Jedvert <magjed@webrtc.org> Reviewed-by: Anders Carlsson <andersc@webrtc.org> Cr-Commit-Position: refs/heads/master@{#18731}
2017-06-22 15:26:30 +02:00
"../common_video",
"../media:rtc_audio_video",
"../media:rtc_media_base",
"../modules/audio_device:audio_device_api",
"../modules/audio_processing",
Reland "Isolating APM API build target: making :api an actual target." This reverts commit 61c6e5643e7ea058e653956980a90e033249c055. Reason for revert: downstream projects prepared for this change Original change's description: > Revert "Isolating APM API build target: making :api an actual target." > > This reverts commit a7f77a7c05b5d26520fd01a773ffb2c8b15b60ff. > > Reason for revert: breaking downstream > > Original change's description: > > Isolating APM API build target: making :api an actual target. > > > > This CL is part of a refactoring work to unblock other CLs > > that would generate a circular dependency when including > > modules/audio_processing. It will also allow to easily move > > the APM interface part under //api. > > > > More in detail, this change moves the APM interface files from > > the build target modules/audio_processing to > > modules/audio_processing:api. It also adds :api as dependency > > where needed. > > > > Bug: webrtc:9535 > > Change-Id: I72829e22d08ba4d75985f0421e6e8bf0216ebecd > > Reviewed-on: https://webrtc-review.googlesource.com/c/109501 > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Reviewed-by: Sam Zackrisson <saza@webrtc.org> > > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25539} > > TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org > > Change-Id: I974c6237311e7c06970aa62e5f6940f3aa80113d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9535 > Reviewed-on: https://webrtc-review.googlesource.com/c/109820 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25540} TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org Change-Id: Ic8ed4cc3baf43d639ce13cae256c007728c3ad92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/c/109884 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25547}
2018-11-07 14:29:54 +00:00
"../modules/audio_processing:api",
"../modules/video_coding:video_codec_interface",
"../pc:peer_connection_factory",
"../pc:webrtc_sdp",
"../rtc_base",
"../rtc_base:checks",
"../rtc_base:event_tracer",
"../rtc_base:logging",
Reland "Refactor rtc_base build targets." This is a reland of 69241a93fb14f6527a26d5c94dde879013012d2a Fix: The problem was related to NO_MAIN_THREAD_WRAPPING, which affects https://source.chromium.org/chromium/chromium/src/+/master:third_party/webrtc/rtc_base/thread.cc;l=257-263;drc=7acc2d9fe3a6e3c4d8881d2bdfc9b8968a724cd5. The original CL didn't attach the definition of the macro NO_MAIN_THREAD_WRAPPING when building for Chromium (which doesn't have to be related to //rtc_base anymore but to //rtc_base:threading). Original change's description: > Refactor rtc_base build targets. > > The "//rtc_base:rtc_base" build target has historically been one of the > biggest targets in the WebRTC build. Big targets are the main source of > circular dependencies and non-API types leakage. > > This CL is a step forward into splitting "//rtc_base:rtc_base" into > smaller targets (as originally started in 2018). > > The only non-automated changes are (like re-wiring the build system): > * The creation of //rtc_base/async_resolver.{h,cc} which allows to > break a circular dependency (is has been extracted from > //rtc_base/net_helpers.{h,cc}). > * The creation of //rtc_base/internal/default_socket_server.{h,cc} to > break another circular dependency. > > Bug: webrtc:9987 > Change-Id: I0c8f5e7efe2c8fd8e6bffa0d6dd2dd494cf3df02 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196903 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#32941} Bug: webrtc:9987 Change-Id: I7cdf49d2aac8357f1f50f90010bf2c2f62fa19f6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202021 Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33001}
2021-01-15 10:41:01 +01:00
"../rtc_base:network_constants",
"../rtc_base:safe_conversions",
"../rtc_base:stringutils",
"../rtc_base:threading",
"../rtc_base:timeutils",
"../stats:rtc_stats",
"../system_wrappers:field_trial",
"../system_wrappers:metrics",
]
if (is_ios) {
deps += [ ":native_api_audio_device_module" ]
}
}
Reland of GN: Enable ARC for Mac and iOS in rtc_* templates (patchset #1 id:1 of https://codereview.webrtc.org/2827223003/ ) Reason for revert: Relanding after fixing ARC issue. Original issue's description: > Revert of GN: Enable ARC for Mac and iOS in rtc_* templates (patchset #3 id:40001 of https://codereview.webrtc.org/2781713004/ ) > > Reason for revert: > Breaks mac build > > Original issue's description: > > GN: Enable ARC for Mac and iOS in rtc_* templates > > > > Remove all uses of retain/release and NSAutoreleasePool. > > > > This makes transformation to Bazel easier. > > > > This CL subsumes https://codereview.webrtc.org/2778163002 and depends on https://codereview.webrtc.org/2784483002/ > > > > BUG=webrtc:6412 > > > > Review-Url: https://codereview.webrtc.org/2781713004 > > Cr-Commit-Position: refs/heads/master@{#17780} > > Committed: https://chromium.googlesource.com/external/webrtc/+/6bda02b51dc00401d2a0d04be996ed10e5acac47 > > TBR=kjellander@webrtc.org,magjed@webrtc.org,stefan@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:6412 > > Review-Url: https://codereview.webrtc.org/2827223003 > Cr-Commit-Position: refs/heads/master@{#17784} > Committed: https://chromium.googlesource.com/external/webrtc/+/7c8786ae8f2d8481f74b0ab16eb91a8101fe51dc TBR=kjellander@webrtc.org,magjed@webrtc.org,stefan@webrtc.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=webrtc:6412 Review-Url: https://codereview.webrtc.org/2834273002 Cr-Commit-Position: refs/heads/master@{#17836}
2017-04-24 00:57:16 -07:00
if (rtc_include_tests) {
if (is_ios) {
rtc_library("sdk_unittests_sources") {
testonly = true
include_dirs = [ "objc/" ]
sources = [
"objc/unittests/ObjCVideoTrackSource_xctest.mm",
"objc/unittests/RTCAudioSessionTest.mm",
"objc/unittests/RTCCVPixelBuffer_xctest.mm",
"objc/unittests/RTCCallbackLogger_xctest.m",
"objc/unittests/RTCCameraVideoCapturerTests.mm",
"objc/unittests/RTCCertificateTest.mm",
"objc/unittests/RTCConfigurationTest.mm",
"objc/unittests/RTCDataChannelConfigurationTest.mm",
Reland "Update RTCEncodedImage to not use deprecated mutable_data call." This reverts commit 966bcc4bd5cc7aee5963e784ddf0caf668b2d6e6. Reason for revert: Fixing upstream issues. Original change's description: > Revert "Update RTCEncodedImage to not use deprecated mutable_data call." > > This reverts commit 677e62785dd39cbc730edcbb7ef99909dd292b11. > > Reason for revert: > The RTC_DCHECK_EQ(self.buffer.bytes, self.encodedData->data()) line is triggering for every call > > Original change's description: > > Update RTCEncodedImage to not use deprecated mutable_data call. > > > > Bug: webrtc:9378 > > Change-Id: If1e6284e2d11009097c87d15b98a2768a1d71521 > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168524 > > Commit-Queue: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#30518} > > TBR=nisse@webrtc.org,kthelgason@webrtc.org > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Bug: webrtc:9378 > Change-Id: I91b6df1148224785c209a7306ec186a952f5e289 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168620 > Reviewed-by: Zeke Chin <tkchin@webrtc.org> > Commit-Queue: Zeke Chin <tkchin@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#30527} TBR=nisse@webrtc.org,kthelgason@webrtc.org,tkchin@webrtc.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: webrtc:9378 Change-Id: I1c0e61d8a390a5999f8dbbbda6f094d71f9b0678 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168740 Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Commit-Queue: Kári Helgason <kthelgason@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30588}
2020-02-20 07:34:45 -08:00
"objc/unittests/RTCEncodedImage_xctest.mm",
"objc/unittests/RTCFileVideoCapturer_xctest.mm",
"objc/unittests/RTCH264ProfileLevelId_xctest.m",
"objc/unittests/RTCIceCandidateTest.mm",
"objc/unittests/RTCIceServerTest.mm",
"objc/unittests/RTCMTLVideoView_xctest.m",
"objc/unittests/RTCMediaConstraintsTest.mm",
"objc/unittests/RTCNV12TextureCache_xctest.m",
"objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm",
"objc/unittests/RTCPeerConnectionFactory_xctest.m",
"objc/unittests/RTCPeerConnectionTest.mm",
"objc/unittests/RTCSessionDescriptionTest.mm",
"objc/unittests/RTCTracingTest.mm",
"objc/unittests/frame_buffer_helpers.h",
"objc/unittests/frame_buffer_helpers.mm",
"objc/unittests/nalu_rewriter_xctest.mm",
"objc/unittests/objc_video_decoder_factory_tests.mm",
"objc/unittests/objc_video_encoder_factory_tests.mm",
"objc/unittests/scoped_cftyperef_tests.mm",
]
# TODO(bugs.webrtc.org/12937): Remove OpenGL deprecation warning
# workaround.
defines = [ "GLES_SILENCE_DEPRECATION" ]
# TODO(peterhanspers): Reenable these tests on simulator.
# See bugs.webrtc.org/7812
if (target_environment != "simulator") {
sources += [
"objc/unittests/RTCAudioDeviceModule_xctest.mm",
"objc/unittests/RTCAudioDevice_xctest.mm",
]
}
deps = [
":audio_device",
":audio_session_objc",
Reland "Update RTCEncodedImage to not use deprecated mutable_data call." This reverts commit 966bcc4bd5cc7aee5963e784ddf0caf668b2d6e6. Reason for revert: Fixing upstream issues. Original change's description: > Revert "Update RTCEncodedImage to not use deprecated mutable_data call." > > This reverts commit 677e62785dd39cbc730edcbb7ef99909dd292b11. > > Reason for revert: > The RTC_DCHECK_EQ(self.buffer.bytes, self.encodedData->data()) line is triggering for every call > > Original change's description: > > Update RTCEncodedImage to not use deprecated mutable_data call. > > > > Bug: webrtc:9378 > > Change-Id: If1e6284e2d11009097c87d15b98a2768a1d71521 > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168524 > > Commit-Queue: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#30518} > > TBR=nisse@webrtc.org,kthelgason@webrtc.org > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Bug: webrtc:9378 > Change-Id: I91b6df1148224785c209a7306ec186a952f5e289 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168620 > Reviewed-by: Zeke Chin <tkchin@webrtc.org> > Commit-Queue: Zeke Chin <tkchin@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#30527} TBR=nisse@webrtc.org,kthelgason@webrtc.org,tkchin@webrtc.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: webrtc:9378 Change-Id: I1c0e61d8a390a5999f8dbbbda6f094d71f9b0678 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168740 Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Commit-Queue: Kári Helgason <kthelgason@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30588}
2020-02-20 07:34:45 -08:00
":base_native_additions_objc",
":base_objc",
":callback_logger_objc",
":framework_objc",
":helpers_objc",
":mediaconstraints_objc",
":metal_objc",
":native_api",
":native_api_audio_device_module",
":native_video",
":peerconnectionfactory_base_objc",
":video_toolbox_cc",
":videocapture_objc",
":videocodec_objc",
":videoframebuffer_objc",
":videosource_objc",
":videotoolbox_objc",
"../api:scoped_refptr",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../api/task_queue:default_task_queue_factory",
"../api/video:video_frame",
"../api/video_codecs:video_codecs_api",
"../common_video",
"../media:rtc_media_base",
"../media:rtc_media_tests_utils",
"../modules/audio_device:audio_device_api",
"../modules/audio_processing:api",
"../modules/video_coding:video_codec_interface",
"../rtc_base",
"../rtc_base:gunit_helpers",
"../rtc_base:macromagic",
"../rtc_base:refcount",
"../rtc_base:rtc_event",
"../rtc_base/system:unused",
"../system_wrappers",
"//third_party/libyuv",
]
if (rtc_ios_macos_use_opengl_rendering) {
deps += [ ":opengl_objc" ]
}
public_deps = [
"//build/config/ios:xctest",
"//third_party/ocmock",
]
}
bundle_data("sdk_unittests_bundle_data") {
sources = [
"objc/unittests/audio_short16.pcm",
"objc/unittests/audio_short44.pcm",
"objc/unittests/audio_short48.pcm",
# Sample video taken from https://media.xiph.org/video/derf/
"objc/unittests/foreman.mp4",
]
outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
}
# These tests use static linking.
rtc_test("sdk_unittests") {
is_xctest = true
info_plist = "//test/ios/Info.plist"
sources = [ "objc/unittests/main.mm" ]
Roll chromium_revision c7f14188a3..afb0a631b9 (687843:688061) Additionally, remove stale ios recipe variables due to this change: https://chromium-review.googlesource.com/c/chromium/src/+/1394435 Change log: https://chromium.googlesource.com/chromium/src/+log/c7f14188a3..afb0a631b9 Full diff: https://chromium.googlesource.com/chromium/src/+/c7f14188a3..afb0a631b9 Changed dependencies * src/base: https://chromium.googlesource.com/chromium/src/base/+log/1ed92f77f9..845cdcdcd2 * src/build: https://chromium.googlesource.com/chromium/src/build/+log/8f7634e82e..7539a9c425 * src/ios: https://chromium.googlesource.com/chromium/src/ios/+log/d5987ad4b8..17cf6dfd7e * src/testing: https://chromium.googlesource.com/chromium/src/testing/+log/db51c13bec..c96b0fc8eb * src/third_party: https://chromium.googlesource.com/chromium/src/third_party/+log/d53a889e2e..d9108ec1ca * src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/3a96577620..1f288d915d * src/third_party/googletest/src: https://chromium.googlesource.com/external/github.com/google/googletest.git/+log/e9d5f427b5..27e17f7851 * src/tools: https://chromium.googlesource.com/chromium/src/tools/+log/6f8134e8f5..054f3713fb DEPS diff: https://chromium.googlesource.com/chromium/src/+/c7f14188a3..afb0a631b9/DEPS No update to Clang. TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com, BUG=None Change-Id: I97a8a461afa46f79fab683a6467d8622024b56a3 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149806 Reviewed-by: Artem Titarenko <artit@webrtc.org> Commit-Queue: Artem Titarenko <artit@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28899}
2019-08-19 14:24:00 +02:00
extra_substitutions = [ "GTEST_BUNDLE_ID_SUFFIX=generic-unit-test" ]
deps = [
":peerconnectionfactory_base_objc",
":sdk_unittests_bundle_data",
":sdk_unittests_sources",
"../rtc_base",
Reland "Refactor rtc_base build targets." This is a reland of 69241a93fb14f6527a26d5c94dde879013012d2a Fix: The problem was related to NO_MAIN_THREAD_WRAPPING, which affects https://source.chromium.org/chromium/chromium/src/+/master:third_party/webrtc/rtc_base/thread.cc;l=257-263;drc=7acc2d9fe3a6e3c4d8881d2bdfc9b8968a724cd5. The original CL didn't attach the definition of the macro NO_MAIN_THREAD_WRAPPING when building for Chromium (which doesn't have to be related to //rtc_base anymore but to //rtc_base:threading). Original change's description: > Refactor rtc_base build targets. > > The "//rtc_base:rtc_base" build target has historically been one of the > biggest targets in the WebRTC build. Big targets are the main source of > circular dependencies and non-API types leakage. > > This CL is a step forward into splitting "//rtc_base:rtc_base" into > smaller targets (as originally started in 2018). > > The only non-automated changes are (like re-wiring the build system): > * The creation of //rtc_base/async_resolver.{h,cc} which allows to > break a circular dependency (is has been extracted from > //rtc_base/net_helpers.{h,cc}). > * The creation of //rtc_base/internal/default_socket_server.{h,cc} to > break another circular dependency. > > Bug: webrtc:9987 > Change-Id: I0c8f5e7efe2c8fd8e6bffa0d6dd2dd494cf3df02 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196903 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#32941} Bug: webrtc:9987 Change-Id: I7cdf49d2aac8357f1f50f90010bf2c2f62fa19f6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202021 Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33001}
2021-01-15 10:41:01 +01:00
"../rtc_base:threading",
"//test:test_support",
]
ldflags = [ "-all_load" ]
}
# These tests link to the framework.
rtc_test("sdk_framework_unittests") {
is_xctest = true
info_plist = "//test/ios/Info.plist"
sources = [
"objc/unittests/RTCDoNotPutCPlusPlusInFrameworkHeaders_xctest.m",
"objc/unittests/main.mm",
]
Roll chromium_revision c7f14188a3..afb0a631b9 (687843:688061) Additionally, remove stale ios recipe variables due to this change: https://chromium-review.googlesource.com/c/chromium/src/+/1394435 Change log: https://chromium.googlesource.com/chromium/src/+log/c7f14188a3..afb0a631b9 Full diff: https://chromium.googlesource.com/chromium/src/+/c7f14188a3..afb0a631b9 Changed dependencies * src/base: https://chromium.googlesource.com/chromium/src/base/+log/1ed92f77f9..845cdcdcd2 * src/build: https://chromium.googlesource.com/chromium/src/build/+log/8f7634e82e..7539a9c425 * src/ios: https://chromium.googlesource.com/chromium/src/ios/+log/d5987ad4b8..17cf6dfd7e * src/testing: https://chromium.googlesource.com/chromium/src/testing/+log/db51c13bec..c96b0fc8eb * src/third_party: https://chromium.googlesource.com/chromium/src/third_party/+log/d53a889e2e..d9108ec1ca * src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/3a96577620..1f288d915d * src/third_party/googletest/src: https://chromium.googlesource.com/external/github.com/google/googletest.git/+log/e9d5f427b5..27e17f7851 * src/tools: https://chromium.googlesource.com/chromium/src/tools/+log/6f8134e8f5..054f3713fb DEPS diff: https://chromium.googlesource.com/chromium/src/+/c7f14188a3..afb0a631b9/DEPS No update to Clang. TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com, BUG=None Change-Id: I97a8a461afa46f79fab683a6467d8622024b56a3 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149806 Reviewed-by: Artem Titarenko <artit@webrtc.org> Commit-Queue: Artem Titarenko <artit@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28899}
2019-08-19 14:24:00 +02:00
extra_substitutions = [ "GTEST_BUNDLE_ID_SUFFIX=generic-unit-test" ]
deps = [
":framework_objc+link",
":ios_framework_bundle",
"../rtc_base",
Reland "Refactor rtc_base build targets." This is a reland of 69241a93fb14f6527a26d5c94dde879013012d2a Fix: The problem was related to NO_MAIN_THREAD_WRAPPING, which affects https://source.chromium.org/chromium/chromium/src/+/master:third_party/webrtc/rtc_base/thread.cc;l=257-263;drc=7acc2d9fe3a6e3c4d8881d2bdfc9b8968a724cd5. The original CL didn't attach the definition of the macro NO_MAIN_THREAD_WRAPPING when building for Chromium (which doesn't have to be related to //rtc_base anymore but to //rtc_base:threading). Original change's description: > Refactor rtc_base build targets. > > The "//rtc_base:rtc_base" build target has historically been one of the > biggest targets in the WebRTC build. Big targets are the main source of > circular dependencies and non-API types leakage. > > This CL is a step forward into splitting "//rtc_base:rtc_base" into > smaller targets (as originally started in 2018). > > The only non-automated changes are (like re-wiring the build system): > * The creation of //rtc_base/async_resolver.{h,cc} which allows to > break a circular dependency (is has been extracted from > //rtc_base/net_helpers.{h,cc}). > * The creation of //rtc_base/internal/default_socket_server.{h,cc} to > break another circular dependency. > > Bug: webrtc:9987 > Change-Id: I0c8f5e7efe2c8fd8e6bffa0d6dd2dd494cf3df02 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196903 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#32941} Bug: webrtc:9987 Change-Id: I7cdf49d2aac8357f1f50f90010bf2c2f62fa19f6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202021 Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33001}
2021-01-15 10:41:01 +01:00
"../rtc_base:threading",
"//test:test_support",
]
}
}
}
if (is_ios) {
apple_framework_bundle_with_umbrella_header("framework_objc") {
info_plist = "objc/Info.plist"
output_name = "WebRTC"
common_objc_headers = [
"objc/base/RTCCodecSpecificInfo.h",
"objc/base/RTCEncodedImage.h",
"objc/base/RTCI420Buffer.h",
"objc/base/RTCLogging.h",
"objc/base/RTCMacros.h",
"objc/base/RTCMutableI420Buffer.h",
"objc/base/RTCMutableYUVPlanarBuffer.h",
"objc/base/RTCSSLCertificateVerifier.h",
"objc/base/RTCVideoCapturer.h",
"objc/base/RTCVideoCodecInfo.h",
"objc/base/RTCVideoDecoder.h",
"objc/base/RTCVideoDecoderFactory.h",
"objc/base/RTCVideoEncoder.h",
"objc/base/RTCVideoEncoderFactory.h",
"objc/base/RTCVideoEncoderQpThresholds.h",
"objc/base/RTCVideoEncoderSettings.h",
"objc/base/RTCVideoFrame.h",
"objc/base/RTCVideoFrameBuffer.h",
"objc/base/RTCVideoRenderer.h",
"objc/base/RTCYUVPlanarBuffer.h",
"objc/components/audio/RTCAudioDevice.h",
"objc/components/audio/RTCAudioSession.h",
"objc/components/audio/RTCAudioSessionConfiguration.h",
"objc/components/capturer/RTCCameraVideoCapturer.h",
"objc/components/capturer/RTCFileVideoCapturer.h",
"objc/components/network/RTCNetworkMonitor.h",
"objc/components/renderer/metal/RTCMTLVideoView.h",
"objc/components/renderer/opengl/RTCEAGLVideoView.h",
"objc/components/renderer/opengl/RTCVideoViewShading.h",
"objc/components/video_codec/RTCCodecSpecificInfoH264.h",
"objc/components/video_codec/RTCDefaultVideoDecoderFactory.h",
"objc/components/video_codec/RTCDefaultVideoEncoderFactory.h",
"objc/components/video_codec/RTCH264ProfileLevelId.h",
"objc/components/video_codec/RTCVideoDecoderFactoryH264.h",
"objc/components/video_codec/RTCVideoDecoderH264.h",
"objc/components/video_codec/RTCVideoEncoderFactoryH264.h",
"objc/components/video_codec/RTCVideoEncoderH264.h",
"objc/components/video_frame_buffer/RTCCVPixelBuffer.h",
"objc/helpers/RTCCameraPreviewView.h",
"objc/helpers/RTCDispatcher.h",
"objc/helpers/UIDevice+RTCDevice.h",
"objc/api/peerconnection/RTCAudioSource.h",
"objc/api/peerconnection/RTCAudioTrack.h",
"objc/api/peerconnection/RTCConfiguration.h",
"objc/api/peerconnection/RTCDataChannel.h",
"objc/api/peerconnection/RTCDataChannelConfiguration.h",
"objc/api/peerconnection/RTCFieldTrials.h",
"objc/api/peerconnection/RTCIceCandidate.h",
"objc/api/peerconnection/RTCIceCandidateErrorEvent.h",
"objc/api/peerconnection/RTCIceServer.h",
"objc/api/peerconnection/RTCLegacyStatsReport.h",
"objc/api/peerconnection/RTCMediaConstraints.h",
"objc/api/peerconnection/RTCMediaSource.h",
"objc/api/peerconnection/RTCMediaStream.h",
"objc/api/peerconnection/RTCMediaStreamTrack.h",
"objc/api/peerconnection/RTCMetrics.h",
"objc/api/peerconnection/RTCMetricsSampleInfo.h",
"objc/api/peerconnection/RTCPeerConnection.h",
"objc/api/peerconnection/RTCPeerConnectionFactory.h",
"objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h",
"objc/api/peerconnection/RTCRtcpParameters.h",
"objc/api/peerconnection/RTCRtpCodecParameters.h",
"objc/api/peerconnection/RTCRtpEncodingParameters.h",
"objc/api/peerconnection/RTCRtpHeaderExtension.h",
"objc/api/peerconnection/RTCRtpParameters.h",
"objc/api/peerconnection/RTCRtpReceiver.h",
"objc/api/peerconnection/RTCRtpSender.h",
"objc/api/peerconnection/RTCRtpTransceiver.h",
"objc/api/peerconnection/RTCDtmfSender.h",
"objc/api/peerconnection/RTCSSLAdapter.h",
"objc/api/peerconnection/RTCSessionDescription.h",
"objc/api/peerconnection/RTCStatisticsReport.h",
"objc/api/peerconnection/RTCTracing.h",
"objc/api/peerconnection/RTCCertificate.h",
"objc/api/peerconnection/RTCCryptoOptions.h",
"objc/api/peerconnection/RTCVideoSource.h",
"objc/api/peerconnection/RTCVideoTrack.h",
"objc/api/video_codec/RTCVideoCodecConstants.h",
"objc/api/video_codec/RTCVideoDecoderVP8.h",
"objc/api/video_codec/RTCVideoDecoderVP9.h",
"objc/api/video_codec/RTCVideoDecoderAV1.h",
"objc/api/video_codec/RTCVideoEncoderVP8.h",
"objc/api/video_codec/RTCVideoEncoderVP9.h",
"objc/api/video_codec/RTCVideoEncoderAV1.h",
"objc/api/video_frame_buffer/RTCNativeI420Buffer.h",
"objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.h",
]
if (!build_with_chromium) {
common_objc_headers += [
"objc/api/logging/RTCCallbackLogger.h",
"objc/api/peerconnection/RTCFileLogger.h",
]
}
Reland of Adding backward compatibility header (patchset #1 id:1 of https://codereview.webrtc.org/2908143003/ ) Reason for revert: Take three of relanding this after all internal issues have been resolved. Original issue's description: > Revert of Adding backward compatibility header (patchset #1 id:1 of https://codereview.webrtc.org/2909923002/ ) > > Reason for revert: > Breaks downstream project. > > Original issue's description: > > Adding backward compatibility header > > > > This header will be removed ad soon as downstream projects will be > > updated. > > > > BUG=webrtc:4867 > > NOTRY=True > > TBR=kjellander@webrtc.org > > > > Review-Url: https://codereview.webrtc.org/2909923002 > > Cr-Commit-Position: refs/heads/master@{#18306} > > Committed: https://chromium.googlesource.com/external/webrtc/+/4fa8a97cc3268de73ad021ff56aaa9bf1a566ed4 > > TBR=kjellander@webrtc.org,magjed@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:4867 > > Review-Url: https://codereview.webrtc.org/2908143003 > Cr-Commit-Position: refs/heads/master@{#18308} > Committed: https://chromium.googlesource.com/external/webrtc/+/6684fdce93ff25a837117cd7a811a6d86cbe4b20 TBR=kjellander@webrtc.org,magjed@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:4867 Review-Url: https://codereview.webrtc.org/2912773003 Cr-Commit-Position: refs/heads/master@{#18320}
2017-05-30 01:50:35 -07:00
sources = common_objc_headers
public_headers = common_objc_headers
ldflags = [
"-all_load",
"-install_name",
"@rpath/$output_name.framework/$output_name",
]
deps = [
":audio_objc",
":base_objc",
":default_codec_factory_objc",
":metal_objc",
":native_api",
":native_video",
":peerconnectionfactory_base_objc",
":videocapture_objc",
":videocodec_objc",
":videotoolbox_objc",
]
if (rtc_ios_macos_use_opengl_rendering) {
deps += [ ":opengl_ui_objc" ]
}
if (!build_with_chromium) {
deps += [
":callback_logger_objc",
":file_logger_objc",
]
}
frameworks = [
"AVFoundation.framework",
"CoreGraphics.framework",
"CoreMedia.framework",
]
configs = [
"..:common_objc",
":used_from_extension",
]
public_configs = [ ":common_config_objc" ]
}
bundle_data("ios_framework_bundle") {
deps = [ "../sdk:framework_objc" ]
sources = [ "$root_build_dir/WebRTC.framework" ]
outputs = [ "{{bundle_resources_dir}}/Frameworks/{{source_file_part}}" ]
}
}
if (is_mac) {
apple_framework_bundle_with_umbrella_header("mac_framework_objc") {
info_plist = "objc/Info.plist"
output_name = "WebRTC"
sources = [
"objc/api/peerconnection/RTCAudioSource.h",
"objc/api/peerconnection/RTCAudioTrack.h",
"objc/api/peerconnection/RTCCertificate.h",
"objc/api/peerconnection/RTCConfiguration.h",
"objc/api/peerconnection/RTCCryptoOptions.h",
"objc/api/peerconnection/RTCDataChannel.h",
"objc/api/peerconnection/RTCDataChannelConfiguration.h",
"objc/api/peerconnection/RTCDtmfSender.h",
"objc/api/peerconnection/RTCFieldTrials.h",
"objc/api/peerconnection/RTCIceCandidate.h",
"objc/api/peerconnection/RTCIceCandidateErrorEvent.h",
"objc/api/peerconnection/RTCIceServer.h",
"objc/api/peerconnection/RTCLegacyStatsReport.h",
"objc/api/peerconnection/RTCMediaConstraints.h",
"objc/api/peerconnection/RTCMediaSource.h",
"objc/api/peerconnection/RTCMediaStream.h",
"objc/api/peerconnection/RTCMediaStreamTrack.h",
"objc/api/peerconnection/RTCMetrics.h",
"objc/api/peerconnection/RTCMetricsSampleInfo.h",
"objc/api/peerconnection/RTCPeerConnection.h",
"objc/api/peerconnection/RTCPeerConnectionFactory.h",
"objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h",
"objc/api/peerconnection/RTCRtcpParameters.h",
"objc/api/peerconnection/RTCRtpCodecParameters.h",
"objc/api/peerconnection/RTCRtpEncodingParameters.h",
"objc/api/peerconnection/RTCRtpHeaderExtension.h",
"objc/api/peerconnection/RTCRtpParameters.h",
"objc/api/peerconnection/RTCRtpReceiver.h",
"objc/api/peerconnection/RTCRtpSender.h",
"objc/api/peerconnection/RTCRtpTransceiver.h",
"objc/api/peerconnection/RTCSSLAdapter.h",
"objc/api/peerconnection/RTCSessionDescription.h",
"objc/api/peerconnection/RTCStatisticsReport.h",
"objc/api/peerconnection/RTCTracing.h",
"objc/api/peerconnection/RTCVideoSource.h",
"objc/api/peerconnection/RTCVideoTrack.h",
"objc/api/video_codec/RTCVideoDecoderAV1.h",
"objc/api/video_codec/RTCVideoDecoderVP8.h",
"objc/api/video_codec/RTCVideoDecoderVP9.h",
"objc/api/video_codec/RTCVideoEncoderAV1.h",
"objc/api/video_codec/RTCVideoEncoderVP8.h",
"objc/api/video_codec/RTCVideoEncoderVP9.h",
"objc/api/video_frame_buffer/RTCNativeI420Buffer.h",
"objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.h",
"objc/base/RTCCodecSpecificInfo.h",
"objc/base/RTCEncodedImage.h",
"objc/base/RTCI420Buffer.h",
"objc/base/RTCLogging.h",
"objc/base/RTCMacros.h",
"objc/base/RTCMutableI420Buffer.h",
"objc/base/RTCMutableYUVPlanarBuffer.h",
"objc/base/RTCSSLCertificateVerifier.h",
"objc/base/RTCVideoCapturer.h",
"objc/base/RTCVideoCodecInfo.h",
"objc/base/RTCVideoDecoder.h",
"objc/base/RTCVideoDecoderFactory.h",
"objc/base/RTCVideoEncoder.h",
"objc/base/RTCVideoEncoderFactory.h",
"objc/base/RTCVideoEncoderQpThresholds.h",
"objc/base/RTCVideoEncoderSettings.h",
"objc/base/RTCVideoFrame.h",
"objc/base/RTCVideoFrameBuffer.h",
"objc/base/RTCVideoRenderer.h",
"objc/base/RTCYUVPlanarBuffer.h",
"objc/components/capturer/RTCCameraVideoCapturer.h",
"objc/components/capturer/RTCFileVideoCapturer.h",
"objc/components/renderer/metal/RTCMTLNSVideoView.h",
"objc/components/renderer/opengl/RTCNSGLVideoView.h",
"objc/components/renderer/opengl/RTCVideoViewShading.h",
"objc/components/video_codec/RTCCodecSpecificInfoH264.h",
"objc/components/video_codec/RTCDefaultVideoDecoderFactory.h",
"objc/components/video_codec/RTCDefaultVideoEncoderFactory.h",
"objc/components/video_codec/RTCH264ProfileLevelId.h",
"objc/components/video_codec/RTCVideoDecoderFactoryH264.h",
"objc/components/video_codec/RTCVideoDecoderH264.h",
"objc/components/video_codec/RTCVideoEncoderFactoryH264.h",
"objc/components/video_codec/RTCVideoEncoderH264.h",
"objc/components/video_frame_buffer/RTCCVPixelBuffer.h",
"objc/helpers/RTCDispatcher.h",
]
if (!build_with_chromium) {
sources += [
"objc/api/logging/RTCCallbackLogger.h",
"objc/api/peerconnection/RTCFileLogger.h",
]
}
deps = [
":base_objc",
":default_codec_factory_objc",
":native_api",
":native_video",
":opengl_ui_objc",
":peerconnectionfactory_base_objc",
":videocapture_objc",
":videocodec_objc",
":videotoolbox_objc",
]
if (!build_with_chromium) {
deps += [
":callback_logger_objc",
":file_logger_objc",
]
}
frameworks = [
"AVFoundation.framework",
"CoreGraphics.framework",
"CoreMedia.framework",
"OpenGL.framework",
]
configs = [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ]
}
bundle_data("mac_framework_bundle") {
deps = [ "../sdk:mac_framework_objc" ]
sources = [ "$root_build_dir/WebRTC.framework" ]
outputs = [ "{{bundle_contents_dir}}/Frameworks/{{source_file_part}}" ]
}
Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2911053002/ ) Reason for revert: Take three of relanding this after all internal issues have been resolved. Original issue's description: > Revert of Split iOS sdk in to separate targets (patchset #3 id:320001 of https://codereview.webrtc.org/2893843003/ ) > > Reason for revert: > Breaks downstream project. > > Original issue's description: > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2893593002/ ) > > > > Reason for revert: > > Take two of fixing downstream issues? > > > > Original issue's description: > > > Revert of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890733003/ ) > > > > > > Reason for revert: > > > Still problems with downstream projects > > > > > > Original issue's description: > > > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890513002/ ) > > > > > > > > Reason for revert: > > > > Fixing downstream breakages > > > > > > > > Original issue's description: > > > > > Revert of Split iOS sdk in to separate targets (patchset #13 id:280001 of https://codereview.webrtc.org/2862543002/ ) > > > > > > > > > > Reason for revert: > > > > > Breaking downstream projects. > > > > > > > > > > Original issue's description: > > > > > > 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} > > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/52c83fe7102f566cf35a7533092873d58b38f426 > > > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,kthelgason@webrtc.org > > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > > NOPRESUBMIT=true > > > > > NOTREECHECKS=true > > > > > NOTRY=true > > > > > BUG=webrtc:4867 > > > > > > > > > > Review-Url: https://codereview.webrtc.org/2890513002 > > > > > Cr-Commit-Position: refs/heads/master@{#18170} > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/9756238084707787f735e1294e896e462e459717 > > > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > NOPRESUBMIT=true > > > > NOTREECHECKS=true > > > > NOTRY=true > > > > BUG=webrtc:4867 > > > > > > > > Review-Url: https://codereview.webrtc.org/2890733003 > > > > Cr-Commit-Position: refs/heads/master@{#18174} > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/d51e042492bedd057bc0cac7828979d5c7369cea > > > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > NOPRESUBMIT=true > > > NOTREECHECKS=true > > > NOTRY=true > > > BUG=webrtc:4867 > > > > > > Review-Url: https://codereview.webrtc.org/2893593002 > > > Cr-Commit-Position: refs/heads/master@{#18182} > > > Committed: https://chromium.googlesource.com/external/webrtc/+/37144b214e2baf62ecb262ab878dde8c59cdd6a3 > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=webrtc:4867 > > > > Review-Url: https://codereview.webrtc.org/2893843003 > > Cr-Commit-Position: refs/heads/master@{#18303} > > Committed: https://chromium.googlesource.com/external/webrtc/+/580c3522d294c877adfe555048c675bd8d166657 > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,kthelgason@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:4867 > > Review-Url: https://codereview.webrtc.org/2911053002 > Cr-Commit-Position: refs/heads/master@{#18309} > Committed: https://chromium.googlesource.com/external/webrtc/+/af5c05540cc8208f682cafe88c5c16a505479196 TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,mbonadei@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:4867 Review-Url: https://codereview.webrtc.org/2913753003 Cr-Commit-Position: refs/heads/master@{#18319}
2017-05-30 01:48:47 -07:00
}
rtc_library("wrapped_native_codec_objc") {
sources = [
"objc/api/video_codec/RTCWrappedNativeVideoDecoder.h",
"objc/api/video_codec/RTCWrappedNativeVideoDecoder.mm",
"objc/api/video_codec/RTCWrappedNativeVideoEncoder.h",
"objc/api/video_codec/RTCWrappedNativeVideoEncoder.mm",
]
configs += [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ]
deps = [
":base_objc",
":helpers_objc",
"../api/video_codecs:video_codecs_api",
"../media:rtc_media_base",
]
}
# The native API is currently experimental and may change without notice.
rtc_library("native_api") {
visibility = [ "*" ]
allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
sources = [
"objc/native/api/network_monitor_factory.h",
"objc/native/api/network_monitor_factory.mm",
"objc/native/api/ssl_certificate_verifier.h",
"objc/native/api/ssl_certificate_verifier.mm",
"objc/native/api/video_capturer.h",
"objc/native/api/video_capturer.mm",
"objc/native/api/video_decoder_factory.h",
"objc/native/api/video_decoder_factory.mm",
"objc/native/api/video_encoder_factory.h",
"objc/native/api/video_encoder_factory.mm",
"objc/native/api/video_frame.h",
"objc/native/api/video_frame.mm",
"objc/native/api/video_frame_buffer.h",
"objc/native/api/video_frame_buffer.mm",
"objc/native/api/video_renderer.h",
"objc/native/api/video_renderer.mm",
]
configs += [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ]
deps = [
":base_objc",
":native_video",
":videoframebuffer_objc",
"../api:libjingle_peerconnection_api",
"../api:make_ref_counted",
"../api:media_stream_interface",
"../api:scoped_refptr",
"../api/video:video_frame",
"../api/video:video_rtp_headers",
"../api/video_codecs:video_codecs_api",
"../common_video",
"../rtc_base",
"../rtc_base:buffer",
"../rtc_base:logging",
Reland "Refactor rtc_base build targets." This is a reland of 69241a93fb14f6527a26d5c94dde879013012d2a Fix: The problem was related to NO_MAIN_THREAD_WRAPPING, which affects https://source.chromium.org/chromium/chromium/src/+/master:third_party/webrtc/rtc_base/thread.cc;l=257-263;drc=7acc2d9fe3a6e3c4d8881d2bdfc9b8968a724cd5. The original CL didn't attach the definition of the macro NO_MAIN_THREAD_WRAPPING when building for Chromium (which doesn't have to be related to //rtc_base anymore but to //rtc_base:threading). Original change's description: > Refactor rtc_base build targets. > > The "//rtc_base:rtc_base" build target has historically been one of the > biggest targets in the WebRTC build. Big targets are the main source of > circular dependencies and non-API types leakage. > > This CL is a step forward into splitting "//rtc_base:rtc_base" into > smaller targets (as originally started in 2018). > > The only non-automated changes are (like re-wiring the build system): > * The creation of //rtc_base/async_resolver.{h,cc} which allows to > break a circular dependency (is has been extracted from > //rtc_base/net_helpers.{h,cc}). > * The creation of //rtc_base/internal/default_socket_server.{h,cc} to > break another circular dependency. > > Bug: webrtc:9987 > Change-Id: I0c8f5e7efe2c8fd8e6bffa0d6dd2dd494cf3df02 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196903 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#32941} Bug: webrtc:9987 Change-Id: I7cdf49d2aac8357f1f50f90010bf2c2f62fa19f6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202021 Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33001}
2021-01-15 10:41:01 +01:00
"../rtc_base:threading",
]
if (is_ios) {
deps += [ ":native_network_monitor" ]
}
absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
}
if (is_ios) {
rtc_library("native_network_monitor") {
visibility = [ "*" ]
sources = [
"objc/native/src/objc_network_monitor.h",
"objc/native/src/objc_network_monitor.mm",
]
deps = [
":network_monitor_objc",
":network_monitor_observer",
"../api:field_trials_view",
"../api:sequence_checker",
"../api/task_queue:pending_task_safety_flag",
"../rtc_base",
"../rtc_base:logging",
"../rtc_base:macromagic",
"../rtc_base:stringutils",
Reland "Refactor rtc_base build targets." This is a reland of 69241a93fb14f6527a26d5c94dde879013012d2a Fix: The problem was related to NO_MAIN_THREAD_WRAPPING, which affects https://source.chromium.org/chromium/chromium/src/+/master:third_party/webrtc/rtc_base/thread.cc;l=257-263;drc=7acc2d9fe3a6e3c4d8881d2bdfc9b8968a724cd5. The original CL didn't attach the definition of the macro NO_MAIN_THREAD_WRAPPING when building for Chromium (which doesn't have to be related to //rtc_base anymore but to //rtc_base:threading). Original change's description: > Refactor rtc_base build targets. > > The "//rtc_base:rtc_base" build target has historically been one of the > biggest targets in the WebRTC build. Big targets are the main source of > circular dependencies and non-API types leakage. > > This CL is a step forward into splitting "//rtc_base:rtc_base" into > smaller targets (as originally started in 2018). > > The only non-automated changes are (like re-wiring the build system): > * The creation of //rtc_base/async_resolver.{h,cc} which allows to > break a circular dependency (is has been extracted from > //rtc_base/net_helpers.{h,cc}). > * The creation of //rtc_base/internal/default_socket_server.{h,cc} to > break another circular dependency. > > Bug: webrtc:9987 > Change-Id: I0c8f5e7efe2c8fd8e6bffa0d6dd2dd494cf3df02 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196903 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#32941} Bug: webrtc:9987 Change-Id: I7cdf49d2aac8357f1f50f90010bf2c2f62fa19f6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202021 Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33001}
2021-01-15 10:41:01 +01:00
"../rtc_base:threading",
]
absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}
}
rtc_library("native_video") {
sources = [
"objc/native/src/objc_frame_buffer.h",
"objc/native/src/objc_frame_buffer.mm",
"objc/native/src/objc_video_decoder_factory.h",
"objc/native/src/objc_video_decoder_factory.mm",
"objc/native/src/objc_video_encoder_factory.h",
"objc/native/src/objc_video_encoder_factory.mm",
"objc/native/src/objc_video_frame.h",
"objc/native/src/objc_video_frame.mm",
"objc/native/src/objc_video_renderer.h",
"objc/native/src/objc_video_renderer.mm",
"objc/native/src/objc_video_track_source.h",
"objc/native/src/objc_video_track_source.mm",
]
configs += [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ]
deps = [
":base_native_additions_objc",
":base_objc",
":helpers_objc",
":videocodec_objc",
":videoframebuffer_objc",
":vpx_codec_constants",
":wrapped_native_codec_objc",
"../api:make_ref_counted",
"../api/video:video_frame",
"../api/video:video_rtp_headers",
"../api/video_codecs:video_codecs_api",
"../common_video",
"../media:rtc_audio_video",
"../media:rtc_media_base",
"../modules/video_coding:video_codec_interface",
"../rtc_base",
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:timestamp_aligner",
"../rtc_base:timeutils",
]
}
rtc_library("video_toolbox_cc") {
visibility = [
Revert "Reland "Switch from "rtc_ios_xctest_test" to "rtc_test"."" This reverts commit 60c25a303fac85dccb2ccdd9e8d6d71be13b7541. Reason for revert: Breaks downstream iOS testers. From an offline discussion, the GN argument is not needed and only the 3 xctest needs the behavior of that argument. So I am reverting this one and preparing 2 CLs to properly fix. Original change's description: > Reland "Switch from "rtc_ios_xctest_test" to "rtc_test"." > > This is a reland of 7a73c772e21983857e46cb4fcedc6cfa3f42c03e > > The change to fix the downstream issue is just the switch from > "test" to "rtc_test" which is a GN template that expands to > "test". > > Original change's description: > > Switch from "rtc_ios_xctest_test" to "test". > > > > Using the "test" GN template instead of the "ios_xctest_test" one we > > will get iOS support for isolates via MB and GN for free, making it > > easier to migrate the iOS recipe and fix bugs.webrtc.org/11604. > > > > Bug: webrtc:11881 > > Change-Id: I72b90f8494c473fa567e6296caf7a771e4caba92 > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/182680 > > Reviewed-by: Dirk Pranke <dpranke@google.com> > > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#32064} > > Bug: webrtc:11881 > Change-Id: Ia5338859f4e893b9f19bcca6b26b8cf66d5984e8 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183766 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Dirk Pranke <dpranke@google.com> > Cr-Commit-Position: refs/heads/master@{#32075} TBR=mbonadei@webrtc.org,dpranke@google.com,jeffyoon@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: webrtc:11881, webrtc:11937 Change-Id: Ie6eea6b2a8ba5c46af40b115c6db4fd0a38a25b0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/184340 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32112}
2020-09-16 07:22:57 +00:00
":sdk_unittests_sources",
":videotoolbox_objc",
]
sources = [
"objc/components/video_codec/helpers.cc",
"objc/components/video_codec/helpers.h",
"objc/components/video_codec/nalu_rewriter.cc",
"objc/components/video_codec/nalu_rewriter.h",
]
deps = [
"../common_video",
"../modules/video_coding:webrtc_h264",
"../rtc_base:buffer",
"../rtc_base:checks",
"../rtc_base:logging",
]
}
rtc_library("videotoolbox_objc") {
visibility = [ "*" ]
allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
sources = [
"objc/components/video_codec/RTCVideoDecoderFactoryH264.h",
"objc/components/video_codec/RTCVideoDecoderFactoryH264.m",
"objc/components/video_codec/RTCVideoDecoderH264.h",
"objc/components/video_codec/RTCVideoDecoderH264.mm",
"objc/components/video_codec/RTCVideoEncoderFactoryH264.h",
"objc/components/video_codec/RTCVideoEncoderFactoryH264.m",
"objc/components/video_codec/RTCVideoEncoderH264.h",
"objc/components/video_codec/RTCVideoEncoderH264.mm",
Reland of Add a webrtc{en,de}coderfactory implementation for VideoToolbox (patchset #1 id:1 of https://codereview.webrtc.org/2483273002/ ) Reason for revert: Fix gyp build Original issue's description: > Revert of Add a webrtc{en,de}coderfactory implementation for VideoToolbox (patchset #2 id:20001 of https://codereview.webrtc.org/2463313002/ ) > > Reason for revert: > Broke dependent project because the .gn changes weren't accompanied by corresponding .gyp changes. > > Original issue's description: > > Add a webrtc{en,de}coderfactory implementation for VideoToolbox > > > > This CL removes the coupling of the VideoToolbox h264 implementation > > to the generic h264 code. The files have been moved into sdb/obj/Framework > > and all dependency on them has been removed from the rest of WebRTC. > > We now add it as an external encoder via a factory supplied to the > > CreatePeerConnectionFactory call. This also brings the iOS implementation > > closer to what we do on Android for MediaCodec. > > > > BUG=webrtc:6619 > > > > Committed: https://crrev.com/6a5047dad31f14f53dd9f8bc1ecde19e1dede2e4 > > Cr-Commit-Position: refs/heads/master@{#14953} > > TBR=magjed@webrtc.org,stefan@webrtc.org,kthelgason@webrtc.org > BUG=webrtc:6619 > > Committed: https://crrev.com/d69ad84420d9c0e1c11450c352f6c92e7c9583f1 > Cr-Commit-Position: refs/heads/master@{#14985} R=magjed@webrtc.org TBR=kwiberg@webrtc.org, magjed@webrtc.org, stefan@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:6619 Review URL: https://codereview.webrtc.org/2487723004 . Cr-Commit-Position: refs/heads/master@{#14992}
2016-11-09 10:43:26 +01:00
]
configs += [
"..:common_objc",
":used_from_extension",
]
if (is_ios && rtc_apprtcmobile_broadcast_extension) {
defines = [ "RTC_APPRTCMOBILE_BROADCAST_EXTENSION" ]
}
deps = [
":base_native_additions_objc",
":base_objc",
":helpers_objc",
":video_toolbox_cc",
":videocodec_objc",
":videoframebuffer_objc",
"../api/video_codecs:video_codecs_api",
"../common_video",
"../modules/video_coding:video_codec_interface",
"../rtc_base:buffer",
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:timeutils",
"//third_party/libyuv",
]
frameworks = [
"CoreFoundation.framework",
"CoreMedia.framework",
"CoreVideo.framework",
"VideoToolbox.framework",
]
Reland of Add a webrtc{en,de}coderfactory implementation for VideoToolbox (patchset #1 id:1 of https://codereview.webrtc.org/2483273002/ ) Reason for revert: Fix gyp build Original issue's description: > Revert of Add a webrtc{en,de}coderfactory implementation for VideoToolbox (patchset #2 id:20001 of https://codereview.webrtc.org/2463313002/ ) > > Reason for revert: > Broke dependent project because the .gn changes weren't accompanied by corresponding .gyp changes. > > Original issue's description: > > Add a webrtc{en,de}coderfactory implementation for VideoToolbox > > > > This CL removes the coupling of the VideoToolbox h264 implementation > > to the generic h264 code. The files have been moved into sdb/obj/Framework > > and all dependency on them has been removed from the rest of WebRTC. > > We now add it as an external encoder via a factory supplied to the > > CreatePeerConnectionFactory call. This also brings the iOS implementation > > closer to what we do on Android for MediaCodec. > > > > BUG=webrtc:6619 > > > > Committed: https://crrev.com/6a5047dad31f14f53dd9f8bc1ecde19e1dede2e4 > > Cr-Commit-Position: refs/heads/master@{#14953} > > TBR=magjed@webrtc.org,stefan@webrtc.org,kthelgason@webrtc.org > BUG=webrtc:6619 > > Committed: https://crrev.com/d69ad84420d9c0e1c11450c352f6c92e7c9583f1 > Cr-Commit-Position: refs/heads/master@{#14985} R=magjed@webrtc.org TBR=kwiberg@webrtc.org, magjed@webrtc.org, stefan@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:6619 Review URL: https://codereview.webrtc.org/2487723004 . Cr-Commit-Position: refs/heads/master@{#14992}
2016-11-09 10:43:26 +01:00
}
}
}