summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2011-11-21 11:02:08 +0000
committerPaul Wilkins <paulwilkins@google.com>2011-11-21 15:49:47 +0000
commit19d87e8ed7e7f9774b57aee9cfdf6528d00d0720 (patch)
tree06898a3260a209d0caa42a028a5972e0c800551f
parent4f792921e74cff85fd130cf482669846fcd809e5 (diff)
downloadlibvpx-19d87e8ed7e7f9774b57aee9cfdf6528d00d0720.tar
libvpx-19d87e8ed7e7f9774b57aee9cfdf6528d00d0720.tar.gz
libvpx-19d87e8ed7e7f9774b57aee9cfdf6528d00d0720.tar.bz2
libvpx-19d87e8ed7e7f9774b57aee9cfdf6528d00d0720.zip
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
-rw-r--r--vp8/decoder/decodemv.c5
1 files changed, 5 insertions, 0 deletions
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 &&