summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVignesh Venkatasubramanian <vigneshv@google.com>2014-04-23 23:44:08 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2014-04-23 23:44:08 -0700
commit910136320ca136c17bfe57686c3073475416bbad (patch)
treeafafb38fc4e2cc63d7444e5b9bede48d873ef067
parent95735c3938cf18e5140a4528b65c713502884710 (diff)
parent68ff368d19e8de7c7250d4d6d76c1fb6889655ca (diff)
downloadlibvpx-910136320ca136c17bfe57686c3073475416bbad.tar
libvpx-910136320ca136c17bfe57686c3073475416bbad.tar.gz
libvpx-910136320ca136c17bfe57686c3073475416bbad.tar.bz2
libvpx-910136320ca136c17bfe57686c3073475416bbad.zip
Merge "Enable tests using WebM files only if webm_io is enabled"
-rw-r--r--test/external_frame_buffer_test.cc13
-rw-r--r--test/test.mk8
-rw-r--r--test/test_vector_test.cc9
-rw-r--r--test/vp9_thread_test.cc5
4 files changed, 33 insertions, 2 deletions
diff --git a/test/external_frame_buffer_test.cc b/test/external_frame_buffer_test.cc
index 54c79e903..fb0449deb 100644
--- a/test/external_frame_buffer_test.cc
+++ b/test/external_frame_buffer_test.cc
@@ -10,13 +10,16 @@
#include <string>
+#include "./vpx_config.h"
#include "test/codec_factory.h"
#include "test/decode_test_driver.h"
#include "test/ivf_video_source.h"
#include "test/md5_helper.h"
#include "test/test_vectors.h"
#include "test/util.h"
+#if CONFIG_WEBM_IO
#include "test/webm_video_source.h"
+#endif
namespace {
@@ -267,6 +270,7 @@ class ExternalFrameBufferMD5Test
ExternalFrameBufferList fb_list_;
};
+#if CONFIG_WEBM_IO
// Class for testing passing in external frame buffers to libvpx.
class ExternalFrameBufferTest : public ::testing::Test {
protected:
@@ -340,6 +344,7 @@ class ExternalFrameBufferTest : public ::testing::Test {
int num_buffers_;
ExternalFrameBufferList fb_list_;
};
+#endif // CONFIG_WEBM_IO
// This test runs through the set of test vectors, and decodes them.
// Libvpx will call into the application to allocate a frame buffer when
@@ -366,7 +371,13 @@ TEST_P(ExternalFrameBufferMD5Test, ExtFBMD5Match) {
if (filename.substr(filename.length() - 3, 3) == "ivf") {
video = new libvpx_test::IVFVideoSource(filename);
} else {
+#if CONFIG_WEBM_IO
video = new libvpx_test::WebMVideoSource(filename);
+#else
+ fprintf(stderr, "WebM IO is disabled, skipping test vector %s\n",
+ filename.c_str());
+ return;
+#endif
}
ASSERT_TRUE(video != NULL);
video->Init();
@@ -380,6 +391,7 @@ TEST_P(ExternalFrameBufferMD5Test, ExtFBMD5Match) {
delete video;
}
+#if CONFIG_WEBM_IO
TEST_F(ExternalFrameBufferTest, MinFrameBuffers) {
// Minimum number of external frame buffers for VP9 is
// #VP9_MAXIMUM_REF_BUFFERS + #VPX_MAXIMUM_WORK_BUFFERS.
@@ -460,6 +472,7 @@ TEST_F(ExternalFrameBufferTest, SetAfterDecode) {
SetFrameBufferFunctions(
num_buffers, get_vp9_frame_buffer, release_vp9_frame_buffer));
}
+#endif // CONFIG_WEBM_IO
VP9_INSTANTIATE_TEST_CASE(ExternalFrameBufferMD5Test,
::testing::ValuesIn(libvpx_test::kVP9TestVectors,
diff --git a/test/test.mk b/test/test.mk
index f1a8ed9a0..a489e631c 100644
--- a/test/test.mk
+++ b/test/test.mk
@@ -42,6 +42,7 @@ LIBVPX_TEST_SRCS-yes += encode_test_driver.cc
LIBVPX_TEST_SRCS-yes += encode_test_driver.h
## WebM Parsing
+ifeq ($(CONFIG_WEBM_IO), yes)
NESTEGG_SRCS += ../third_party/nestegg/halloc/halloc.h
NESTEGG_SRCS += ../third_party/nestegg/halloc/src/align.h
NESTEGG_SRCS += ../third_party/nestegg/halloc/src/halloc.c
@@ -53,11 +54,14 @@ LIBVPX_TEST_SRCS-$(CONFIG_DECODERS) += ../tools_common.h
LIBVPX_TEST_SRCS-$(CONFIG_DECODERS) += ../webmdec.c
LIBVPX_TEST_SRCS-$(CONFIG_DECODERS) += ../webmdec.h
LIBVPX_TEST_SRCS-$(CONFIG_DECODERS) += webm_video_source.h
+endif
LIBVPX_TEST_SRCS-$(CONFIG_DECODERS) += test_vector_test.cc
-# Currently we only support decoder perf tests for vp9
-ifeq ($(CONFIG_DECODE_PERF_TESTS)$(CONFIG_VP9_DECODER), yesyes)
+# Currently we only support decoder perf tests for vp9. Also they read from WebM
+# files, so WebM IO is required.
+ifeq ($(CONFIG_DECODE_PERF_TESTS)$(CONFIG_VP9_DECODER)$(CONFIG_WEBM_IO), \
+ yesyesyes)
LIBVPX_TEST_SRCS-yes += decode_perf_test.cc
endif
diff --git a/test/test_vector_test.cc b/test/test_vector_test.cc
index 9ba18daef..1f294f20b 100644
--- a/test/test_vector_test.cc
+++ b/test/test_vector_test.cc
@@ -12,13 +12,16 @@
#include <cstdlib>
#include <string>
#include "third_party/googletest/src/include/gtest/gtest.h"
+#include "./vpx_config.h"
#include "test/codec_factory.h"
#include "test/decode_test_driver.h"
#include "test/ivf_video_source.h"
#include "test/md5_helper.h"
#include "test/test_vectors.h"
#include "test/util.h"
+#if CONFIG_WEBM_IO
#include "test/webm_video_source.h"
+#endif
#include "vpx_mem/vpx_mem.h"
namespace {
@@ -75,7 +78,13 @@ TEST_P(TestVectorTest, MD5Match) {
if (filename.substr(filename.length() - 3, 3) == "ivf") {
video = new libvpx_test::IVFVideoSource(filename);
} else if (filename.substr(filename.length() - 4, 4) == "webm") {
+#if CONFIG_WEBM_IO
video = new libvpx_test::WebMVideoSource(filename);
+#else
+ fprintf(stderr, "WebM IO is disabled, skipping test vector %s\n",
+ filename.c_str());
+ return;
+#endif
}
video->Init();
diff --git a/test/vp9_thread_test.cc b/test/vp9_thread_test.cc
index 5523f2024..0c9f71bc5 100644
--- a/test/vp9_thread_test.cc
+++ b/test/vp9_thread_test.cc
@@ -11,10 +11,13 @@
#include <string>
#include "third_party/googletest/src/include/gtest/gtest.h"
+#include "./vpx_config.h"
#include "test/codec_factory.h"
#include "test/decode_test_driver.h"
#include "test/md5_helper.h"
+#if CONFIG_WEBM_IO
#include "test/webm_video_source.h"
+#endif
#include "vp9/decoder/vp9_thread.h"
namespace {
@@ -97,6 +100,7 @@ TEST_P(VP9WorkerThreadTest, HookFailure) {
// -----------------------------------------------------------------------------
// Multi-threaded decode tests
+#if CONFIG_WEBM_IO
// Decodes |filename| with |num_threads|. Returns the md5 of the decoded frames.
string DecodeFile(const string& filename, int num_threads) {
libvpx_test::WebMVideoSource video(filename);
@@ -212,6 +216,7 @@ TEST(VP9DecodeMTTest, MTDecode3) {
}
}
}
+#endif // CONFIG_WEBM_IO
INSTANTIATE_TEST_CASE_P(Synchronous, VP9WorkerThreadTest, ::testing::Bool());