#ifndef AOM_TEST_CODEC_FACTORY_H_
#define AOM_TEST_CODEC_FACTORY_H_
#include <tuple>
#include "config/aom_config.h"
#include "aom/aom_decoder.h"
#include "aom/aom_encoder.h"
#if CONFIG_AV1_ENCODER
#include "aom/aomcx.h"
#endif
#if CONFIG_AV1_DECODER
#include "aom/aomdx.h"
#endif
#include "test/decode_test_driver.h"
#include "test/encode_test_driver.h"
namespace libaom_test {
const int kCodecFactoryParam = …;
class CodecFactory { … };
template <class T1>
class CodecTestWithParam
: public ::testing::TestWithParam<
std::tuple<const libaom_test::CodecFactory *, T1> > { … };
template <class T1, class T2>
class CodecTestWith2Params
: public ::testing::TestWithParam<
std::tuple<const libaom_test::CodecFactory *, T1, T2> > { … };
template <class T1, class T2, class T3>
class CodecTestWith3Params
: public ::testing::TestWithParam<
std::tuple<const libaom_test::CodecFactory *, T1, T2, T3> > { … };
template <class T1, class T2, class T3, class T4>
class CodecTestWith4Params
: public ::testing::TestWithParam<
std::tuple<const libaom_test::CodecFactory *, T1, T2, T3, T4> > { … };
template <class T1, class T2, class T3, class T4, class T5>
class CodecTestWith5Params
: public ::testing::TestWithParam<
std::tuple<const libaom_test::CodecFactory *, T1, T2, T3, T4, T5> > { … };
template <class T1, class T2, class T3, class T4, class T5, class T6>
class CodecTestWith6Params
: public ::testing::TestWithParam<std::tuple<
const libaom_test::CodecFactory *, T1, T2, T3, T4, T5, T6> > { … };
class AV1Decoder : public Decoder { … };
class AV1Encoder : public Encoder { … };
class AV1CodecFactory : public CodecFactory { … };
const libaom_test::AV1CodecFactory kAV1;
#define AV1_INSTANTIATE_TEST_SUITE(test, ...) …
}
#endif