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