aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-07-30 09:06:44 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-09-18 01:10:53 +0200
commit61669b7c40b8dc3a0841768fb39c7567513b7cfc (patch)
tree3fdffb224a7c2dbc38a9a65afdfde96ebefcfb49
parent2cef0316747499f3d845d778fbf7e1d1d27d55fb (diff)
downloadffmpeg-61669b7c40b8dc3a0841768fb39c7567513b7cfc.tar.gz
avcodec/vlc: Add macro for ff_init_vlc_sparse()
ff_init_vlc_sparse() supports arrays of uint8_t, uint16_t and uint32_t as input (and it also supports padding/other elements in between the elements). This makes the typical case in which the input is a simple array more cumbersome. E.g. for an array of uint8_t one would either need to call the function with arguments like "array, sizeof(array[0]), sizeof(array[0])" or with "array, 1, 1". The former is nicer, but longer, so that the latter is mostly used. Therefore this commit adds a macro that expands to the sizeof() construct. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-rw-r--r--libavcodec/vlc.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/vlc.h b/libavcodec/vlc.h
index 42ccddf3fc..7cb323b62c 100644
--- a/libavcodec/vlc.h
+++ b/libavcodec/vlc.h
@@ -35,7 +35,12 @@ typedef struct RL_VLC_ELEM {
uint8_t run;
} RL_VLC_ELEM;
-#define init_vlc(vlc, nb_bits, nb_codes, \
+#define INIT_VLC_DEFAULT_SIZES(ptr) \
+ (ptr), sizeof((ptr)[0]), sizeof((ptr)[0])
+
+#define init_vlc(...) init_vlc2(__VA_ARGS__)
+
+#define init_vlc2(vlc, nb_bits, nb_codes, \
bits, bits_wrap, bits_size, \
codes, codes_wrap, codes_size, \
flags) \