Fix enc/dec mismatch in global motion

Resolve an enc/dec mismatch issue when global motion is turned on.

BUG=aomedia:424

Change-Id: Ifad02fab4412588527ec7e8b24ab9b8c6327e5ba
This commit is contained in:
Jingning Han 2017-04-14 19:48:05 -07:00
Родитель 041c67b9c7
Коммит 3ca0e67298
1 изменённых файлов: 5 добавлений и 3 удалений

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

@ -1248,9 +1248,6 @@ static INLINE int is_nontrans_global_motion(const MACROBLOCKD *xd) {
if (mbmi->mode != ZEROMV) return 0; if (mbmi->mode != ZEROMV) return 0;
#endif // CONFIG_EXT_INTER #endif // CONFIG_EXT_INTER
} else { } else {
#if !GLOBAL_SUB8X8_USED
return 0;
#endif // !GLOBAL_SUB8X8_USED
#if CONFIG_EXT_INTER #if CONFIG_EXT_INTER
if (mi->bmi[0].as_mode != ZEROMV || mi->bmi[1].as_mode != ZEROMV || if (mi->bmi[0].as_mode != ZEROMV || mi->bmi[1].as_mode != ZEROMV ||
mi->bmi[2].as_mode != ZEROMV || mi->bmi[3].as_mode != ZEROMV || mi->bmi[2].as_mode != ZEROMV || mi->bmi[3].as_mode != ZEROMV ||
@ -1264,6 +1261,11 @@ static INLINE int is_nontrans_global_motion(const MACROBLOCKD *xd) {
return 0; return 0;
#endif // CONFIG_EXT_INTER #endif // CONFIG_EXT_INTER
} }
#if !GLOBAL_SUB8X8_USED
if (mbmi->sb_type < BLOCK_8X8) return 0;
#endif
// Now check if all global motion is non translational // Now check if all global motion is non translational
for (ref = 0; ref < 1 + has_second_ref(mbmi); ++ref) { for (ref = 0; ref < 1 + has_second_ref(mbmi); ++ref) {
if (xd->global_motion[mbmi->ref_frame[ref]].wmtype <= TRANSLATION) return 0; if (xd->global_motion[mbmi->ref_frame[ref]].wmtype <= TRANSLATION) return 0;