comparison dsputil.c @ 3089:072dbc669253 libavcodec

MSVC-compatible __align8/__align16 declaration patch by Steve Lhomme, steve .dot. lhomme .at. free .dot. fr
author diego
date Sun, 05 Feb 2006 13:35:17 +0000
parents 0b546eab515d
children 2d35fb3cb940
comparison
equal deleted inserted replaced
3088:03582724f3de 3089:072dbc669253
60 22, 30, 7, 15, 23, 31, 38, 46, 60 22, 30, 7, 15, 23, 31, 38, 46,
61 53, 61, 54, 62, 39, 47, 55, 63, 61 53, 61, 54, 62, 39, 47, 55, 63,
62 }; 62 };
63 63
64 /* not permutated inverse zigzag_direct + 1 for MMX quantizer */ 64 /* not permutated inverse zigzag_direct + 1 for MMX quantizer */
65 uint16_t __align8 inv_zigzag_direct16[64] = {0, }; 65 DECLARE_ALIGNED_8(uint16_t, inv_zigzag_direct16[64]) = {0, };
66 66
67 const uint8_t ff_alternate_horizontal_scan[64] = { 67 const uint8_t ff_alternate_horizontal_scan[64] = {
68 0, 1, 2, 3, 8, 9, 16, 17, 68 0, 1, 2, 3, 8, 9, 16, 17,
69 10, 11, 4, 5, 6, 7, 15, 14, 69 10, 11, 4, 5, 6, 7, 15, 14,
70 13, 12, 19, 18, 24, 25, 32, 33, 70 13, 12, 19, 18, 24, 25, 32, 33,
3400 return sum; 3400 return sum;
3401 } 3401 }
3402 3402
3403 static int dct_sad8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){ 3403 static int dct_sad8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3404 MpegEncContext * const s= (MpegEncContext *)c; 3404 MpegEncContext * const s= (MpegEncContext *)c;
3405 uint64_t __align8 aligned_temp[sizeof(DCTELEM)*64/8]; 3405 DECLARE_ALIGNED_8(uint64_t, aligned_temp[sizeof(DCTELEM)*64/8]);
3406 DCTELEM * const temp= (DCTELEM*)aligned_temp; 3406 DCTELEM * const temp= (DCTELEM*)aligned_temp;
3407 int sum=0, i; 3407 int sum=0, i;
3408 3408
3409 assert(h==8); 3409 assert(h==8);
3410 3410
3470 } 3470 }
3471 #endif 3471 #endif
3472 3472
3473 static int dct_max8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){ 3473 static int dct_max8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3474 MpegEncContext * const s= (MpegEncContext *)c; 3474 MpegEncContext * const s= (MpegEncContext *)c;
3475 uint64_t __align8 aligned_temp[sizeof(DCTELEM)*64/8]; 3475 DECLARE_ALIGNED_8(uint64_t, aligned_temp[sizeof(DCTELEM)*64/8]);
3476 DCTELEM * const temp= (DCTELEM*)aligned_temp; 3476 DCTELEM * const temp= (DCTELEM*)aligned_temp;
3477 int sum=0, i; 3477 int sum=0, i;
3478 3478
3479 assert(h==8); 3479 assert(h==8);
3480 3480
3489 3489
3490 void simple_idct(DCTELEM *block); //FIXME 3490 void simple_idct(DCTELEM *block); //FIXME
3491 3491
3492 static int quant_psnr8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){ 3492 static int quant_psnr8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3493 MpegEncContext * const s= (MpegEncContext *)c; 3493 MpegEncContext * const s= (MpegEncContext *)c;
3494 uint64_t __align8 aligned_temp[sizeof(DCTELEM)*64*2/8]; 3494 DECLARE_ALIGNED_8 (uint64_t, aligned_temp[sizeof(DCTELEM)*64*2/8]);
3495 DCTELEM * const temp= (DCTELEM*)aligned_temp; 3495 DCTELEM * const temp= (DCTELEM*)aligned_temp;
3496 DCTELEM * const bak = ((DCTELEM*)aligned_temp)+64; 3496 DCTELEM * const bak = ((DCTELEM*)aligned_temp)+64;
3497 int sum=0, i; 3497 int sum=0, i;
3498 3498
3499 assert(h==8); 3499 assert(h==8);
3514 } 3514 }
3515 3515
3516 static int rd8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){ 3516 static int rd8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3517 MpegEncContext * const s= (MpegEncContext *)c; 3517 MpegEncContext * const s= (MpegEncContext *)c;
3518 const uint8_t *scantable= s->intra_scantable.permutated; 3518 const uint8_t *scantable= s->intra_scantable.permutated;
3519 uint64_t __align8 aligned_temp[sizeof(DCTELEM)*64/8]; 3519 DECLARE_ALIGNED_8 (uint64_t, aligned_temp[sizeof(DCTELEM)*64/8]);
3520 uint64_t __align8 aligned_bak[stride]; 3520 DECLARE_ALIGNED_8 (uint64_t, aligned_bak[stride]);
3521 DCTELEM * const temp= (DCTELEM*)aligned_temp; 3521 DCTELEM * const temp= (DCTELEM*)aligned_temp;
3522 uint8_t * const bak= (uint8_t*)aligned_bak; 3522 uint8_t * const bak= (uint8_t*)aligned_bak;
3523 int i, last, run, bits, level, distoration, start_i; 3523 int i, last, run, bits, level, distoration, start_i;
3524 const int esc_length= s->ac_esc_length; 3524 const int esc_length= s->ac_esc_length;
3525 uint8_t * length; 3525 uint8_t * length;
3593 } 3593 }
3594 3594
3595 static int bit8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){ 3595 static int bit8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3596 MpegEncContext * const s= (MpegEncContext *)c; 3596 MpegEncContext * const s= (MpegEncContext *)c;
3597 const uint8_t *scantable= s->intra_scantable.permutated; 3597 const uint8_t *scantable= s->intra_scantable.permutated;
3598 uint64_t __align8 aligned_temp[sizeof(DCTELEM)*64/8]; 3598 DECLARE_ALIGNED_8 (uint64_t, aligned_temp[sizeof(DCTELEM)*64/8]);
3599 DCTELEM * const temp= (DCTELEM*)aligned_temp; 3599 DCTELEM * const temp= (DCTELEM*)aligned_temp;
3600 int i, last, run, bits, level, start_i; 3600 int i, last, run, bits, level, start_i;
3601 const int esc_length= s->ac_esc_length; 3601 const int esc_length= s->ac_esc_length;
3602 uint8_t * length; 3602 uint8_t * length;
3603 uint8_t * last_length; 3603 uint8_t * last_length;