summaryrefslogtreecommitdiff
path: root/libavcodec/proresdec2.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2017-10-02 04:18:23 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2017-10-03 20:34:35 +0200
commit4ee77cefaed0cf19b03b4b6f4945f52301165469 (patch)
tree48e8ed4fc887d6c51510ca47d214ab896c92f41c /libavcodec/proresdec2.c
parentc37138e01a93da2f9dd2cc5d4b77e5a38581d130 (diff)
downloadffmpeg-4ee77cefaed0cf19b03b4b6f4945f52301165469.tar.gz
avcodec/proresdec2: Use LAST_SKIP_BITS where possible
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/proresdec2.c')
-rw-r--r--libavcodec/proresdec2.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/libavcodec/proresdec2.c b/libavcodec/proresdec2.c
index 22dc70eeb4..a7cea2b3b8 100644
--- a/libavcodec/proresdec2.c
+++ b/libavcodec/proresdec2.c
@@ -250,7 +250,7 @@ static int decode_picture_header(AVCodecContext *avctx, const uint8_t *buf, cons
return pic_data_size;
}
-#define DECODE_CODEWORD(val, codebook) \
+#define DECODE_CODEWORD(val, codebook, SKIP) \
do { \
unsigned int rice_order, exp_order, switch_bits; \
unsigned int q, buf, bits; \
@@ -271,14 +271,14 @@ static int decode_picture_header(AVCodecContext *avctx, const uint8_t *buf, cons
return AVERROR_INVALIDDATA; \
val = SHOW_UBITS(re, gb, bits) - (1 << exp_order) + \
((switch_bits + 1) << rice_order); \
- SKIP_BITS(re, gb, bits); \
+ SKIP(re, gb, bits); \
} else if (rice_order) { \
SKIP_BITS(re, gb, q+1); \
val = (q << rice_order) + SHOW_UBITS(re, gb, rice_order); \
- SKIP_BITS(re, gb, rice_order); \
+ SKIP(re, gb, rice_order); \
} else { \
val = q; \
- SKIP_BITS(re, gb, q+1); \
+ SKIP(re, gb, q+1); \
} \
} while (0)
@@ -296,7 +296,7 @@ static av_always_inline int decode_dc_coeffs(GetBitContext *gb, int16_t *out,
OPEN_READER(re, gb);
- DECODE_CODEWORD(code, FIRST_DC_CB);
+ DECODE_CODEWORD(code, FIRST_DC_CB, LAST_SKIP_BITS);
prev_dc = TOSIGNED(code);
out[0] = prev_dc;
@@ -305,7 +305,7 @@ static av_always_inline int decode_dc_coeffs(GetBitContext *gb, int16_t *out,
code = 5;
sign = 0;
for (i = 1; i < blocks_per_slice; i++, out += 64) {
- DECODE_CODEWORD(code, dc_codebook[FFMIN(code, 6U)]);
+ DECODE_CODEWORD(code, dc_codebook[FFMIN(code, 6U)], LAST_SKIP_BITS);
if(code) sign ^= -(code & 1);
else sign = 0;
prev_dc += (((code + 1) >> 1) ^ sign) - sign;
@@ -341,14 +341,14 @@ static av_always_inline int decode_ac_coeffs(AVCodecContext *avctx, GetBitContex
if (!bits_left || (bits_left < 32 && !SHOW_UBITS(re, gb, bits_left)))
break;
- DECODE_CODEWORD(run, run_to_cb[FFMIN(run, 15)]);
+ DECODE_CODEWORD(run, run_to_cb[FFMIN(run, 15)], LAST_SKIP_BITS);
pos += run + 1;
if (pos >= max_coeffs) {
av_log(avctx, AV_LOG_ERROR, "ac tex damaged %d, %d\n", pos, max_coeffs);
return AVERROR_INVALIDDATA;
}
- DECODE_CODEWORD(level, lev_to_cb[FFMIN(level, 9)]);
+ DECODE_CODEWORD(level, lev_to_cb[FFMIN(level, 9)], SKIP_BITS);
level += 1;
i = pos >> log2_block_count;