Commit aa112565 authored by Ronald S. Bultje's avatar Ronald S. Bultje
Browse files

Adjust superframe-is-optional unit test for vp10 superframe syntax.

Change-Id: Ic64b6928af7ae8ecc987f845b0bf0faecdacb072
parent 6a032503
...@@ -16,8 +16,13 @@ ...@@ -16,8 +16,13 @@
namespace { namespace {
const int kTestMode = 0;
const int kSuperframeSyntax = 1;
typedef std::tr1::tuple<libvpx_test::TestMode,int> SuperframeTestParam;
class SuperframeTest : public ::libvpx_test::EncoderTest, class SuperframeTest : public ::libvpx_test::EncoderTest,
public ::libvpx_test::CodecTestWithParam<libvpx_test::TestMode> { public ::libvpx_test::CodecTestWithParam<SuperframeTestParam> {
protected: protected:
SuperframeTest() : EncoderTest(GET_PARAM(0)), modified_buf_(NULL), SuperframeTest() : EncoderTest(GET_PARAM(0)), modified_buf_(NULL),
last_sf_pts_(0) {} last_sf_pts_(0) {}
...@@ -25,9 +30,13 @@ class SuperframeTest : public ::libvpx_test::EncoderTest, ...@@ -25,9 +30,13 @@ class SuperframeTest : public ::libvpx_test::EncoderTest,
virtual void SetUp() { virtual void SetUp() {
InitializeConfig(); InitializeConfig();
SetMode(GET_PARAM(1)); const SuperframeTestParam input = GET_PARAM(1);
const libvpx_test::TestMode mode = std::tr1::get<kTestMode>(input);
const int syntax = std::tr1::get<kSuperframeSyntax>(input);
SetMode(mode);
sf_count_ = 0; sf_count_ = 0;
sf_count_max_ = INT_MAX; sf_count_max_ = INT_MAX;
is_vp10_style_superframe_ = syntax;
} }
virtual void TearDown() { virtual void TearDown() {
...@@ -50,7 +59,8 @@ class SuperframeTest : public ::libvpx_test::EncoderTest, ...@@ -50,7 +59,8 @@ class SuperframeTest : public ::libvpx_test::EncoderTest,
const uint8_t marker = buffer[pkt->data.frame.sz - 1]; const uint8_t marker = buffer[pkt->data.frame.sz - 1];
const int frames = (marker & 0x7) + 1; const int frames = (marker & 0x7) + 1;
const int mag = ((marker >> 3) & 3) + 1; const int mag = ((marker >> 3) & 3) + 1;
const unsigned int index_sz = 2 + mag * frames; const unsigned int index_sz =
2 + mag * (frames - is_vp10_style_superframe_);
if ((marker & 0xe0) == 0xc0 && if ((marker & 0xe0) == 0xc0 &&
pkt->data.frame.sz >= index_sz && pkt->data.frame.sz >= index_sz &&
buffer[pkt->data.frame.sz - index_sz] == marker) { buffer[pkt->data.frame.sz - index_sz] == marker) {
...@@ -75,6 +85,7 @@ class SuperframeTest : public ::libvpx_test::EncoderTest, ...@@ -75,6 +85,7 @@ class SuperframeTest : public ::libvpx_test::EncoderTest,
return pkt; return pkt;
} }
int is_vp10_style_superframe_;
int sf_count_; int sf_count_;
int sf_count_max_; int sf_count_max_;
vpx_codec_cx_pkt_t modified_pkt_; vpx_codec_cx_pkt_t modified_pkt_;
...@@ -92,9 +103,11 @@ TEST_P(SuperframeTest, TestSuperframeIndexIsOptional) { ...@@ -92,9 +103,11 @@ TEST_P(SuperframeTest, TestSuperframeIndexIsOptional) {
EXPECT_EQ(sf_count_, 1); EXPECT_EQ(sf_count_, 1);
} }
VP9_INSTANTIATE_TEST_CASE(SuperframeTest, ::testing::Values( VP9_INSTANTIATE_TEST_CASE(SuperframeTest, ::testing::Combine(
::libvpx_test::kTwoPassGood)); ::testing::Values(::libvpx_test::kTwoPassGood),
::testing::Values(0)));
VP10_INSTANTIATE_TEST_CASE(SuperframeTest, ::testing::Values( VP10_INSTANTIATE_TEST_CASE(SuperframeTest, ::testing::Combine(
::libvpx_test::kTwoPassGood)); ::testing::Values(::libvpx_test::kTwoPassGood),
::testing::Values(CONFIG_MISC_FIXES)));
} // namespace } // namespace
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment