Put internal video codec factories into separate target

The purpose is to start splitting out the dependencies to the built-in
SW video codecs, so that clients can decide to not depend on them and
get a reduction in binary size.

Replaces https://webrtc-review.googlesource.com/c/src/+/29101

Bug: webrtc:7925
Change-Id: I46b95aaf42ead70ba78776de60600b8a66a1fe0c
Reviewed-on: https://webrtc-review.googlesource.com/33420
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21381}
This commit is contained in:
Anders Carlsson 2017-12-20 13:57:29 +01:00 committed by Commit Bot
parent 1212f1e227
commit 51698aefd4
5 changed files with 131 additions and 40 deletions

View File

@ -126,35 +126,28 @@ rtc_static_library("rtc_media_base") {
}
}
rtc_static_library("rtc_audio_video") {
rtc_static_library("rtc_constants") {
defines = []
libs = []
deps = [
"../api:video_frame_api_i420",
"../call:call_interfaces",
"../modules/video_coding:video_coding_utility",
"../rtc_base:checks",
"../rtc_base:stringutils",
"../system_wrappers:field_trial_api",
"../system_wrappers:metrics_api",
"//third_party/libyuv",
]
deps = []
sources = [
"engine/adm_helpers.cc",
"engine/adm_helpers.h",
"engine/apm_helpers.cc",
"engine/apm_helpers.h",
"engine/constants.cc",
"engine/constants.h",
]
}
rtc_static_library("rtc_internal_video_codecs") {
defines = []
libs = []
deps = []
sources = [
"engine/convert_legacy_video_factory.cc",
"engine/convert_legacy_video_factory.h",
"engine/internaldecoderfactory.cc",
"engine/internaldecoderfactory.h",
"engine/internalencoderfactory.cc",
"engine/internalencoderfactory.h",
"engine/nullwebrtcvideoengine.h",
"engine/payload_type_mapper.cc",
"engine/payload_type_mapper.h",
"engine/scopedvideodecoder.cc",
"engine/scopedvideodecoder.h",
"engine/scopedvideoencoder.cc",
@ -171,16 +164,74 @@ rtc_static_library("rtc_audio_video") {
"engine/videoencodersoftwarefallbackwrapper.h",
"engine/vp8_encoder_simulcast_proxy.cc",
"engine/vp8_encoder_simulcast_proxy.h",
"engine/webrtcvideodecoderfactory.cc",
"engine/webrtcvideodecoderfactory.h",
"engine/webrtcvideoencoderfactory.cc",
"engine/webrtcvideoencoderfactory.h",
]
configs += [ ":rtc_media_warnings_config" ]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
if (is_win) {
cflags = [
"/wd4245", # conversion from "int" to "size_t", signed/unsigned mismatch.
"/wd4267", # conversion from "size_t" to "int", possible loss of data.
"/wd4389", # signed/unsigned mismatch.
]
}
include_dirs = []
public_configs = []
deps += [
":rtc_constants",
":rtc_media_base",
"..:webrtc_common",
"../api:video_frame_api_i420",
"../api/video_codecs:video_codecs_api",
"../call:call_interfaces",
"../call:video_stream_api",
"../modules/video_coding:webrtc_h264",
"../modules/video_coding:webrtc_stereo",
"../modules/video_coding:webrtc_vp8",
"../modules/video_coding:webrtc_vp8_helpers",
"../modules/video_coding:webrtc_vp9",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
"../rtc_base:sequenced_task_checker",
"../system_wrappers",
"../system_wrappers:field_trial_api",
"../system_wrappers:metrics_api",
"//third_party/libyuv",
]
}
rtc_static_library("rtc_audio_video") {
defines = []
libs = []
deps = [
"../rtc_base:checks",
]
sources = [
"engine/adm_helpers.cc",
"engine/adm_helpers.h",
"engine/apm_helpers.cc",
"engine/apm_helpers.h",
"engine/nullwebrtcvideoengine.h",
"engine/payload_type_mapper.cc",
"engine/payload_type_mapper.h",
"engine/webrtcmediaengine.cc",
"engine/webrtcmediaengine.h",
"engine/webrtcvideocapturer.cc",
"engine/webrtcvideocapturer.h",
"engine/webrtcvideocapturerfactory.cc",
"engine/webrtcvideocapturerfactory.h",
"engine/webrtcvideodecoderfactory.cc",
"engine/webrtcvideodecoderfactory.h",
"engine/webrtcvideoencoderfactory.cc",
"engine/webrtcvideoencoderfactory.h",
"engine/webrtcvideoengine.cc",
"engine/webrtcvideoengine.h",
"engine/webrtcvoe.h",
@ -230,6 +281,8 @@ rtc_static_library("rtc_audio_video") {
deps += [ "../modules/audio_processing/aec_dump:null_aec_dump_factory" ]
}
deps += [
":rtc_constants",
":rtc_internal_video_codecs",
":rtc_media_base",
"..:webrtc_common",
"../api:call_api",
@ -237,30 +290,24 @@ rtc_static_library("rtc_audio_video") {
"../api:optional",
"../api:transport_api",
"../api:video_frame_api",
"../api:video_frame_api_i420",
"../api/audio_codecs:audio_codecs_api",
"../api/video_codecs:video_codecs_api",
"../call",
"../call:call_interfaces",
"../call:video_stream_api",
"../common_video:common_video",
"../modules/audio_coding:rent_a_codec",
"../modules/audio_device:audio_device",
"../modules/audio_mixer:audio_mixer_impl",
"../modules/audio_processing:audio_processing",
"../modules/audio_processing/aec_dump",
"../modules/video_capture:video_capture_module",
"../modules/video_coding",
"../modules/video_coding:webrtc_h264",
"../modules/video_coding:webrtc_stereo",
"../modules/video_coding:webrtc_vp8",
"../modules/video_coding:webrtc_vp9",
"../p2p:rtc_p2p",
"../pc:rtc_pc_base",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../rtc_base:rtc_task_queue",
"../rtc_base:sequenced_task_checker",
"../rtc_base:stringutils",
"../system_wrappers",
"../video",
"../system_wrappers:field_trial_api",
"../system_wrappers:metrics_api",
"../voice_engine",
]
}
@ -378,6 +425,7 @@ if (rtc_include_tests) {
}
deps += [
":rtc_internal_video_codecs",
":rtc_media",
":rtc_media_base",
"..:webrtc_common",
@ -437,6 +485,7 @@ if (rtc_include_tests) {
defines = []
deps = [
":rtc_constants",
"../api:video_frame_api_i420",
"../pc:rtc_pc",
"../pc:rtc_pc_base",
@ -522,6 +571,7 @@ if (rtc_include_tests) {
}
deps += [
":rtc_internal_video_codecs",
":rtc_media",
":rtc_media_base",
":rtc_media_tests_utils",
@ -539,6 +589,7 @@ if (rtc_include_tests) {
"../modules/video_coding:simulcast_test_utility",
"../modules/video_coding:video_coding_utility",
"../modules/video_coding:webrtc_vp8",
"../modules/video_coding:webrtc_vp8_helpers",
"../p2p:p2p_test_utils",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",

View File

@ -95,6 +95,7 @@ rtc_static_library("video_coding") {
":webrtc_i420",
":webrtc_stereo",
":webrtc_vp8",
":webrtc_vp8_helpers",
":webrtc_vp9",
"..:module_api",
"..:module_api_public",
@ -279,11 +280,9 @@ rtc_static_library("webrtc_stereo") {
]
}
rtc_static_library("webrtc_vp8") {
# This target includes VP8 files that may be used for any VP8 codec, internal SW or external HW.
rtc_static_library("webrtc_vp8_helpers") {
sources = [
"codecs/vp8/default_temporal_layers.cc",
"codecs/vp8/default_temporal_layers.h",
"codecs/vp8/include/vp8.h",
"codecs/vp8/include/vp8_common_types.h",
"codecs/vp8/screenshare_layers.cc",
"codecs/vp8/screenshare_layers.h",
@ -291,6 +290,38 @@ rtc_static_library("webrtc_vp8") {
"codecs/vp8/simulcast_rate_allocator.h",
"codecs/vp8/temporal_layers.cc",
"codecs/vp8/temporal_layers.h",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
deps = [
":video_coding_utility",
"..:module_api",
"../..:webrtc_common",
"../../api/video_codecs:video_codecs_api",
"../../common_video",
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
"../../system_wrappers",
"../../system_wrappers:field_trial_api",
"../../system_wrappers:metrics_api",
"//:typedefs",
]
if (rtc_build_libvpx) {
deps += [ rtc_libvpx_dir ]
}
}
# This target includes the internal SW codec.
rtc_static_library("webrtc_vp8") {
sources = [
"codecs/vp8/default_temporal_layers.cc",
"codecs/vp8/default_temporal_layers.h",
"codecs/vp8/include/vp8.h",
"codecs/vp8/include/vp8_common_types.h",
"codecs/vp8/vp8_impl.cc",
"codecs/vp8/vp8_impl.h",
]
@ -305,17 +336,16 @@ rtc_static_library("webrtc_vp8") {
deps = [
":video_coding_utility",
":webrtc_vp8_helpers",
"..:module_api",
"../..:webrtc_common",
"../../:typedefs",
"../../api:optional",
"../../api:video_frame_api",
"../../api/video_codecs:video_codecs_api",
"../../common_video",
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:rtc_numerics",
"../../rtc_base:sequenced_task_checker",
"../../system_wrappers",
"../../system_wrappers:field_trial_api",
"../../system_wrappers:metrics_api",
@ -403,6 +433,7 @@ if (rtc_include_tests) {
":mock_headers",
":video_coding",
":webrtc_vp8",
":webrtc_vp8_helpers",
"../../api:video_frame_api",
"../../api:video_frame_api_i420",
"../../common_video:common_video",
@ -438,6 +469,7 @@ if (rtc_include_tests) {
":video_coding",
":video_coding_utility",
":webrtc_vp8",
":webrtc_vp8_helpers",
"../..:webrtc_common",
"../../:typedefs",
"../../api:video_frame_api",
@ -494,6 +526,7 @@ if (rtc_include_tests) {
":webrtc_h264",
":webrtc_stereo",
":webrtc_vp8",
":webrtc_vp8_helpers",
":webrtc_vp9",
"../..:webrtc_common",
"../../api:mock_video_codec_factory",
@ -502,6 +535,7 @@ if (rtc_include_tests) {
"../../api:video_frame_api_i420",
"../../common_video",
"../../media:rtc_audio_video",
"../../media:rtc_internal_video_codecs",
"../../media:rtc_media_base",
"../../rtc_base:checks",
"../../rtc_base:rtc_base",
@ -606,6 +640,7 @@ if (rtc_include_tests) {
":video_coding_utility",
":webrtc_h264",
":webrtc_vp8",
":webrtc_vp8_helpers",
":webrtc_vp9",
"..:module_api",
"../..:webrtc_common",

View File

@ -832,6 +832,7 @@ if (is_ios || is_mac) {
"../api:video_frame_api",
"../api/video_codecs:video_codecs_api",
"../common_video",
"../media:rtc_internal_video_codecs",
"../media:rtc_media",
"../media:rtc_media_base",
"../modules:module_api",

View File

@ -224,6 +224,7 @@ rtc_static_library("video_jni") {
"../../api/video_codecs:video_codecs_api",
"../../common_video:common_video",
"../../media:rtc_audio_video",
"../../media:rtc_internal_video_codecs",
"../../media:rtc_media_base",
"../../modules:module_api",
"../../modules/utility:utility",

View File

@ -84,7 +84,7 @@ rtc_static_library("video") {
"../modules/utility",
"../modules/video_coding",
"../modules/video_coding:video_coding_utility",
"../modules/video_coding:webrtc_vp8",
"../modules/video_coding:webrtc_vp8_helpers",
"../modules/video_processing",
"../rtc_base:rtc_base_approved",
"../rtc_base:rtc_numerics",
@ -109,6 +109,7 @@ if (rtc_include_tests) {
"../call:call_interfaces",
"../common_video",
"../logging:rtc_event_log_api",
"../media:rtc_internal_video_codecs",
"../media:rtc_media",
"../media:rtc_media_base",
"../modules/audio_mixer:audio_mixer_impl",
@ -281,6 +282,7 @@ if (rtc_include_tests) {
"../call:video_stream_api",
"../common_video",
"../logging:rtc_event_log_api",
"../media:rtc_internal_video_codecs",
"../media:rtc_media",
"../media:rtc_media_base",
"../media:rtc_media_tests_utils",
@ -294,6 +296,7 @@ if (rtc_include_tests) {
"../modules/video_coding:video_coding_utility",
"../modules/video_coding:webrtc_h264",
"../modules/video_coding:webrtc_vp8",
"../modules/video_coding:webrtc_vp8_helpers",
"../modules/video_coding:webrtc_vp9",
"../rtc_base:checks",
"../rtc_base:rate_limiter",