diff options
author | Alexandra Hájková <alexandra@khirnov.net> | 2016-05-24 11:34:24 +0200 |
---|---|---|
committer | Alexandra Hájková <alexandra@khirnov.net> | 2016-05-24 11:34:24 +0200 |
commit | c01c7d6221f4bc5ed72908483c67a8f7dc846ea2 (patch) | |
tree | d98052678198c30d52e3340c680bf84ebf2f7e23 | |
parent | 5ab5ff1f0783daf0924fdbd25333ea63a7faeb54 (diff) |
bitstream.h:Turn set_idx to a macrobitstream
-rw-r--r-- | libavcodec/bitstream.h | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/libavcodec/bitstream.h b/libavcodec/bitstream.h index 745146f67a..d2d2f07b36 100644 --- a/libavcodec/bitstream.h +++ b/libavcodec/bitstream.h @@ -330,16 +330,13 @@ static inline const uint8_t *bitstream_align(BitstreamContext *s) /** * Return the LUT element for the given bitstream configuration. */ -static inline int set_idx(BitstreamContext *s, int code, int *n, int *nb_bits, VLC_TYPE (*table)[2]) -{ - unsigned int idx; - - *nb_bits = -*n; - idx = bitstream_peek(s, *nb_bits) + code; - *n = table[idx][1]; - - return table[idx][0]; -} +#define set_idx(s, code, n, nb_bits, table, idx) \ + do { \ + *nb_bits = -*n; \ + idx = bitstream_peek(s, *nb_bits) + code;\ + *n = table[idx][1]; \ + code = table[idx][0]; \ + } while (0) /** * Parse a vlc code. @@ -362,10 +359,10 @@ static av_always_inline int bitstream_read_vlc(BitstreamContext *s, VLC_TYPE (*t if (max_depth > 1 && n < 0) { bitstream_skip(s, bits); - code = set_idx(s, code, &n, &nb_bits, table); + set_idx(s, code, &n, &nb_bits, table, idx); if (max_depth > 2 && n < 0) { bitstream_skip(s, nb_bits); - code = set_idx(s, code, &n, &nb_bits, table); + set_idx(s, code, &n, &nb_bits, table, idx); } } bitstream_skip(s, n); |