[FFmpeg-devel] [PATCH] Use DECLARE_ALIGNED in libpostprocess

Reimar Doeffinger Reimar.Doeffinger
Thu May 17 00:07:13 CEST 2007

is attached patch desirable? If yes, something similar (but much
larger) remains to be don for libswscale.
I also don't really know where to best best place things like const,
static, attribute_used etc. relative to the DECLARE_ALIGNED macro.
I also haven't tried if there is some way to make DECLARE_ALIGNED work
for compilers that specify alignment via #pragma, but I somewhat doubt

Reimar Doeffinger
-------------- next part --------------
Index: libpostproc/postprocess_template.c
--- libpostproc/postprocess_template.c	(revision 9038)
+++ libpostproc/postprocess_template.c	(working copy)
@@ -3348,7 +3348,7 @@
 static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
         QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c2)
-        PPContext __attribute__((aligned(8))) c= *c2; //copy to stack for faster access
+        DECLARE_ALIGNED(8, PPContext, c)= *c2; //copy to stack for faster access
         int x,y;
         const int mode= COMPILE_TIME_MODE;
@@ -3717,7 +3717,7 @@
                                 else if(mode & H_DEBLOCK)
-                                        unsigned char __attribute__ ((aligned(16))) tempBlock[272];
+                                        DECLARE_ALIGNED(16, unsigned char, tempBlock[272]);
                                         transpose_16x8_char_toPackedAlign_altivec(tempBlock, dstBlock - (4 + 1), stride);
                                         const int t=vertClassify_altivec(tempBlock-48, 16, &c);
Index: libpostproc/postprocess.c
--- libpostproc/postprocess.c	(revision 9038)
+++ libpostproc/postprocess.c	(working copy)
@@ -106,14 +106,14 @@
 //#define NUM_BLOCKS_AT_ONCE 16 //not used yet
 #if defined(ARCH_X86)
-static uint64_t __attribute__((aligned(8))) attribute_used w05= 0x0005000500050005LL;
-static uint64_t __attribute__((aligned(8))) attribute_used w04= 0x0004000400040004LL;
-static uint64_t __attribute__((aligned(8))) attribute_used w20= 0x0020002000200020LL;
-static uint64_t __attribute__((aligned(8))) attribute_used b00= 0x0000000000000000LL;
-static uint64_t __attribute__((aligned(8))) attribute_used b01= 0x0101010101010101LL;
-static uint64_t __attribute__((aligned(8))) attribute_used b02= 0x0202020202020202LL;
-static uint64_t __attribute__((aligned(8))) attribute_used b08= 0x0808080808080808LL;
-static uint64_t __attribute__((aligned(8))) attribute_used b80= 0x8080808080808080LL;
+static DECLARE_ALIGNED(8, uint64_t attribute_used, w05)= 0x0005000500050005LL;
+static DECLARE_ALIGNED(8, uint64_t attribute_used, w04)= 0x0004000400040004LL;
+static DECLARE_ALIGNED(8, uint64_t attribute_used, w20)= 0x0020002000200020LL;
+static DECLARE_ALIGNED(8, uint64_t attribute_used, b00)= 0x0000000000000000LL;
+static DECLARE_ALIGNED(8, uint64_t attribute_used, b01)= 0x0101010101010101LL;
+static DECLARE_ALIGNED(8, uint64_t attribute_used, b02)= 0x0202020202020202LL;
+static DECLARE_ALIGNED(8, uint64_t attribute_used, b08)= 0x0808080808080808LL;
+static DECLARE_ALIGNED(8, uint64_t attribute_used, b80)= 0x8080808080808080LL;
 static uint8_t clip_table[3*256];

More information about the ffmpeg-devel mailing list