Add StereoCodecAdapter classes
This CL is the step 1 for adding alpha channel support over the wire in webrtc.
- Add the footprint for adapter classes that wraps actual codecs.
- This CL does not add a webrtc::VideoFrame container that can carry alpha to
make the CL shorter for an easier review. Therefore, it exercises a code path
for when we receive no alpha input, just regular I420 frames.
- Unittest sends a video frame for encode/decode through these adapters and
checks the output PSNR.
- See https://webrtc-review.googlesource.com/c/src/+/7800 for the experimental
CL that gives an idea about how it will come together.
Design Doc: https://goo.gl/sFeSUT
Bug: webrtc:7671
Change-Id: I9d3be13647a0a958feceb8d7a9aa93852fc6a1fa
Reviewed-on: https://webrtc-review.googlesource.com/11841
Commit-Queue: Emircan Uysaler <emircan@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Niklas Enbom <niklas.enbom@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20490}
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index eb0a419..d1e3311 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -92,6 +92,7 @@
":video_coding_utility",
":webrtc_h264",
":webrtc_i420",
+ ":webrtc_stereo",
":webrtc_vp8",
":webrtc_vp9",
"..:module_api",
@@ -233,6 +234,30 @@
]
}
+rtc_static_library("webrtc_stereo") {
+ sources = [
+ "codecs/stereo/include/stereo_decoder_adapter.h",
+ "codecs/stereo/include/stereo_encoder_adapter.h",
+ "codecs/stereo/stereo_decoder_adapter.cc",
+ "codecs/stereo/stereo_encoder_adapter.cc",
+ ]
+
+ 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:common_video",
+ "../../rtc_base:rtc_base_approved",
+ "../../system_wrappers",
+ ]
+}
+
rtc_static_library("webrtc_vp8") {
sources = [
"codecs/vp8/default_temporal_layers.cc",
@@ -423,6 +448,7 @@
}
sources = [
"codecs/h264/test/h264_impl_unittest.cc",
+ "codecs/stereo/test/stereo_adapter_unittest.cc",
"codecs/test/videoprocessor_integrationtest.cc",
"codecs/test/videoprocessor_integrationtest.h",
"codecs/test/videoprocessor_integrationtest_libvpx.cc",
@@ -437,9 +463,11 @@
":video_coding",
":video_coding_utility",
":webrtc_h264",
+ ":webrtc_stereo",
":webrtc_vp8",
":webrtc_vp9",
"../..:webrtc_common",
+ "../../api:mock_video_codec_factory",
"../../api:optional",
"../../api:video_frame_api",
"../../common_video",