summaryrefslogtreecommitdiff
path: root/vp9/decoder/vp9_decodframe.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp9/decoder/vp9_decodframe.c')
-rw-r--r--vp9/decoder/vp9_decodframe.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c
index 34ed0c759..2331bb591 100644
--- a/vp9/decoder/vp9_decodframe.c
+++ b/vp9/decoder/vp9_decodframe.c
@@ -935,6 +935,15 @@ void vp9_init_dequantizer(VP9_COMMON *cm) {
}
}
+static void update_segmentation_map(VP9_COMMON *cm) {
+ int i, j;
+
+ for (i = 0; i < cm->mi_rows; ++i)
+ for (j = 0; j < cm->mi_cols; ++j)
+ cm->last_frame_seg_map[i * cm->mi_cols + j] =
+ cm->mi_grid_visible[i * cm->mode_info_stride + j]->mbmi.segment_id;
+}
+
int vp9_decode_frame(VP9D_COMP *pbi, const uint8_t **p_data_end) {
int i;
VP9_COMMON *const cm = &pbi->common;
@@ -1014,5 +1023,7 @@ int vp9_decode_frame(VP9D_COMP *pbi, const uint8_t **p_data_end) {
if (cm->refresh_frame_context)
cm->frame_contexts[cm->frame_context_idx] = cm->fc;
+ update_segmentation_map(cm);
+
return 0;
}