summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandra Hájková <alexandra@khirnov.net>2016-05-24 11:34:24 +0200
committerAlexandra Hájková <alexandra@khirnov.net>2016-05-24 11:34:24 +0200
commitc01c7d6221f4bc5ed72908483c67a8f7dc846ea2 (patch)
treed98052678198c30d52e3340c680bf84ebf2f7e23
parent5ab5ff1f0783daf0924fdbd25333ea63a7faeb54 (diff)
bitstream.h:Turn set_idx to a macrobitstream
-rw-r--r--libavcodec/bitstream.h21
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);