# HG changeset patch # User darkshikari # Date 1279799755 0 # Node ID 5b7d690b761b089cfedd2c972c3c58c2de1eec11 # Parent 93e27a5401dee8bf6c390aa4aa9501ac75337ed2 VP8: Don't store segment in macroblock struct anymore. Not necessary with the previous patch. diff -r 93e27a5401de -r 5b7d690b761b vp8.c --- a/vp8.c Thu Jul 22 11:45:18 2010 +0000 +++ b/vp8.c Thu Jul 22 11:55:55 2010 +0000 @@ -35,7 +35,6 @@ } VP8FilterStrength; typedef struct { - uint8_t segment; uint8_t skip; // todo: make it possible to check for at least (i4x4 or split_mv) // in one op. are others needed? @@ -120,6 +119,7 @@ uint8_t intra4x4_pred_mode_mb[16]; int chroma_pred_mode; ///< 8x8c pred mode of the current macroblock + int segment; ///< segment of the current macroblock int mbskip_enabled; int sign_bias[4]; ///< one state [0, 1] per ref frame type @@ -708,7 +708,7 @@ if (s->segmentation.update_map) *segment = vp8_rac_get_tree(c, vp8_segmentid_tree, s->prob->segmentid); - mb->segment = *segment; + s->segment = *segment; mb->skip = s->mbskip_enabled ? vp56_rac_get_prob(c, s->prob->mbskip) : 0; @@ -830,7 +830,7 @@ LOCAL_ALIGNED_16(DCTELEM, dc,[16]); int i, x, y, luma_start = 0, luma_ctx = 3; int nnz_pred, nnz, nnz_total = 0; - int segment = s->segmentation.enabled ? mb->segment : 0; + int segment = s->segment; s->dsp.clear_blocks((DCTELEM *)s->block); @@ -1229,7 +1229,7 @@ int interior_limit, filter_level; if (s->segmentation.enabled) { - filter_level = s->segmentation.filter_level[mb->segment]; + filter_level = s->segmentation.filter_level[s->segment]; if (!s->segmentation.absolute_vals) filter_level += s->filter.level; } else