diff --git a/libavcodec/aacps.c b/libavcodec/aacps.c index fa7e9ac7a3..1abafe280f 100644 --- a/libavcodec/aacps.c +++ b/libavcodec/aacps.c @@ -21,13 +21,13 @@ #include #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 8b290340d4..0d0e23d83f 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 diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index c0acc64850..b3be2dbf10 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 388d75377e..ae9100c3ac 100644 --- a/libavcodec/ac3enc_template.c +++ b/libavcodec/ac3enc_template.c @@ -28,6 +28,7 @@ #include +#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 3a74cf9d7f..033e9bf0a1 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 f26111a387..ab2757543a 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 7ece9f2bce..4ea3709b08 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 3b88164b2e..203c33ecd9 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 e4568ab453..14c5db03bb 100644 --- a/libavcodec/dsputil.h +++ b/libavcodec/dsputil.h @@ -417,30 +417,4 @@ void ff_dsputil_init_vis(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, 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 1ea04be9e8..7ff0f74a90 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 142cd6bdbf..441deadaab 100644 --- a/libavcodec/dvdec.c +++ b/libavcodec/dvdec.c @@ -35,9 +35,9 @@ * DV decoder */ +#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 b045d2388a..45e1cdf88d 100644 --- a/libavcodec/h264_loopfilter.c +++ b/libavcodec/h264_loopfilter.c @@ -25,9 +25,9 @@ * @author Michael Niedermayer */ +#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 6dac430284..909fa47631 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 "avcodec.h" #include "get_bits.h" #include "dsputil.h" diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c index 30cd58efd3..c3552da35e 100644 --- a/libavcodec/ituh263dec.c +++ b/libavcodec/ituh263dec.c @@ -30,6 +30,7 @@ //#define DEBUG #include +#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 ab6fd9f223..6a2b120230 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 ee1d022234..8e63314779 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 536377a46f..24507a4575 100644 --- a/libavcodec/mpegvideo_motion.c +++ b/libavcodec/mpegvideo_motion.c @@ -22,6 +22,8 @@ */ #include + +#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 fcd127abca..7965183999 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 319bdd4e22..677a6c2f57 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 4c98e9964f..a131c105eb 100644 --- a/libavcodec/rv34.c +++ b/libavcodec/rv34.c @@ -27,7 +27,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 328c96c747..f61e9e639d 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 d47db4818c..1a2cc3bed7 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 cc2b6619b6..79a29ce506 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" void ff_imdct36_float_sse(float *out, float *buf, float *in, float *win); diff --git a/libavutil/internal.h b/libavutil/internal.h index 5bc6a085d6..43cbaeaca2 100644 --- a/libavutil/internal.h +++ b/libavutil/internal.h @@ -57,6 +57,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);\