diff --git a/libavcodec/aacps.c b/libavcodec/aacps.c index 25ed1d0292cd5201026304ba0ca06e20b21d504b..b82001e9675f7f340b3335559b600e9a5a2d0053 100644 --- a/libavcodec/aacps.c +++ b/libavcodec/aacps.c @@ -21,13 +21,13 @@ #include <stdint.h> #include "libavutil/common.h" +#include "libavutil/internal.h" #include "libavutil/mathematics.h" #include "avcodec.h" #include "get_bits.h" #include "aacps.h" #include "aacps_tablegen.h" #include "aacpsdata.c" -#include "dsputil.h" #define PS_BASELINE 0 ///< Operate in Baseline PS mode ///< Baseline implies 10 or 20 stereo bands, diff --git a/libavcodec/aacsbr.c b/libavcodec/aacsbr.c index 4b6d34f89f7e7a1111b7d3a8ce5ecb9eb11634e9..d746b6ea49f1b7ff7cf971b69036070457dd7c00 100644 --- a/libavcodec/aacsbr.c +++ b/libavcodec/aacsbr.c @@ -33,6 +33,7 @@ #include "fft.h" #include "aacps.h" #include "sbrdsp.h" +#include "libavutil/internal.h" #include "libavutil/libm.h" #include "libavutil/avassert.h" diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index de8defceb835638fed995cf48bb5a04de1c8d9e3..16f0cdc4de88ef772dae9d42d6577d7934f78f13 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -34,10 +34,10 @@ #include "libavutil/avstring.h" #include "libavutil/channel_layout.h" #include "libavutil/crc.h" +#include "libavutil/internal.h" #include "libavutil/opt.h" #include "avcodec.h" #include "put_bits.h" -#include "dsputil.h" #include "ac3dsp.h" #include "ac3.h" #include "fft.h" diff --git a/libavcodec/ac3enc_template.c b/libavcodec/ac3enc_template.c index b1174dc2198f03041e98a76401d09b36eb939bae..18a849da8a0d20ed3c1a74f0ec6b07de89152f0f 100644 --- a/libavcodec/ac3enc_template.c +++ b/libavcodec/ac3enc_template.c @@ -28,6 +28,7 @@ #include <stdint.h> +#include "libavutil/internal.h" /* prototypes for static functions in ac3enc_fixed.c and ac3enc_float.c */ diff --git a/libavcodec/bink.c b/libavcodec/bink.c index a48b8465d71b8261f8643af7995a0c5d85ded36b..5d000a86b4d10430ee438dbeecc5ee78287b1b1f 100644 --- a/libavcodec/bink.c +++ b/libavcodec/bink.c @@ -21,6 +21,7 @@ */ #include "libavutil/imgutils.h" +#include "libavutil/internal.h" #include "avcodec.h" #include "dsputil.h" #include "binkdata.h" diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c index e7ae6e2d20e6f3aadd459645f2260bfc9d4bcd46..ff6375dd79698c680dd3b3e9165bfae7f7cf621c 100644 --- a/libavcodec/dcadec.c +++ b/libavcodec/dcadec.c @@ -29,12 +29,12 @@ #include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/float_dsp.h" +#include "libavutil/internal.h" #include "libavutil/intmath.h" #include "libavutil/intreadwrite.h" #include "libavutil/mathematics.h" #include "libavutil/samplefmt.h" #include "avcodec.h" -#include "dsputil.h" #include "fft.h" #include "get_bits.h" #include "put_bits.h" diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c index 51f2af062ac3be6cac11ed8da89f4dc2d17e152b..4b6ce2f60b9d38d9435b2912fa96e77c5cfdbb26 100644 --- a/libavcodec/dnxhdenc.c +++ b/libavcodec/dnxhdenc.c @@ -26,6 +26,7 @@ //#define DEBUG #define RC_VARIANCE 1 // use variance or ssd for fast rc +#include "libavutil/internal.h" #include "libavutil/opt.h" #include "avcodec.h" #include "dsputil.h" diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c index 518abae319ffee13821229e0154bff543f27b7bc..aff950ac4edd5500bf806a883245e76a640e03d7 100644 --- a/libavcodec/dsputil.c +++ b/libavcodec/dsputil.c @@ -28,6 +28,7 @@ */ #include "libavutil/imgutils.h" +#include "libavutil/internal.h" #include "avcodec.h" #include "copy_block.h" #include "dsputil.h" diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h index 4c806d17e3743c826d9c6e95a983959bdaee01e1..b1adeccc25a20ebacd0759526eddbd21f13e6997 100644 --- a/libavcodec/dsputil.h +++ b/libavcodec/dsputil.h @@ -436,30 +436,4 @@ void ff_dsputil_init_dwt(DSPContext *c); # 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, la_##v) s o; \ - t (*v) o = la_##v - -#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, ...) 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, ...) E(LOCAL_ALIGNED_D(16, t, v, __VA_ARGS__,,)) -#else -# define LOCAL_ALIGNED_16(t, v, ...) LOCAL_ALIGNED(16, t, v, __VA_ARGS__) -#endif - #endif /* AVCODEC_DSPUTIL_H */ diff --git a/libavcodec/dv.c b/libavcodec/dv.c index e2a00a6c1453a96e99c096dce4a9970bf82eee10..2a7fbe6672dbb2f1aedcf326cf228785a505b214 100644 --- a/libavcodec/dv.c +++ b/libavcodec/dv.c @@ -38,6 +38,7 @@ * DV codec. */ +#include "libavutil/internal.h" #include "libavutil/pixdesc.h" #include "avcodec.h" #include "dsputil.h" diff --git a/libavcodec/dvdec.c b/libavcodec/dvdec.c index bb60fc0b13aad51b577f86beed154799ae5210ad..64d2259a7b6c738d83ef700b4b4aedf09c01bffb 100644 --- a/libavcodec/dvdec.c +++ b/libavcodec/dvdec.c @@ -36,9 +36,9 @@ */ #include "libavutil/avassert.h" +#include "libavutil/internal.h" #include "libavutil/pixdesc.h" #include "avcodec.h" -#include "dsputil.h" #include "internal.h" #include "get_bits.h" #include "put_bits.h" diff --git a/libavcodec/h264_loopfilter.c b/libavcodec/h264_loopfilter.c index 7cd9f6918905743ef3a5ab12e4318955432ee384..0ffc1aa63efae69056084d481e7c2bdfea7c8af2 100644 --- a/libavcodec/h264_loopfilter.c +++ b/libavcodec/h264_loopfilter.c @@ -25,9 +25,9 @@ * @author Michael Niedermayer <michaelni@gmx.at> */ +#include "libavutil/internal.h" #include "libavutil/intreadwrite.h" #include "internal.h" -#include "dsputil.h" #include "avcodec.h" #include "mpegvideo.h" #include "h264.h" diff --git a/libavcodec/imc.c b/libavcodec/imc.c index a09e3c5d9fee558935ec1c3e1114b3d40d6ae954..c127b2559ef5043a7dee814f92c4e42c674d7aeb 100644 --- a/libavcodec/imc.c +++ b/libavcodec/imc.c @@ -37,6 +37,7 @@ #include "libavutil/channel_layout.h" #include "libavutil/float_dsp.h" +#include "libavutil/internal.h" #include "libavutil/libm.h" #include "avcodec.h" #include "get_bits.h" diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c index 1c7e34f31723f9d49c211f179bf92db4bbb7dcf3..4672e085bc807ededb9877b3f041f80d4c829d69 100644 --- a/libavcodec/ituh263dec.c +++ b/libavcodec/ituh263dec.c @@ -32,6 +32,7 @@ //#define DEBUG #include <limits.h> +#include "libavutil/internal.h" #include "libavutil/mathematics.h" #include "dsputil.h" #include "avcodec.h" diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c index 2326a9bd8bc6c8b897a595e1cd906d1be6675513..8d5955af34f967d71d5a8538b5ba652eb945823a 100644 --- a/libavcodec/mpc7.c +++ b/libavcodec/mpc7.c @@ -26,6 +26,7 @@ */ #include "libavutil/channel_layout.h" +#include "libavutil/internal.h" #include "libavutil/lfg.h" #include "avcodec.h" #include "get_bits.h" diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 87531d7cd9fbb0706ab81b076b7bddadaace65c5..66781f9e24a5eb0a7fd0017fd950b849283cec7c 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -27,6 +27,7 @@ * The simplest mpeg encoder (well, it was the simplest!). */ +#include "libavutil/internal.h" #include "libavutil/intmath.h" #include "libavutil/mathematics.h" #include "libavutil/pixdesc.h" diff --git a/libavcodec/mpegvideo_motion.c b/libavcodec/mpegvideo_motion.c index 22381dea273889a6c7e59a5def62a635bd9e9f10..565f6cb286693a593eeaa5e61f6036c2d1837fbb 100644 --- a/libavcodec/mpegvideo_motion.c +++ b/libavcodec/mpegvideo_motion.c @@ -22,7 +22,9 @@ */ #include <string.h> + #include "libavutil/avassert.h" +#include "libavutil/internal.h" #include "avcodec.h" #include "dsputil.h" #include "mpegvideo.h" diff --git a/libavcodec/ppc/mpegaudiodec_altivec.c b/libavcodec/ppc/mpegaudiodec_altivec.c index bf6e1c33a429870723864156cd0f7e10c631cc43..1152fd77aca30094e8f2e7977e18af80322e9ffa 100644 --- a/libavcodec/ppc/mpegaudiodec_altivec.c +++ b/libavcodec/ppc/mpegaudiodec_altivec.c @@ -21,8 +21,8 @@ #include "dsputil_altivec.h" #include "libavutil/attributes.h" +#include "libavutil/internal.h" #include "libavutil/ppc/util_altivec.h" -#include "libavcodec/dsputil.h" #include "libavcodec/mpegaudiodsp.h" #define MACS(rt, ra, rb) rt+=(ra)*(rb) diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c index 8bafc010e1da73413d69804ea6ec5e7ae6e36cff..e0e876dbd968beeeb149fc92f01299b5cc9629ca 100644 --- a/libavcodec/ra288.c +++ b/libavcodec/ra288.c @@ -21,6 +21,7 @@ #include "libavutil/channel_layout.h" #include "libavutil/float_dsp.h" +#include "libavutil/internal.h" #include "avcodec.h" #include "internal.h" #define BITSTREAM_READER_LE diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c index eb431ee1e2e193d37de6b488af8468be7345f007..a2f074eb1283b5cd6814cfabd8f0bf742b48e820 100644 --- a/libavcodec/rv34.c +++ b/libavcodec/rv34.c @@ -28,7 +28,6 @@ #include "libavutil/internal.h" #include "avcodec.h" -#include "dsputil.h" #include "mpegvideo.h" #include "golomb.h" #include "internal.h" diff --git a/libavcodec/simple_idct.c b/libavcodec/simple_idct.c index 2cbe568c203f675a22c26875496bbf8059c7a265..d204565ea42f5d7f32f4a7fa5de2ff480e972bb6 100644 --- a/libavcodec/simple_idct.c +++ b/libavcodec/simple_idct.c @@ -27,7 +27,6 @@ #include "libavutil/intreadwrite.h" #include "avcodec.h" -#include "dsputil.h" #include "mathops.h" #include "simple_idct.h" diff --git a/libavcodec/takdec.c b/libavcodec/takdec.c index af6454304cea1b87dc3533d2f56d905d89b76bb6..f6cacb02c8b064a017304e67ddac8f394efbf269 100644 --- a/libavcodec/takdec.c +++ b/libavcodec/takdec.c @@ -25,6 +25,7 @@ * @author Paul B Mahol */ +#include "libavutil/internal.h" #include "libavutil/samplefmt.h" #include "tak.h" #include "avcodec.h" diff --git a/libavcodec/x86/mpegaudiodec.c b/libavcodec/x86/mpegaudiodec.c index ee93a84956534ce532e48cebc2b99ef1ae69b330..287d8ff1268ec0f706257fe5e5385bbe1e0556f9 100644 --- a/libavcodec/x86/mpegaudiodec.c +++ b/libavcodec/x86/mpegaudiodec.c @@ -21,9 +21,9 @@ #include "libavutil/attributes.h" #include "libavutil/cpu.h" +#include "libavutil/internal.h" #include "libavutil/x86/asm.h" #include "libavutil/x86/cpu.h" -#include "libavcodec/dsputil.h" #include "libavcodec/mpegaudiodsp.h" #define DECL(CPU)\ diff --git a/libavutil/internal.h b/libavutil/internal.h index 487d0983b1107a171654a5eccd6a301d4dd26370..6186d8ec857dc94aa88040869827a60c9c15875a 100644 --- a/libavutil/internal.h +++ b/libavutil/internal.h @@ -58,6 +58,32 @@ # define INT_BIT (CHAR_BIT * sizeof(int)) #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, la_##v) s o; \ + t (*v) o = la_##v + +#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, ...) 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, ...) E(LOCAL_ALIGNED_D(16, t, v, __VA_ARGS__,,)) +#else +# define LOCAL_ALIGNED_16(t, v, ...) LOCAL_ALIGNED(16, t, v, __VA_ARGS__) +#endif + #define FF_ALLOC_OR_GOTO(ctx, p, size, label)\ {\ p = av_malloc(size);\