Mercurial > libavcodec.hg
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; |