Merge "Update use_prev_frame_mvs flag in decoder."
This commit is contained in:
commit
a41fe749a8
@ -162,7 +162,8 @@ typedef struct VP9Common {
|
||||
int show_existing_frame;
|
||||
|
||||
// Flag signaling that the frame is encoded using only INTRA modes.
|
||||
int intra_only;
|
||||
uint8_t intra_only;
|
||||
uint8_t last_intra_only;
|
||||
|
||||
int allow_high_precision_mv;
|
||||
|
||||
|
@ -1648,6 +1648,7 @@ static size_t read_uncompressed_header(VP9Decoder *pbi,
|
||||
size_t sz;
|
||||
|
||||
cm->last_frame_type = cm->frame_type;
|
||||
cm->last_intra_only = cm->intra_only;
|
||||
|
||||
if (vp9_rb_read_literal(rb, 2) != VP9_FRAME_MARKER)
|
||||
vpx_internal_error(&cm->error, VPX_CODEC_UNSUP_BITSTREAM,
|
||||
@ -1996,8 +1997,9 @@ void vp9_decode_frame(VP9Decoder *pbi,
|
||||
cm->use_prev_frame_mvs = !cm->error_resilient_mode &&
|
||||
cm->width == cm->last_width &&
|
||||
cm->height == cm->last_height &&
|
||||
!cm->intra_only &&
|
||||
cm->last_show_frame;
|
||||
!cm->last_intra_only &&
|
||||
cm->last_show_frame &&
|
||||
(cm->last_frame_type != KEY_FRAME);
|
||||
|
||||
vp9_setup_block_planes(xd, cm->subsampling_x, cm->subsampling_y);
|
||||
|
||||
|
@ -599,19 +599,20 @@ void vp9_read_mode_info(VP9Decoder *const pbi, MACROBLOCKD *xd,
|
||||
MV_REF* frame_mvs = cm->cur_frame->mvs + mi_row * cm->mi_cols + mi_col;
|
||||
int w, h;
|
||||
|
||||
if (frame_is_intra_only(cm))
|
||||
if (frame_is_intra_only(cm)) {
|
||||
read_intra_frame_mode_info(cm, xd, mi_row, mi_col, r);
|
||||
else
|
||||
} else {
|
||||
read_inter_frame_mode_info(pbi, xd, tile, mi_row, mi_col, r);
|
||||
|
||||
for (h = 0; h < y_mis; ++h) {
|
||||
MV_REF *const frame_mv = frame_mvs + h * cm->mi_cols;
|
||||
for (w = 0; w < x_mis; ++w) {
|
||||
MV_REF *const mv = frame_mv + w;
|
||||
mv->ref_frame[0] = mi->mbmi.ref_frame[0];
|
||||
mv->ref_frame[1] = mi->mbmi.ref_frame[1];
|
||||
mv->mv[0].as_int = mi->mbmi.mv[0].as_int;
|
||||
mv->mv[1].as_int = mi->mbmi.mv[1].as_int;
|
||||
for (h = 0; h < y_mis; ++h) {
|
||||
MV_REF *const frame_mv = frame_mvs + h * cm->mi_cols;
|
||||
for (w = 0; w < x_mis; ++w) {
|
||||
MV_REF *const mv = frame_mv + w;
|
||||
mv->ref_frame[0] = mi->mbmi.ref_frame[0];
|
||||
mv->ref_frame[1] = mi->mbmi.ref_frame[1];
|
||||
mv->mv[0].as_int = mi->mbmi.mv[0].as_int;
|
||||
mv->mv[1].as_int = mi->mbmi.mv[1].as_int;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user