summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vp8/decoder/decodframe.c5
-rw-r--r--vp8/decoder/threading.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c
index 95985082f..aaee91170 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)
{