diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-09-06 16:05:40 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-09-06 16:05:40 +0200 |
commit | 376b16d7cc8a0953bc2054a6ccc778d75b7b1c5b (patch) | |
tree | 5969c6405a5e884d81377f63b68357130ea2be9a /libavcodec/dsputil.h | |
parent | fb2e7ac3c4c4432928d10df072c3dd9c99558da9 (diff) | |
parent | 0db2d94280e260af5f3ad7993c5a6357462f17c9 (diff) | |
download | ffmpeg-376b16d7cc8a0953bc2054a6ccc778d75b7b1c5b.tar.gz |
Merge commit '0db2d94280e260af5f3ad7993c5a6357462f17c9'
* commit '0db2d94280e260af5f3ad7993c5a6357462f17c9':
dsputil: workaround __VA_ARGS__ missing tokenization for MSVC
configure: add section for libc-specific hacks
build: disable ranlib on mingw
parser: Don't use pc as context for av_dlog
h264: Remove an assert on current_picture_ptr being null
Conflicts:
configure
libavcodec/h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/dsputil.h')
-rw-r--r-- | libavcodec/dsputil.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h index 85ac20a6ff..640ca769bc 100644 --- a/libavcodec/dsputil.h +++ b/libavcodec/dsputil.h @@ -634,22 +634,26 @@ void ff_mlp_init_x86(DSPContext* c, AVCodecContext *avctx); # define STRIDE_ALIGN 8 #endif +// Some broken preprocessors need a second expansion +// to be forced to tokenize __VA_ARGS__ +#define E(x) x + #define LOCAL_ALIGNED_A(a, t, v, s, o, ...) \ uint8_t la_##v[sizeof(t s o) + (a)]; \ t (*v) o = (void *)FFALIGN((uintptr_t)la_##v, a) #define LOCAL_ALIGNED_D(a, t, v, s, o, ...) DECLARE_ALIGNED(a, t, v) s o -#define LOCAL_ALIGNED(a, t, v, ...) LOCAL_ALIGNED_A(a, t, v, __VA_ARGS__,,) +#define LOCAL_ALIGNED(a, t, v, ...) E(LOCAL_ALIGNED_A(a, t, v, __VA_ARGS__,,)) #if HAVE_LOCAL_ALIGNED_8 -# define LOCAL_ALIGNED_8(t, v, ...) LOCAL_ALIGNED_D(8, t, v, __VA_ARGS__,,) +# define LOCAL_ALIGNED_8(t, v, ...) E(LOCAL_ALIGNED_D(8, t, v, __VA_ARGS__,,)) #else # define LOCAL_ALIGNED_8(t, v, ...) LOCAL_ALIGNED(8, t, v, __VA_ARGS__) #endif #if HAVE_LOCAL_ALIGNED_16 -# define LOCAL_ALIGNED_16(t, v, ...) LOCAL_ALIGNED_D(16, t, v, __VA_ARGS__,,) +# define LOCAL_ALIGNED_16(t, v, ...) E(LOCAL_ALIGNED_D(16, t, v, __VA_ARGS__,,)) #else # define LOCAL_ALIGNED_16(t, v, ...) LOCAL_ALIGNED(16, t, v, __VA_ARGS__) #endif |