diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c index eac925bb561f7d6094429143583017a2e35331d1..2b653caed02260b993f408b55c58506dff75d6de 100644 --- a/vp9/decoder/vp9_decodframe.c +++ b/vp9/decoder/vp9_decodframe.c @@ -512,29 +512,21 @@ static void setup_loopfilter(VP9D_COMP *pbi, struct vp9_read_bit_buffer *rb) { if (xd->mode_ref_lf_delta_update) { int i; - for (i = 0; i < MAX_REF_LF_DELTAS; i++) { - if (vp9_rb_read_bit(rb)) { - const int value = vp9_rb_read_literal(rb, 6); - xd->ref_lf_deltas[i] = vp9_rb_read_bit(rb) ? -value : value; - } - } + for (i = 0; i < MAX_REF_LF_DELTAS; i++) + if (vp9_rb_read_bit(rb)) + xd->ref_lf_deltas[i] = vp9_rb_read_signed_literal(rb, 6); - for (i = 0; i < MAX_MODE_LF_DELTAS; i++) { - if (vp9_rb_read_bit(rb)) { - const int value = vp9_rb_read_literal(rb, 6); - xd->mode_lf_deltas[i] = vp9_rb_read_bit(rb) ? -value : value; - } - } + for (i = 0; i < MAX_MODE_LF_DELTAS; i++) + if (vp9_rb_read_bit(rb)) + xd->mode_lf_deltas[i] = vp9_rb_read_signed_literal(rb, 6); } } } static int read_delta_q(struct vp9_read_bit_buffer *rb, int *delta_q) { const int old = *delta_q; - if (vp9_rb_read_bit(rb)) { - const int value = vp9_rb_read_literal(rb, 4); - *delta_q = vp9_rb_read_bit(rb) ? -value : value; - } + if (vp9_rb_read_bit(rb)) + *delta_q = vp9_rb_read_signed_literal(rb, 4); return old != *delta_q; } diff --git a/vp9/decoder/vp9_read_bit_buffer.h b/vp9/decoder/vp9_read_bit_buffer.h index f243cb451ecff7de48aaa41b2ee7d2e70fb4c1b5..c7fa3aa27c40796ff3a940177e8ef2327bec8da2 100644 --- a/vp9/decoder/vp9_read_bit_buffer.h +++ b/vp9/decoder/vp9_read_bit_buffer.h @@ -51,4 +51,10 @@ static int vp9_rb_read_literal(struct vp9_read_bit_buffer *rb, int bits) { return value; } +static int vp9_rb_read_signed_literal(struct vp9_read_bit_buffer *rb, + int bits) { + const int value = vp9_rb_read_literal(rb, bits); + return vp9_rb_read_bit(rb) ? -value : value; +} + #endif // VP9_READ_BIT_BUFFER_