Index: source/libvpx/vp9/common/vp9_entropymode.c |
=================================================================== |
--- source/libvpx/vp9/common/vp9_entropymode.c (revision 293081) |
+++ source/libvpx/vp9/common/vp9_entropymode.c (working copy) |
@@ -350,7 +350,7 @@ |
void vp9_adapt_mode_probs(VP9_COMMON *cm) { |
int i, j; |
- FRAME_CONTEXT *fc = &cm->fc; |
+ FRAME_CONTEXT *fc = cm->fc; |
const FRAME_CONTEXT *pre_fc = &cm->frame_contexts[cm->frame_context_idx]; |
const FRAME_COUNTS *counts = &cm->counts; |
@@ -451,7 +451,7 @@ |
lf->last_sharpness_level = -1; |
vp9_default_coef_probs(cm); |
- vp9_init_mode_probs(&cm->fc); |
+ vp9_init_mode_probs(cm->fc); |
vp9_init_mv_probs(cm); |
if (cm->frame_type == KEY_FRAME || |
@@ -458,13 +458,14 @@ |
cm->error_resilient_mode || cm->reset_frame_context == 3) { |
// Reset all frame contexts. |
for (i = 0; i < FRAME_CONTEXTS; ++i) |
- cm->frame_contexts[i] = cm->fc; |
+ cm->frame_contexts[i] = *cm->fc; |
} else if (cm->reset_frame_context == 2) { |
// Reset only the frame context specified in the frame header. |
- cm->frame_contexts[cm->frame_context_idx] = cm->fc; |
+ cm->frame_contexts[cm->frame_context_idx] = *cm->fc; |
} |
- if (frame_is_intra_only(cm)) |
+ // prev_mip will only be allocated in encoder. |
+ if (frame_is_intra_only(cm) && cm->prev_mip) |
vpx_memset(cm->prev_mip, 0, cm->mi_stride * (cm->mi_rows + 1) * |
sizeof(*cm->prev_mip)); |