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",