VideoStreamDecoder skeleton.

Initial commit for the public VideoStreamDecoder. To get some initial feedback
about structuring within WebRTC this CL only contains the skeleton of the class.

Bug: webrtc:8909
Change-Id: I076bb45dd30a450b3f7ef239e69ff872dc34dcf2
Reviewed-on: https://webrtc-review.googlesource.com/62080
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22560}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index ec71784..b7ff32b 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -250,6 +250,39 @@
   ]
 }
 
+rtc_source_set("video_stream_decoder") {
+  visibility = [ "*" ]
+  sources = [
+    "video/video_stream_decoder.h",
+  ]
+
+  deps = [
+    ":encoded_frame_api",
+    ":optional",
+    ":video_frame_api",
+    "../api/video_codecs:video_codecs_api",
+  ]
+}
+
+rtc_source_set("video_stream_decoder_create") {
+  visibility = [ "*" ]
+  sources = [
+    "video/video_stream_decoder_create.cc",
+    "video/video_stream_decoder_create.h",
+  ]
+
+  deps = [
+    ":video_stream_decoder",
+    "../rtc_base:rtc_base_approved",
+    "../video:video_stream_decoder_impl",
+  ]
+
+  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" ]
+  }
+}
+
 rtc_source_set("video_frame_api_i420") {
   visibility = [ "*" ]
   sources = [