summaryrefslogtreecommitdiff
path: root/vp8/decoder/decodemv.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp8/decoder/decodemv.c')
-rw-r--r--vp8/decoder/decodemv.c28
1 files changed, 21 insertions, 7 deletions
diff --git a/vp8/decoder/decodemv.c b/vp8/decoder/decodemv.c
index 3cfdbac0b..009304438 100644
--- a/vp8/decoder/decodemv.c
+++ b/vp8/decoder/decodemv.c
@@ -596,6 +596,7 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
// Make sure the MACROBLOCKD mode info pointer is pointed at the
// correct entry for the current macroblock.
xd->mode_info_context = mi;
+ xd->prev_mode_info_context = prev_mi;
// Read the macroblock segment id.
read_mb_segment_id(pbi, mb_row, mb_col);
@@ -996,8 +997,6 @@ void vp8_decode_mode_mvs(VP8D_COMP *pbi) {
for (sb_col = 0; sb_col < sb_cols; sb_col++) {
for (i = 0; i < 4; i++) {
- int mb_to_top_edge;
- int mb_to_bottom_edge;
int dy = row_delta[i];
int dx = col_delta[i];
@@ -1016,13 +1015,9 @@ void vp8_decode_mode_mvs(VP8D_COMP *pbi) {
xd->mode_info_context = mi;
xd->prev_mode_info_context = prev_mi;
- pbi->mb.mb_to_top_edge = mb_to_top_edge = -((mb_row * 16)) << 3;
- mb_to_top_edge -= LEFT_TOP_MARGIN;
-
+ pbi->mb.mb_to_top_edge = -((mb_row * 16)) << 3;
pbi->mb.mb_to_bottom_edge =
- mb_to_bottom_edge =
((pbi->common.mb_rows - 1 - mb_row) * 16) << 3;
- mb_to_bottom_edge += RIGHT_BOTTOM_MARGIN;
if (cm->frame_type == KEY_FRAME)
vp8_kfread_modes(pbi, mi, mb_row, mb_col);
@@ -1042,3 +1037,22 @@ void vp8_decode_mode_mvs(VP8D_COMP *pbi) {
prev_mi += cm->mode_info_stride + (1 - (cm->mb_cols & 0x1));
}
}
+
+void vpx_decode_mode_mvs_init(VP8D_COMP *pbi){
+ VP8_COMMON *cm = &pbi->common;
+ mb_mode_mv_init(pbi);
+ if (cm->frame_type == KEY_FRAME &&!cm->kf_ymode_probs_update)
+ cm->kf_ymode_probs_index = vp8_read_literal(&pbi->bc, 3);
+}
+void vpx_decode_mb_mode_mv(VP8D_COMP *pbi,
+ MACROBLOCKD *xd,
+ int mb_row,
+ int mb_col){
+ MODE_INFO *mi = xd->mode_info_context;
+ MODE_INFO *prev_mi = xd->prev_mode_info_context;
+
+ if (pbi->common.frame_type == KEY_FRAME)
+ vp8_kfread_modes(pbi, mi, mb_row, mb_col);
+ else
+ read_mb_modes_mv(pbi, mi, &mi->mbmi, prev_mi, mb_row, mb_col);
+}