Always compile VP9 source files.

Instead of optionally compile VP9 source files based on the value of
the GN argument 'rtc_libvpx_build_vp9', this CL uses the preprocessor
macro RTC_ENABLE_VP9 to decide if VP9 related code needs to be compiled
or not.

Bug: None
Change-Id: I5c1b69d7ec35e8446181d98c912277d0ae8fdba2
Reviewed-on: https://webrtc-review.googlesource.com/c/111063
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25685}
diff --git a/modules/video_coding/codecs/vp9/vp9.cc b/modules/video_coding/codecs/vp9/vp9.cc
new file mode 100644
index 0000000..59cc667
--- /dev/null
+++ b/modules/video_coding/codecs/vp9/vp9.cc
@@ -0,0 +1,60 @@
+/*
+ *  Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "modules/video_coding/codecs/vp9/include/vp9.h"
+
+#include "absl/memory/memory.h"
+#include "api/video_codecs/sdp_video_format.h"
+#include "modules/video_coding/codecs/vp9/vp9_impl.h"
+#include "rtc_base/checks.h"
+
+namespace webrtc {
+
+std::vector<SdpVideoFormat> SupportedVP9Codecs() {
+#ifdef RTC_ENABLE_VP9
+  // TODO(emircan): Add Profile 2 support after fixing browser_tests.
+  std::vector<SdpVideoFormat> supported_formats{SdpVideoFormat(
+      cricket::kVp9CodecName,
+      {{kVP9FmtpProfileId, VP9ProfileToString(VP9Profile::kProfile0)}})};
+  return supported_formats;
+#else
+  return std::vector<SdpVideoFormat>();
+#endif
+}
+
+std::unique_ptr<VP9Encoder> VP9Encoder::Create() {
+#ifdef RTC_ENABLE_VP9
+  return absl::make_unique<VP9EncoderImpl>(cricket::VideoCodec());
+#else
+  RTC_NOTREACHED();
+  return nullptr;
+#endif
+}
+
+std::unique_ptr<VP9Encoder> VP9Encoder::Create(
+    const cricket::VideoCodec& codec) {
+#ifdef RTC_ENABLE_VP9
+  return absl::make_unique<VP9EncoderImpl>(codec);
+#else
+  RTC_NOTREACHED();
+  return nullptr;
+#endif
+}
+
+std::unique_ptr<VP9Decoder> VP9Decoder::Create() {
+#ifdef RTC_ENABLE_VP9
+  return absl::make_unique<VP9DecoderImpl>();
+#else
+  RTC_NOTREACHED();
+  return nullptr;
+#endif
+}
+
+}  // namespace webrtc
diff --git a/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.cc b/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.cc
index 69101cb..ecbda4c 100644
--- a/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.cc
+++ b/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.cc
@@ -9,6 +9,8 @@
  *
  */
 
+#ifdef RTC_ENABLE_VP9
+
 #include "modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.h"
 
 #include "vpx/vpx_codec.h"
@@ -138,3 +140,5 @@
 }
 
 }  // namespace webrtc
+
+#endif  // RTC_ENABLE_VP9
diff --git a/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.h b/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.h
index 9b035eb..02ede24 100644
--- a/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.h
+++ b/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.h
@@ -12,6 +12,8 @@
 #ifndef MODULES_VIDEO_CODING_CODECS_VP9_VP9_FRAME_BUFFER_POOL_H_
 #define MODULES_VIDEO_CODING_CODECS_VP9_VP9_FRAME_BUFFER_POOL_H_
 
+#ifdef RTC_ENABLE_VP9
+
 #include <vector>
 
 #include "rtc_base/buffer.h"
@@ -120,4 +122,6 @@
 
 }  // namespace webrtc
 
+#endif  // RTC_ENABLE_VP9
+
 #endif  // MODULES_VIDEO_CODING_CODECS_VP9_VP9_FRAME_BUFFER_POOL_H_
diff --git a/modules/video_coding/codecs/vp9/vp9_impl.cc b/modules/video_coding/codecs/vp9/vp9_impl.cc
index 7dea25f..a19316c 100644
--- a/modules/video_coding/codecs/vp9/vp9_impl.cc
+++ b/modules/video_coding/codecs/vp9/vp9_impl.cc
@@ -9,6 +9,8 @@
  *
  */
 
+#ifdef RTC_ENABLE_VP9
+
 #include "modules/video_coding/codecs/vp9/vp9_impl.h"
 
 #include <algorithm>
@@ -124,23 +126,6 @@
 }
 }  // namespace
 
-std::vector<SdpVideoFormat> SupportedVP9Codecs() {
-  // TODO(emircan): Add Profile 2 support after fixing browser_tests.
-  std::vector<SdpVideoFormat> supported_formats{SdpVideoFormat(
-      cricket::kVp9CodecName,
-      {{kVP9FmtpProfileId, VP9ProfileToString(VP9Profile::kProfile0)}})};
-  return supported_formats;
-}
-
-std::unique_ptr<VP9Encoder> VP9Encoder::Create() {
-  return absl::make_unique<VP9EncoderImpl>(cricket::VideoCodec());
-}
-
-std::unique_ptr<VP9Encoder> VP9Encoder::Create(
-    const cricket::VideoCodec& codec) {
-  return absl::make_unique<VP9EncoderImpl>(codec);
-}
-
 void VP9EncoderImpl::EncoderOutputCodedPacketCallback(vpx_codec_cx_pkt* pkt,
                                                       void* user_data) {
   VP9EncoderImpl* enc = static_cast<VP9EncoderImpl*>(user_data);
@@ -1260,10 +1245,6 @@
   return info;
 }
 
-std::unique_ptr<VP9Decoder> VP9Decoder::Create() {
-  return absl::make_unique<VP9DecoderImpl>();
-}
-
 VP9DecoderImpl::VP9DecoderImpl()
     : decode_complete_callback_(nullptr),
       inited_(false),
@@ -1458,3 +1439,5 @@
 }
 
 }  // namespace webrtc
+
+#endif  // RTC_ENABLE_VP9
diff --git a/modules/video_coding/codecs/vp9/vp9_impl.h b/modules/video_coding/codecs/vp9/vp9_impl.h
index a968e4c..d26c53d 100644
--- a/modules/video_coding/codecs/vp9/vp9_impl.h
+++ b/modules/video_coding/codecs/vp9/vp9_impl.h
@@ -12,6 +12,8 @@
 #ifndef MODULES_VIDEO_CODING_CODECS_VP9_VP9_IMPL_H_
 #define MODULES_VIDEO_CODING_CODECS_VP9_VP9_IMPL_H_
 
+#ifdef RTC_ENABLE_VP9
+
 #include <map>
 #include <memory>
 #include <vector>
@@ -179,4 +181,6 @@
 };
 }  // namespace webrtc
 
+#endif  // RTC_ENABLE_VP9
+
 #endif  // MODULES_VIDEO_CODING_CODECS_VP9_VP9_IMPL_H_
diff --git a/modules/video_coding/codecs/vp9/vp9_noop.cc b/modules/video_coding/codecs/vp9/vp9_noop.cc
deleted file mode 100644
index 8f9d71c..0000000
--- a/modules/video_coding/codecs/vp9/vp9_noop.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- *
- */
-
-#if defined(RTC_ENABLE_VP9)
-#error
-#endif  // defined(RTC_ENABLE_VP9)
-
-#include "modules/video_coding/codecs/vp9/include/vp9.h"
-
-#include "api/video_codecs/sdp_video_format.h"
-#include "rtc_base/checks.h"
-
-namespace webrtc {
-
-std::vector<SdpVideoFormat> SupportedVP9Codecs() {
-  return std::vector<SdpVideoFormat>();
-}
-
-std::unique_ptr<VP9Encoder> VP9Encoder::Create() {
-  RTC_NOTREACHED();
-  return nullptr;
-}
-
-std::unique_ptr<VP9Encoder> VP9Encoder::Create(
-    const cricket::VideoCodec& codec) {
-  RTC_NOTREACHED();
-  return nullptr;
-}
-
-std::unique_ptr<VP9Decoder> VP9Decoder::Create() {
-  RTC_NOTREACHED();
-  return nullptr;
-}
-
-}  // namespace webrtc