summaryrefslogtreecommitdiffstats
path: root/third_party/aom/test/tile_independence_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/aom/test/tile_independence_test.cc')
-rw-r--r--third_party/aom/test/tile_independence_test.cc52
1 files changed, 37 insertions, 15 deletions
diff --git a/third_party/aom/test/tile_independence_test.cc b/third_party/aom/test/tile_independence_test.cc
index a29051f2f..832227fb8 100644
--- a/third_party/aom/test/tile_independence_test.cc
+++ b/third_party/aom/test/tile_independence_test.cc
@@ -22,8 +22,8 @@
namespace {
class TileIndependenceTest
- : public ::libaom_test::EncoderTest,
- public ::libaom_test::CodecTestWith2Params<int, int> {
+ : public ::libaom_test::CodecTestWith2Params<int, int>,
+ public ::libaom_test::EncoderTest {
protected:
TileIndependenceTest()
: EncoderTest(GET_PARAM(0)), md5_fw_order_(), md5_inv_order_(),
@@ -33,11 +33,12 @@ class TileIndependenceTest
cfg.w = 704;
cfg.h = 144;
cfg.threads = 1;
+ cfg.allow_lowbitdepth = 1;
fw_dec_ = codec_->CreateDecoder(cfg, 0);
inv_dec_ = codec_->CreateDecoder(cfg, 0);
inv_dec_->Control(AV1_INVERT_TILE_DECODE_ORDER, 1);
-#if CONFIG_AV1 && CONFIG_EXT_TILE
+#if CONFIG_AV1
if (fw_dec_->IsAV1() && inv_dec_->IsAV1()) {
fw_dec_->Control(AV1_SET_DECODE_TILE_ROW, -1);
fw_dec_->Control(AV1_SET_DECODE_TILE_COL, -1);
@@ -62,9 +63,6 @@ class TileIndependenceTest
if (video->frame() == 1) {
encoder->Control(AV1E_SET_TILE_COLUMNS, n_tile_cols_);
encoder->Control(AV1E_SET_TILE_ROWS, n_tile_rows_);
-#if CONFIG_EXT_TILE
- encoder->Control(AV1E_SET_TILE_ENCODING_MODE, 0); // TILE_NORMAL
-#endif // CONFIG_EXT_TILE
#if CONFIG_LOOPFILTERING_ACROSS_TILES
encoder->Control(AV1E_SET_TILE_LOOPFILTER, 0);
#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
@@ -121,7 +119,12 @@ class TileIndependenceTest
// run an encode with 2 or 4 tiles, and do the decode both in normal and
// inverted tile ordering. Ensure that the MD5 of the output in both cases
// is identical. If so, tiles are considered independent and the test passes.
-TEST_P(TileIndependenceTest, MD5Match) { DoTest(); }
+TEST_P(TileIndependenceTest, MD5Match) {
+#if CONFIG_EXT_TILE
+ cfg_.large_scale_tile = 0;
+#endif // CONFIG_EXT_TILE
+ DoTest();
+}
class TileIndependenceTestLarge : public TileIndependenceTest {
virtual void SetCpuUsed(libaom_test::Encoder *encoder) {
@@ -130,18 +133,37 @@ class TileIndependenceTestLarge : public TileIndependenceTest {
}
};
-TEST_P(TileIndependenceTestLarge, MD5Match) { DoTest(); }
-
+TEST_P(TileIndependenceTestLarge, MD5Match) {
#if CONFIG_EXT_TILE
-AV1_INSTANTIATE_TEST_CASE(TileIndependenceTest, ::testing::Values(1, 2, 32),
- ::testing::Values(1, 2, 32));
-AV1_INSTANTIATE_TEST_CASE(TileIndependenceTestLarge,
- ::testing::Values(1, 2, 32),
- ::testing::Values(1, 2, 32));
-#else
+ cfg_.large_scale_tile = 0;
+#endif // CONFIG_EXT_TILE
+ DoTest();
+}
+
AV1_INSTANTIATE_TEST_CASE(TileIndependenceTest, ::testing::Values(0, 1),
::testing::Values(0, 1));
AV1_INSTANTIATE_TEST_CASE(TileIndependenceTestLarge, ::testing::Values(0, 1),
::testing::Values(0, 1));
+
+#if CONFIG_EXT_TILE
+class TileIndependenceLSTest : public TileIndependenceTest {};
+
+TEST_P(TileIndependenceLSTest, MD5Match) {
+ cfg_.large_scale_tile = 1;
+ DoTest();
+}
+
+class TileIndependenceLSTestLarge : public TileIndependenceTestLarge {};
+
+TEST_P(TileIndependenceLSTestLarge, MD5Match) {
+ cfg_.large_scale_tile = 1;
+ DoTest();
+}
+
+AV1_INSTANTIATE_TEST_CASE(TileIndependenceLSTest, ::testing::Values(1, 2, 32),
+ ::testing::Values(1, 2, 32));
+AV1_INSTANTIATE_TEST_CASE(TileIndependenceLSTestLarge,
+ ::testing::Values(1, 2, 32),
+ ::testing::Values(1, 2, 32));
#endif // CONFIG_EXT_TILE
} // namespace