Fix decoder crash with supertx

xd->plane[0].n4_h and xd->plane[0].n4_w are not set at that point
when using supertx.

While this fixes the immediate crash described in the referenced
bug report, there are still issues in the ref-mv experiment that
causes these tests to fail, so they are kept disabled.

BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1230

Change-Id: Ibf8ef02847a903f8d10e6be28e16694db10c75af
This commit is contained in:
Geza Lore 2016-06-03 10:54:49 +01:00
Родитель 17c4f1c7f5
Коммит 6c4306c27d
2 изменённых файлов: 7 добавлений и 17 удалений

Просмотреть файл

@ -87,26 +87,16 @@ VP9_INSTANTIATE_TEST_CASE(ActiveMapTest,
::testing::Values(::libvpx_test::kRealTime),
::testing::Range(0, 9));
#if CONFIG_VP10
#if CONFIG_SUPERTX
// The new variance based partitioning scheme is incompatible with
// SEGMENT_LEVEL_SKIP, so tests using cpu-used 6 or higher (and hence
// using variance based paritioning) are disabled for now.
// Temporarily disable all tests
INSTANTIATE_TEST_CASE_P(
DISABLED_VP10, ActiveMapTest,
::testing::Combine(
::testing::Values(static_cast<const libvpx_test::CodecFactory *>(
&libvpx_test::kVP10)),
::testing::Values(::libvpx_test::kRealTime), ::testing::Range(0, 9)));
#else
VP10_INSTANTIATE_TEST_CASE(ActiveMapTest,
::testing::Values(::libvpx_test::kRealTime),
::testing::Range(0, 6));
// The new variance based partitioning scheme is incompatible with
// SEGMENT_LEVEL_SKIP.
INSTANTIATE_TEST_CASE_P(
DISABLED_VP10, ActiveMapTest,
::testing::Combine(
::testing::Values(static_cast<const libvpx_test::CodecFactory *>(
&libvpx_test::kVP10)),
::testing::Values(::libvpx_test::kRealTime), ::testing::Range(6, 9)));
#endif // CONFIG_SUPERTX
#endif // CONFIG_VP10
} // namespace

Просмотреть файл

@ -386,8 +386,8 @@ static int read_inter_segment_id(VP10_COMMON *const cm, MACROBLOCKD *const xd,
MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi;
int predicted_segment_id, segment_id;
const int mi_offset = mi_row * cm->mi_cols + mi_col;
const int bw = xd->plane[0].n4_w >> 1;
const int bh = xd->plane[0].n4_h >> 1;
const int bw = num_8x8_blocks_wide_lookup[mbmi->sb_type];
const int bh = num_8x8_blocks_high_lookup[mbmi->sb_type];
// TODO(slavarnway): move x_mis, y_mis into xd ?????
const int x_mis = VPXMIN(cm->mi_cols - mi_col, bw);