diff --git a/media/BUILD.gn b/media/BUILD.gn index 227133913f..fe892179dc 100644 --- a/media/BUILD.gn +++ b/media/BUILD.gn @@ -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", diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn index 59e8eb9221..04098ed6f4 100644 --- a/modules/video_coding/BUILD.gn +++ b/modules/video_coding/BUILD.gn @@ -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", + "../..:typedefs", + "../..: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", + ] + 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", diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn index 95ba7563dd..89873411a5 100644 --- a/sdk/BUILD.gn +++ b/sdk/BUILD.gn @@ -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", diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn index 1e98755845..117b4faa74 100644 --- a/sdk/android/BUILD.gn +++ b/sdk/android/BUILD.gn @@ -250,6 +250,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", diff --git a/video/BUILD.gn b/video/BUILD.gn index 83d56874e4..97bac645b6 100644 --- a/video/BUILD.gn +++ b/video/BUILD.gn @@ -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",