On 08/09/2011 07:18 AM, Måns Rullgård wrote: > Justin Ruggles <[email protected]> writes: > >>>> + LOCAL_ALIGNED_16(CoefType, cpl_coords, [AC3_MAX_BLOCKS], >>>> [AC3_MAX_CHANNELS][16]); >>>> #if CONFIG_AC3ENC_FLOAT >>>> - LOCAL_ALIGNED_16(float, cpl_coords, [AC3_MAX_BLOCKS], >>>> [AC3_MAX_CHANNELS][16]); >>>> LOCAL_ALIGNED_16(int32_t, fixed_cpl_coords, [AC3_MAX_BLOCKS], >>>> [AC3_MAX_CHANNELS][16]); >>>> +#else >>>> +#define fixed_cpl_coords cpl_coords >>>> +#endif >>> >>> Ehw. That is a little icky and will lead to a hard-to-debug conflict >>> later on. I'm wondering if you could use something like a struct >>> (float encoder) vs union (fixed-point encoder) here instead, i.e.: >>> >>> #if CONFIG_AC3ENC_FLOAT >>> struct { >>> #else >>> union { >>> #endif >>> LOCAL_ALIGNED_16(CoefType, cpl_coords, [AC3_MAX_BLOCKS], >>> [AC3_MAX_CHANNELS][16]); >>> LOCAL_ALIGNED_16(int32_t, fixed_cpl_coords, [AC3_MAX_BLOCKS], >>> [AC3_MAX_CHANNELS][16]); >>> } someprefix; >> >> Yeah, I know it's pretty ugly. I didn't think of a union/struct combo. >> It also seems out-of-the-ordinary, but at least it's C and not >> pre-processor trickery. I'll give it a try. > > What about simply int32_t *fixed_cpl_coords = cpl_coords?
Ok, I can do that. Multiplying out the pointer positions within the flat array is not too painful in this situation. -Justin _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
