diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c index 3df0ba73a..8cf4e4711 100644 --- a/vp8/decoder/decodframe.c +++ b/vp8/decoder/decodframe.c @@ -198,6 +198,11 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd) xd->mode_info_context->mbmi.mode == SPLITMV); if (!eobtotal) { + /* Special case: Force the loopfilter to skip when eobtotal and + * mb_skip_coeff are zero. + * */ + xd->mode_info_context->mbmi.mb_skip_coeff = 1; + skip_recon_mb(pbi, xd); return; } diff --git a/vp8/decoder/threading.c b/vp8/decoder/threading.c index 06109e125..16afd591d 100644 --- a/vp8/decoder/threading.c +++ b/vp8/decoder/threading.c @@ -112,6 +112,11 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, int mb_row, int m xd->mode_info_context->mbmi.mode == SPLITMV); if (!eobtotal) { + /* Special case: Force the loopfilter to skip when eobtotal and + * mb_skip_coeff are zero. + * */ + xd->mode_info_context->mbmi.mb_skip_coeff = 1; + /*mt_skip_recon_mb(pbi, xd, mb_row, mb_col);*/ if (xd->frame_type == KEY_FRAME || xd->mode_info_context->mbmi.ref_frame == INTRA_FRAME) {