[FFmpeg-devel] [PATCH] Revert "avcodec/vlc: Add macro for ff_init_vlc_sparse()"
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Fri Sep 18 09:24:35 EEST 2020
This reverts commit 61669b7c40b8dc3a0841768fb39c7567513b7cfc.
This commit broke building with MSVC due to its spec-incompliant handling
of ',' in __VA_ARGS__: These are not treated as argument separators for
further macros, so that in our case the init_vlc2() macro is treated as
having only one argument whenever the init_vlc() macro is used. See [1]
for further details.
[1]: https://reviews.llvm.org/D69626
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
---
libavcodec/smacker.c | 12 ++++++------
libavcodec/vlc.h | 7 +------
2 files changed, 7 insertions(+), 12 deletions(-)
diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c
index ffd24c11e7..813eb862c0 100644
--- a/libavcodec/smacker.c
+++ b/libavcodec/smacker.c
@@ -222,9 +222,9 @@ static int smacker_decode_header_tree(SmackVContext *smk, GetBitContext *gb, int
skip_bits1(gb);
if (h.current > 1) {
err = ff_init_vlc_sparse(&vlc[i], SMKTREE_BITS, h.current,
- INIT_VLC_DEFAULT_SIZES(h.lengths),
- INIT_VLC_DEFAULT_SIZES(h.bits),
- INIT_VLC_DEFAULT_SIZES(h.values),
+ h.lengths, sizeof(*h.lengths), sizeof(*h.lengths),
+ h.bits, sizeof(*h.bits), sizeof(*h.bits),
+ h.values, sizeof(*h.values), sizeof(*h.values),
INIT_VLC_LE);
if (err < 0) {
av_log(smk->avctx, AV_LOG_ERROR, "Cannot build VLC table\n");
@@ -653,9 +653,9 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data,
skip_bits1(&gb);
if (h.current > 1) {
ret = ff_init_vlc_sparse(&vlc[i], SMKTREE_BITS, h.current,
- INIT_VLC_DEFAULT_SIZES(h.lengths),
- INIT_VLC_DEFAULT_SIZES(h.bits),
- INIT_VLC_DEFAULT_SIZES(h.values),
+ h.lengths, sizeof(*h.lengths), sizeof(*h.lengths),
+ h.bits, sizeof(*h.bits), sizeof(*h.bits),
+ h.values, sizeof(*h.values), sizeof(*h.values),
INIT_VLC_LE);
if (ret < 0) {
av_log(avctx, AV_LOG_ERROR, "Cannot build VLC table\n");
diff --git a/libavcodec/vlc.h b/libavcodec/vlc.h
index 7cb323b62c..42ccddf3fc 100644
--- a/libavcodec/vlc.h
+++ b/libavcodec/vlc.h
@@ -35,12 +35,7 @@ typedef struct RL_VLC_ELEM {
uint8_t run;
} RL_VLC_ELEM;
-#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, \
+#define init_vlc(vlc, nb_bits, nb_codes, \
bits, bits_wrap, bits_size, \
codes, codes_wrap, codes_size, \
flags) \
--
2.25.1
More information about the ffmpeg-devel
mailing list