comparison dsputil.c @ 11193:e5ebf3a17d9d libavcodec

Simplify some declarations of aligned arrays If DECLARE_ALIGNED_16 works on uint64_t it will work smaller types too.
author mru
date Wed, 17 Feb 2010 20:36:10 +0000
parents d27deb92257b
children d464f498e19f
comparison
equal deleted inserted replaced
11192:e1b4f03037d5 11193:e5ebf3a17d9d
3786 return sum; 3786 return sum;
3787 } 3787 }
3788 3788
3789 static int dct_sad8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){ 3789 static int dct_sad8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3790 MpegEncContext * const s= (MpegEncContext *)c; 3790 MpegEncContext * const s= (MpegEncContext *)c;
3791 DECLARE_ALIGNED_16(uint64_t, aligned_temp)[sizeof(DCTELEM)*64/8]; 3791 DECLARE_ALIGNED_16(DCTELEM, temp)[64];
3792 DCTELEM * const temp= (DCTELEM*)aligned_temp;
3793 3792
3794 assert(h==8); 3793 assert(h==8);
3795 3794
3796 s->dsp.diff_pixels(temp, src1, src2, stride); 3795 s->dsp.diff_pixels(temp, src1, src2, stride);
3797 s->dsp.fdct(temp); 3796 s->dsp.fdct(temp);
3851 } 3850 }
3852 #endif 3851 #endif
3853 3852
3854 static int dct_max8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){ 3853 static int dct_max8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3855 MpegEncContext * const s= (MpegEncContext *)c; 3854 MpegEncContext * const s= (MpegEncContext *)c;
3856 DECLARE_ALIGNED_16(uint64_t, aligned_temp)[sizeof(DCTELEM)*64/8]; 3855 DECLARE_ALIGNED_16(DCTELEM, temp)[64];
3857 DCTELEM * const temp= (DCTELEM*)aligned_temp;
3858 int sum=0, i; 3856 int sum=0, i;
3859 3857
3860 assert(h==8); 3858 assert(h==8);
3861 3859
3862 s->dsp.diff_pixels(temp, src1, src2, stride); 3860 s->dsp.diff_pixels(temp, src1, src2, stride);
3868 return sum; 3866 return sum;
3869 } 3867 }
3870 3868
3871 static int quant_psnr8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){ 3869 static int quant_psnr8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3872 MpegEncContext * const s= (MpegEncContext *)c; 3870 MpegEncContext * const s= (MpegEncContext *)c;
3873 DECLARE_ALIGNED_16(uint64_t, aligned_temp)[sizeof(DCTELEM)*64*2/8]; 3871 DECLARE_ALIGNED_16(DCTELEM, temp)[64*2];
3874 DCTELEM * const temp= (DCTELEM*)aligned_temp; 3872 DCTELEM * const bak = temp+64;
3875 DCTELEM * const bak = ((DCTELEM*)aligned_temp)+64;
3876 int sum=0, i; 3873 int sum=0, i;
3877 3874
3878 assert(h==8); 3875 assert(h==8);
3879 s->mb_intra=0; 3876 s->mb_intra=0;
3880 3877
3893 } 3890 }
3894 3891
3895 static int rd8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){ 3892 static int rd8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3896 MpegEncContext * const s= (MpegEncContext *)c; 3893 MpegEncContext * const s= (MpegEncContext *)c;
3897 const uint8_t *scantable= s->intra_scantable.permutated; 3894 const uint8_t *scantable= s->intra_scantable.permutated;
3898 DECLARE_ALIGNED_16(uint64_t, aligned_temp)[sizeof(DCTELEM)*64/8]; 3895 DECLARE_ALIGNED_16(DCTELEM, temp)[64];
3899 DECLARE_ALIGNED_16(uint64_t, aligned_src1)[8]; 3896 DECLARE_ALIGNED_16(uint8_t, lsrc1)[64];
3900 DECLARE_ALIGNED_16(uint64_t, aligned_src2)[8]; 3897 DECLARE_ALIGNED_16(uint8_t, lsrc2)[64];
3901 DCTELEM * const temp= (DCTELEM*)aligned_temp;
3902 uint8_t * const lsrc1 = (uint8_t*)aligned_src1;
3903 uint8_t * const lsrc2 = (uint8_t*)aligned_src2;
3904 int i, last, run, bits, level, distortion, start_i; 3898 int i, last, run, bits, level, distortion, start_i;
3905 const int esc_length= s->ac_esc_length; 3899 const int esc_length= s->ac_esc_length;
3906 uint8_t * length; 3900 uint8_t * length;
3907 uint8_t * last_length; 3901 uint8_t * last_length;
3908 3902
3972 } 3966 }
3973 3967
3974 static int bit8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){ 3968 static int bit8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3975 MpegEncContext * const s= (MpegEncContext *)c; 3969 MpegEncContext * const s= (MpegEncContext *)c;
3976 const uint8_t *scantable= s->intra_scantable.permutated; 3970 const uint8_t *scantable= s->intra_scantable.permutated;
3977 DECLARE_ALIGNED_16(uint64_t, aligned_temp)[sizeof(DCTELEM)*64/8]; 3971 DECLARE_ALIGNED_16(DCTELEM, temp)[64];
3978 DCTELEM * const temp= (DCTELEM*)aligned_temp;
3979 int i, last, run, bits, level, start_i; 3972 int i, last, run, bits, level, start_i;
3980 const int esc_length= s->ac_esc_length; 3973 const int esc_length= s->ac_esc_length;
3981 uint8_t * length; 3974 uint8_t * length;
3982 uint8_t * last_length; 3975 uint8_t * last_length;
3983 3976