[FFmpeg-devel] [PATCH] Make DECLARE_ALIGNED macros take array specifiers as separate argument

Måns Rullgård mans
Wed Jan 20 23:17:55 CET 2010


Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:

> On Wed, Jan 20, 2010 at 09:08:13PM +0000, Mans Rullgard wrote:
>>  void dsputil_init_sh4(DSPContext* c, AVCodecContext *avctx);
>>  void dsputil_init_vis(DSPContext* c, AVCodecContext *avctx);
>>  
>> -#define DECLARE_ALIGNED_16(t, v) DECLARE_ALIGNED(16, t, v)
>> -#define DECLARE_ALIGNED_8(t, v)  DECLARE_ALIGNED(8, t, v)
>> +#define DECLARE_ALIGNED_16(t, v, ...) DECLARE_ALIGNED(16, t, v, __VA_ARGS__)
>> +#define DECLARE_ALIGNED_8(t, v, ...)  DECLARE_ALIGNED(8, t, v, __VA_ARGS__)
>
> Sorry for being a pain, but doesn't this kind of macro strictly not
> allow you to use DECLARE_ALIGNED_16 with only two arguments?

Thanks, you're right.  Variadic functions are not like that though, grr.

I have a different idea which should work, although it's slightly less
flexible.  It is possible to define the macros such that a declaration
will look like this instead:

    DECLARE_ALIGNED(16, type, var)[x]

Does that look reasonable?

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list