Mark built-in software video codecs as poisonous.
The goal is to make these injectable, and only VP8 and VP9 specific
targets should depend on them.
Bug: webrtc:7925
Change-Id: Ie9239a54d197fe70c93de0582797211fef6997a2
Reviewed-on: https://webrtc-review.googlesource.com/72082
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23021}
diff --git a/BUILD.gn b/BUILD.gn
index 99e2006..c1ccb5c 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -597,3 +597,6 @@
#
group("poison_audio_codecs") {
}
+
+group("poison_software_video_codecs") {
+}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 94ed84e..3e604f0 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -268,7 +268,10 @@
rtc_source_set("video_stream_decoder_create") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
sources = [
"video/video_stream_decoder_create.cc",
"video/video_stream_decoder_create.h",
diff --git a/media/BUILD.gn b/media/BUILD.gn
index 67d6328..fe6b4c0 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -156,7 +156,10 @@
rtc_static_library("rtc_internal_video_codecs") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs",
+ ]
defines = []
libs = []
deps = [
@@ -255,7 +258,10 @@
rtc_static_library("rtc_audio_video") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
defines = []
libs = []
deps = [
@@ -423,7 +429,10 @@
rtc_source_set("rtc_media") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
deps = [
":rtc_audio_video",
":rtc_data",
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index 555a3b4..a880109 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -38,7 +38,10 @@
rtc_static_library("video_coding") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
deps = []
sources = [
@@ -406,6 +409,7 @@
# This target includes the internal SW codec.
rtc_static_library("webrtc_vp8") {
visibility = [ "*" ]
+ poisonous = [ "software_video_codecs" ]
sources = [
"codecs/vp8/include/vp8.h",
"codecs/vp8/include/vp8_common_types.h",
@@ -474,6 +478,7 @@
rtc_static_library("webrtc_vp9") {
visibility = [ "*" ]
+ poisonous = [ "software_video_codecs" ]
if (rtc_libvpx_build_vp9) {
sources = [
"codecs/vp9/include/vp9.h",
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 9d3f147..23c5ef4 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -103,7 +103,10 @@
rtc_source_set("rtc_pc") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
deps = [
":rtc_pc_base",
"../media:rtc_audio_video",
@@ -253,7 +256,10 @@
rtc_source_set("libjingle_peerconnection") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
deps = [
":create_pc_factory",
":peerconnection",
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 00f94a2..ec69c82 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -229,7 +229,10 @@
rtc_static_library("ui_objc") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
if (is_ios) {
sources = [
"objc/Framework/Classes/UI/RTCCameraPreviewView.m",
@@ -256,7 +259,10 @@
if (rtc_use_metal_rendering) {
rtc_static_library("metal_objc") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
sources = [
"objc/Framework/Classes/Metal/RTCMTLI420Renderer.h",
"objc/Framework/Classes/Metal/RTCMTLI420Renderer.mm",
@@ -318,7 +324,10 @@
rtc_static_library("videocapture_objc") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
sources = [
"objc/Framework/Classes/PeerConnection/RTCCameraVideoCapturer.m",
"objc/Framework/Headers/WebRTC/RTCCameraVideoCapturer.h",
@@ -402,7 +411,10 @@
rtc_static_library("vp8") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs",
+ ]
sources = [
"objc/Framework/Classes/PeerConnection/RTCVideoCodecVP8.mm",
"objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h",
@@ -424,7 +436,10 @@
rtc_static_library("vp9") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs",
+ ]
sources = [
"objc/Framework/Classes/PeerConnection/RTCVideoCodecVP9.mm",
"objc/Framework/Headers/WebRTC/RTCVideoDecoderVP9.h",
@@ -453,7 +468,10 @@
# The applications which only use WebRTC DataChannel can depend on this.
rtc_static_library("peerconnectionfactory_no_media_objc") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
defines = [ "HAVE_NO_MEDIA" ]
sources = [
@@ -508,7 +526,10 @@
rtc_static_library("videorendereradapter_objc") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
sources = [
"objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter+Private.h",
"objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.h",
@@ -546,7 +567,10 @@
rtc_static_library("peerconnectionfactory_base_objc") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
sources = [
"objc/Framework/Classes/PeerConnection/RTCAudioSource+Private.h",
"objc/Framework/Classes/PeerConnection/RTCAudioSource.mm",
@@ -967,7 +991,10 @@
# The native API is currently experimental and may change without notice.
rtc_static_library("native_api") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
sources = [
"objc/Framework/Native/api/video_capturer.h",
"objc/Framework/Native/api/video_capturer.mm",
@@ -1077,7 +1104,10 @@
rtc_static_library("videotoolbox_objc") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
sources = [
"objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm",
"objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm",
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index 1d9bb86..5717036 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -607,7 +607,10 @@
rtc_static_library("libjingle_peerconnection_jni") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
public_deps = [
":audio_jni",
":base_jni",
@@ -1174,7 +1177,10 @@
# objects.
rtc_static_library("native_api_codecs") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
sources = [
"native_api/codecs/wrapper.cc",
"native_api/codecs/wrapper.h",
@@ -1219,7 +1225,10 @@
# video interfaces from their Java equivalents.
rtc_static_library("native_api_video") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
sources = [
"native_api/video/wrapper.cc",
"native_api/video/wrapper.h",
diff --git a/video/BUILD.gn b/video/BUILD.gn
index 1030439..978d46e 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -109,7 +109,10 @@
rtc_source_set("video_stream_decoder_impl") {
visibility = [ "*" ]
- allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
+ allow_poison = [
+ "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
+ "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove.
+ ]
sources = [
"video_stream_decoder_impl.cc",
"video_stream_decoder_impl.h",
diff --git a/webrtc.gni b/webrtc.gni
index 20a5727..7740f84 100644
--- a/webrtc.gni
+++ b/webrtc.gni
@@ -309,6 +309,9 @@
all_poison_types = [
# Encoders and decoders for specific audio codecs such as Opus and iSAC.
"audio_codecs",
+
+ # Software video codecs (VP8 and VP9 through libvpx).
+ "software_video_codecs",
]
template("rtc_test") {