[FFmpeg-devel] [PATCH] Simplify some declarations of aligned arrays

Mans Rullgard mans
Fri Aug 28 10:32:26 CEST 2009


If DECLARE_ALIGNED_16 works on uint64_t it will work smaller types too.
---
 libavcodec/dsputil.c |   23 ++++++++---------------
 1 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
index e1f2eda..69944d4 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/dsputil.c
@@ -3723,8 +3723,7 @@ static int hadamard8_intra8x8_c(/*MpegEncContext*/ void *s, uint8_t *src, uint8_
 
 static int dct_sad8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
     MpegEncContext * const s= (MpegEncContext *)c;
-    DECLARE_ALIGNED_16(uint64_t, aligned_temp[sizeof(DCTELEM)*64/8]);
-    DCTELEM * const temp= (DCTELEM*)aligned_temp;
+    DECLARE_ALIGNED_16(DCTELEM, temp[64]);
 
     assert(h==8);
 
@@ -3788,8 +3787,7 @@ static int dct264_sad8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *s
 
 static int dct_max8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
     MpegEncContext * const s= (MpegEncContext *)c;
-    DECLARE_ALIGNED_16(uint64_t, aligned_temp[sizeof(DCTELEM)*64/8]);
-    DCTELEM * const temp= (DCTELEM*)aligned_temp;
+    DECLARE_ALIGNED_16(DCTELEM, temp[64]);
     int sum=0, i;
 
     assert(h==8);
@@ -3805,9 +3803,8 @@ static int dct_max8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2
 
 static int quant_psnr8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
     MpegEncContext * const s= (MpegEncContext *)c;
-    DECLARE_ALIGNED_16(uint64_t, aligned_temp[sizeof(DCTELEM)*64*2/8]);
-    DCTELEM * const temp= (DCTELEM*)aligned_temp;
-    DCTELEM * const bak = ((DCTELEM*)aligned_temp)+64;
+    DECLARE_ALIGNED_16(DCTELEM, temp[64*2]);
+    DCTELEM * const bak = temp+64;
     int sum=0, i;
 
     assert(h==8);
@@ -3830,12 +3827,9 @@ static int quant_psnr8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *s
 static int rd8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
     MpegEncContext * const s= (MpegEncContext *)c;
     const uint8_t *scantable= s->intra_scantable.permutated;
-    DECLARE_ALIGNED_16(uint64_t, aligned_temp[sizeof(DCTELEM)*64/8]);
-    DECLARE_ALIGNED_16(uint64_t, aligned_src1[8]);
-    DECLARE_ALIGNED_16(uint64_t, aligned_src2[8]);
-    DCTELEM * const temp= (DCTELEM*)aligned_temp;
-    uint8_t * const lsrc1 = (uint8_t*)aligned_src1;
-    uint8_t * const lsrc2 = (uint8_t*)aligned_src2;
+    DECLARE_ALIGNED_16(DCTELEM, temp[64]);
+    DECLARE_ALIGNED_16(uint8_t, lsrc1[64]);
+    DECLARE_ALIGNED_16(uint8_t, lsrc2[64]);
     int i, last, run, bits, level, distortion, start_i;
     const int esc_length= s->ac_esc_length;
     uint8_t * length;
@@ -3909,8 +3903,7 @@ static int rd8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int
 static int bit8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
     MpegEncContext * const s= (MpegEncContext *)c;
     const uint8_t *scantable= s->intra_scantable.permutated;
-    DECLARE_ALIGNED_16(uint64_t, aligned_temp[sizeof(DCTELEM)*64/8]);
-    DCTELEM * const temp= (DCTELEM*)aligned_temp;
+    DECLARE_ALIGNED_16(DCTELEM, temp[64]);
     int i, last, run, bits, level, start_i;
     const int esc_length= s->ac_esc_length;
     uint8_t * length;
-- 
1.6.4




More information about the ffmpeg-devel mailing list