Module: libav Branch: master Commit: 14ba7472dca38323104d05a3eacd0eb2890b00c6
Author: Janne Salonen <[email protected]> Committer: Ronald S. Bultje <[email protected]> Date: Mon Mar 19 09:35:09 2012 +0200 vp8: fix update_lf_deltas in libavcodec/vp8.c lf_delta.ref[i] and lf_delta.mode[i] were incorrectly reset to 0 if specific delta value was not updated. Fixed to keep the previous value if flag indicates that element in question is not updated. Signed-off-by: Janne Salonen <[email protected]> Signed-off-by: Ronald S. Bultje <[email protected]> --- libavcodec/vp8.c | 20 ++++++++++++++++---- 1 files changed, 16 insertions(+), 4 deletions(-) diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c index 36518d5..6da835b 100644 --- a/libavcodec/vp8.c +++ b/libavcodec/vp8.c @@ -162,11 +162,23 @@ static void update_lf_deltas(VP8Context *s) VP56RangeCoder *c = &s->c; int i; - for (i = 0; i < 4; i++) - s->lf_delta.ref[i] = vp8_rac_get_sint(c, 6); + for (i = 0; i < 4; i++) { + if (vp8_rac_get(c)) { + s->lf_delta.ref[i] = vp8_rac_get_uint(c, 6); + + if (vp8_rac_get(c)) + s->lf_delta.ref[i] = -s->lf_delta.ref[i]; + } + } + + for (i = MODE_I4x4; i <= VP8_MVMODE_SPLIT; i++) { + if (vp8_rac_get(c)) { + s->lf_delta.mode[i] = vp8_rac_get_uint(c, 6); - for (i = MODE_I4x4; i <= VP8_MVMODE_SPLIT; i++) - s->lf_delta.mode[i] = vp8_rac_get_sint(c, 6); + if (vp8_rac_get(c)) + s->lf_delta.mode[i] = -s->lf_delta.mode[i]; + } + } } static int setup_partitions(VP8Context *s, const uint8_t *buf, int buf_size) _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
