From 19d87e8ed7e7f9774b57aee9cfdf6528d00d0720 Mon Sep 17 00:00:00 2001 From: Paul Wilkins Date: Mon, 21 Nov 2011 11:02:08 +0000 Subject: [PATCH] Decoder segmentation bug. Fix decoder segmentation bug for temporal coding where the segment map was first initialized on a key frame. in vp8_kfread_modes() after reading the segment id it must be written to the pbi->segmentation_map[] for use in temporal coding on subsequent frames. Change-Id: I1489305efc376564e734a216f69c2844646ee3d3 --- vp8/decoder/decodemv.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vp8/decoder/decodemv.c b/vp8/decoder/decodemv.c index f7c0e9e64..dd7199dd9 100644 --- a/vp8/decoder/decodemv.c +++ b/vp8/decoder/decodemv.c @@ -78,6 +78,8 @@ static void vp8_kfread_modes(VP8D_COMP *pbi, MODE_INFO *m, int mb_row, int mb_co { vp8_reader *const bc = & pbi->bc; const int mis = pbi->common.mode_info_stride; + int map_index = mb_row * pbi->common.mb_cols + mb_col; + { MB_PREDICTION_MODE y_mode; @@ -88,7 +90,10 @@ static void vp8_kfread_modes(VP8D_COMP *pbi, MODE_INFO *m, int mb_row, int mb_co m->mbmi.segment_id = 0; if (pbi->mb.update_mb_segmentation_map) + { vp8_read_mb_segid(bc, &m->mbmi, &pbi->mb); + pbi->segmentation_map[map_index] = m->mbmi.segment_id; + } //#if CONFIG_SEGFEATURES if ( pbi->common.mb_no_coeff_skip && -- 2.50.1