/* * Copyright (c) 2012 The WebM 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. */ #ifndef VPX_TEST_VIDEO_SOURCE_H_ #define VPX_TEST_VIDEO_SOURCE_H_ #if defined(_WIN32) #undef NOMINMAX #define NOMINMAX #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif #include <windows.h> #endif #include <cstdio> #include <cstdlib> #include <cstring> #include <memory> #include <string> #if !defined(_WIN32) #include "gtest/gtest.h" #endif #include "test/acm_random.h" #include "vpx/vpx_encoder.h" namespace libvpx_test { // Helper macros to ensure LIBVPX_TEST_DATA_PATH is a quoted string. // These are undefined right below GetDataPath // NOTE: LIBVPX_TEST_DATA_PATH MUST NOT be a quoted string before // Stringification or the GetDataPath will fail at runtime #define TO_STRING … #define STRINGIFY … // A simple function to encapsulate cross platform retrieval of test data path static std::string GetDataPath() { … } // Undefining stringification macros because they are not used elsewhere #undef TO_STRING #undef STRINGIFY inline FILE *OpenTestDataFile(const std::string &file_name) { … } static FILE *GetTempOutFile(std::string *file_name, const char *io_mode) { … } class TempOutFile { … }; // Abstract base class for test video sources, which provide a stream of // vpx_image_t images with associated timestamps and duration. class VideoSource { … }; class DummyVideoSource : public VideoSource { … }; class RandomVideoSource : public DummyVideoSource { … }; // Abstract base class for test video sources, which provide a stream of // decompressed images to the decoder. class CompressedVideoSource { … }; } // namespace libvpx_test #endif // VPX_TEST_VIDEO_SOURCE_H_