diff options
Diffstat (limited to 'vp8/decoder/decodframe.c')
-rw-r--r-- | vp8/decoder/decodframe.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c index ddb09703b..1c11b0b50 100644 --- a/vp8/decoder/decodframe.c +++ b/vp8/decoder/decodframe.c @@ -264,8 +264,10 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, for (i = 0; i < 16; i++) { BLOCKD *b = &xd->block[i]; + int b_mode = xd->mode_info_context->bmi[i].as_mode; + RECON_INVOKE(RTCD_VTABLE(recon), intra4x4_predict) - (b, b->bmi.as_mode, b->predictor); + (b, b_mode, b->predictor); if (xd->eobs[i] > 1) { @@ -410,8 +412,6 @@ decode_mb_row(VP8D_COMP *pbi, VP8_COMMON *pc, int mb_row, MACROBLOCKD *xd) } #endif - update_blockd_bmi(xd); - xd->dst.y_buffer = pc->yv12_fb[dst_fb_idx].y_buffer + recon_yoffset; xd->dst.u_buffer = pc->yv12_fb[dst_fb_idx].u_buffer + recon_uvoffset; xd->dst.v_buffer = pc->yv12_fb[dst_fb_idx].v_buffer + recon_uvoffset; @@ -436,14 +436,6 @@ decode_mb_row(VP8D_COMP *pbi, VP8_COMMON *pc, int mb_row, MACROBLOCKD *xd) xd->corrupted |= pc->yv12_fb[ref_fb_idx].corrupted; } - vp8_build_uvmvs(xd, pc->full_pixel); - - /* - if(pc->current_video_frame==0 &&mb_col==1 && mb_row==0) - pbi->debugoutput =1; - else - pbi->debugoutput =0; - */ decode_macroblock(pbi, xd, mb_row * pc->mb_cols + mb_col); /* check if the boolean decoder has suffered an error */ @@ -685,6 +677,11 @@ static void init_frame(VP8D_COMP *pbi) xd->mode_info_context->mbmi.mode = DC_PRED; xd->mode_info_stride = pc->mode_info_stride; xd->corrupted = 0; /* init without corruption */ + + xd->fullpixel_mask = 0xffffffff; + if(pc->full_pixel) + xd->fullpixel_mask = 0xfffffff8; + } int vp8_decode_frame(VP8D_COMP *pbi) |