diff options
Diffstat (limited to 'vp8/decoder/threading.c')
-rw-r--r-- | vp8/decoder/threading.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/vp8/decoder/threading.c b/vp8/decoder/threading.c index dac990a26..fc8406eae 100644 --- a/vp8/decoder/threading.c +++ b/vp8/decoder/threading.c @@ -890,9 +890,18 @@ void vp8mt_decode_mb_rows( VP8D_COMP *pbi, MACROBLOCKD *xd) xd->pre.u_buffer = pc->yv12_fb[ref_fb_idx].u_buffer + recon_uvoffset; xd->pre.v_buffer = pc->yv12_fb[ref_fb_idx].v_buffer + recon_uvoffset; + if (xd->mode_info_context->mbmi.ref_frame != INTRA_FRAME) + { + /* propagate errors from reference frames */ + xd->corrupted |= pc->yv12_fb[ref_fb_idx].corrupted; + } + vp8_build_uvmvs(xd, pc->full_pixel); vp8mt_decode_macroblock(pbi, xd, mb_row, mb_col); + /* check if the boolean decoder has suffered an error */ + xd->corrupted |= vp8dx_bool_error(xd->current_bc); + if (pbi->common.filter_level) { /* Save decoded MB last row data for next-row decoding */ |