Reland "Reland "Reland "Put internal video codec factories into separate target"""
This is a reland of 727b7d0470c0515397d21698ee089197c31cb5ff
Original change's description:
> Reland "Reland "Put internal video codec factories into separate target""
>
> This is a reland of 0efd1e8b7e69900a6a516a176f1ab69d0e6b8a26
> Original change's description:
> > Reland "Put internal video codec factories into separate target"
> >
> > This is a reland of 51698aefd4925f2dfa0310a321f836d433fa9258
> > Original change's description:
> > > 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}
> >
> > Bug: webrtc:7925
> > Change-Id: I105287fd41ec3ee5bd964b94efcc9c7b3ecdb842
> > Reviewed-on: https://webrtc-review.googlesource.com/35261
> > Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> > Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#21389}
>
> Bug: webrtc:7925
> Change-Id: Id1c7f270676e9e4ca57ca8aa1305cf5554290754
> Reviewed-on: https://webrtc-review.googlesource.com/35501
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21464}
Bug: webrtc:7925
Change-Id: I0b3b5e03d29dadbcbe13cb7ce5369299bb6c0454
Reviewed-on: https://webrtc-review.googlesource.com/37000
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21513}
diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index 5c4dbc7..16c9fae 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -674,6 +674,7 @@
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../common_video",
+ "../media:rtc_internal_video_codecs",
"../media:rtc_media",
"../media:rtc_media_base",
"../modules/audio_device:audio_device",
diff --git a/media/BUILD.gn b/media/BUILD.gn
index fbf16b8..c702b59 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -125,35 +125,28 @@
}
}
-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",
@@ -170,21 +163,84 @@
"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",
"engine/webrtcvoiceengine.cc",
"engine/webrtcvoiceengine.h",
+
+ # TODO(bugs.webrtc.org/7925) Remove these when clients are updated
+ "engine/convert_legacy_video_factory.h",
+ "engine/webrtcvideodecoderfactory.h",
+ "engine/webrtcvideoencoderfactory.h",
]
configs += [ ":rtc_media_warnings_config" ]
@@ -229,6 +285,8 @@
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",
@@ -236,30 +294,24 @@
"../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",
]
}
@@ -379,6 +431,7 @@
}
deps += [
+ ":rtc_internal_video_codecs",
":rtc_media",
":rtc_media_base",
"..:webrtc_common",
@@ -438,6 +491,7 @@
defines = []
deps = [
+ ":rtc_constants",
"../api:video_frame_api_i420",
"../modules/audio_processing:mocks",
"../pc:rtc_pc",
@@ -524,6 +578,7 @@
}
deps += [
+ ":rtc_internal_video_codecs",
":rtc_media",
":rtc_media_base",
":rtc_media_tests_utils",
@@ -541,6 +596,7 @@
"../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 59e8eb9..fa8bc55 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -95,6 +95,7 @@
":webrtc_i420",
":webrtc_stereo",
":webrtc_vp8",
+ ":webrtc_vp8_helpers",
":webrtc_vp9",
"..:module_api",
"..:module_api_public",
@@ -279,6 +280,31 @@
]
}
+# This target includes VP8 files that may be used for any VP8 codec, internal SW or external HW.
+rtc_source_set("webrtc_vp8_helpers") {
+ sources = [
+ "codecs/vp8/include/vp8_common_types.h",
+ "codecs/vp8/screenshare_layers.h",
+ "codecs/vp8/simulcast_rate_allocator.h",
+ "codecs/vp8/temporal_layers.h",
+ ]
+
+ deps = [
+ ":video_coding_utility",
+ "..:module_api",
+ "../..:webrtc_common",
+ "../../:typedefs",
+ "../../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",
+ ]
+}
+
+# This target includes the internal SW codec.
rtc_static_library("webrtc_vp8") {
sources = [
"codecs/vp8/default_temporal_layers.cc",
@@ -286,11 +312,8 @@
"codecs/vp8/include/vp8.h",
"codecs/vp8/include/vp8_common_types.h",
"codecs/vp8/screenshare_layers.cc",
- "codecs/vp8/screenshare_layers.h",
"codecs/vp8/simulcast_rate_allocator.cc",
- "codecs/vp8/simulcast_rate_allocator.h",
"codecs/vp8/temporal_layers.cc",
- "codecs/vp8/temporal_layers.h",
"codecs/vp8/vp8_impl.cc",
"codecs/vp8/vp8_impl.h",
]
@@ -305,17 +328,16 @@
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 +425,7 @@
":mock_headers",
":video_coding",
":webrtc_vp8",
+ ":webrtc_vp8_helpers",
"../../api:video_frame_api",
"../../api:video_frame_api_i420",
"../../common_video:common_video",
@@ -438,6 +461,7 @@
":video_coding",
":video_coding_utility",
":webrtc_vp8",
+ ":webrtc_vp8_helpers",
"../..:webrtc_common",
"../../:typedefs",
"../../api:video_frame_api",
@@ -494,6 +518,7 @@
":webrtc_h264",
":webrtc_stereo",
":webrtc_vp8",
+ ":webrtc_vp8_helpers",
":webrtc_vp9",
"../..:webrtc_common",
"../../api:mock_video_codec_factory",
@@ -502,6 +527,7 @@
"../../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 +632,7 @@
":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 6f48025..b62dd9b 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -840,6 +840,7 @@
"../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 5e46b2a..302a43d 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -250,6 +250,7 @@
"../../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 3918591..ab49d11 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -85,7 +85,7 @@
"../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",
@@ -108,6 +108,7 @@
deps = [
"../logging:rtc_event_log_api",
"../media:rtc_audio_video",
+ "../media:rtc_internal_video_codecs",
"../modules/audio_mixer:audio_mixer_impl",
"../modules/rtp_rtcp",
"../modules/video_coding:webrtc_h264",
@@ -296,6 +297,7 @@
"../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",
@@ -309,6 +311,7 @@
"../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",