|
@@ -627,9 +627,10 @@ void decode_mb_mode(VP8Context *s, VP8Macroblock *mb, int mb_x, int mb_y, uint8_
|
|
|
{
|
|
|
VP56RangeCoder *c = &s->c;
|
|
|
|
|
|
- if (s->segmentation.update_map)
|
|
|
- *segment = vp8_rac_get_tree(c, vp8_segmentid_tree, s->prob->segmentid);
|
|
|
- else
|
|
|
+ if (s->segmentation.update_map) {
|
|
|
+ int bit = vp56_rac_get_prob(c, s->prob->segmentid[0]);
|
|
|
+ *segment = vp56_rac_get_prob(c, s->prob->segmentid[1+bit]) + 2*bit;
|
|
|
+ } else
|
|
|
*segment = ref ? *ref : *segment;
|
|
|
s->segment = *segment;
|
|
|
|