History

Drop DCTELEM typedef

It does not help as an abstraction and adds dsputil dependencies.

Diego Biurrun committed 13 years ago

Commit 88bd7fd1 parent 2e4bb99163 files · +835 −812Browse files

Showing the changes to libavcodec/ppc (6 of 163 files). Show all

Unified · Split

6 files
  1. libavcodec/ppc/dsputil_altivec.c +3 −3
  2. libavcodec/ppc/dsputil_ppc.c +7 −7
  3. libavcodec/ppc/h264_altivec.c +9 −9
  4. libavcodec/ppc/mpegvideo_altivec.c +1 −1
  5. libavcodec/ppc/vc1dsp_altivec.c +2 −2
  6. libavcodec/ppc/vp3dsp_altivec.c +2 −2
libavcodec/ppc/dsputil_altivec.c+3−3
@@ -476,7 +476,7 @@ static int pix_sum_altivec(uint8_t * pix, int line_size) · 475 unmodified lines
476 return s;476 return s;
477}477}
478 478
479static void get_pixels_altivec(DCTELEM *restrict block, const uint8_t *pixels, int line_size)479static void get_pixels_altivec(int16_t *restrict block, const uint8_t *pixels, int line_size)
480{480{
481 int i;481 int i;
482 vector unsigned char perm = vec_lvsl(0, pixels);482 vector unsigned char perm = vec_lvsl(0, pixels);
@@ -502,7 +502,7 @@ static void get_pixels_altivec(DCTELEM *restrict block, const uint8_t *pixels, i · 19 unmodified lines
502 }502 }
503}503}
504 504
505static void diff_pixels_altivec(DCTELEM *restrict block, const uint8_t *s1,505static void diff_pixels_altivec(int16_t *restrict block, const uint8_t *s1,
506 const uint8_t *s2, int stride)506 const uint8_t *s2, int stride)
507{507{
508 int i;508 int i;
@@ -576,7 +576,7 @@ static void diff_pixels_altivec(DCTELEM *restrict block, const uint8_t *s1, · 67 unmodified lines
576}576}
577 577
578 578
579static void clear_block_altivec(DCTELEM *block) {579static void clear_block_altivec(int16_t *block) {
580 LOAD_ZERO;580 LOAD_ZERO;
581 vec_st(zero_s16v, 0, block);581 vec_st(zero_s16v, 0, block);
582 vec_st(zero_s16v, 16, block);582 vec_st(zero_s16v, 16, block);
libavcodec/ppc/dsputil_ppc.c+7−7
@@ -47,7 +47,7 @@ distinguish, and use dcbz (32 bytes) or dcbzl (one cache line) as required. · 46 unmodified lines
47see <http://developer.apple.com/technotes/tn/tn2087.html>47see <http://developer.apple.com/technotes/tn/tn2087.html>
48and <http://developer.apple.com/technotes/tn/tn2086.html>48and <http://developer.apple.com/technotes/tn/tn2086.html>
49*/49*/
50static void clear_blocks_dcbz32_ppc(DCTELEM *blocks)50static void clear_blocks_dcbz32_ppc(int16_t *blocks)
51{51{
52 register int misal = ((unsigned long)blocks & 0x00000010);52 register int misal = ((unsigned long)blocks & 0x00000010);
53 register int i = 0;53 register int i = 0;
@@ -58,7 +58,7 @@ static void clear_blocks_dcbz32_ppc(DCTELEM *blocks) · 4 unmodified lines
58 ((unsigned long*)blocks)[3] = 0L;58 ((unsigned long*)blocks)[3] = 0L;
59 i += 16;59 i += 16;
60 }60 }
61 for ( ; i < sizeof(DCTELEM)*6*64-31 ; i += 32) {61 for ( ; i < sizeof(int16_t)*6*64-31 ; i += 32) {
62 __asm__ volatile("dcbz %0,%1" : : "b" (blocks), "r" (i) : "memory");62 __asm__ volatile("dcbz %0,%1" : : "b" (blocks), "r" (i) : "memory");
63 }63 }
64 if (misal) {64 if (misal) {
@@ -73,7 +73,7 @@ static void clear_blocks_dcbz32_ppc(DCTELEM *blocks) · 8 unmodified lines
73/* same as above, when dcbzl clear a whole 128B cache line73/* same as above, when dcbzl clear a whole 128B cache line
74 i.e. the PPC970 aka G5 */74 i.e. the PPC970 aka G5 */
75#if HAVE_DCBZL75#if HAVE_DCBZL
76static void clear_blocks_dcbz128_ppc(DCTELEM *blocks)76static void clear_blocks_dcbz128_ppc(int16_t *blocks)
77{77{
78 register int misal = ((unsigned long)blocks & 0x0000007f);78 register int misal = ((unsigned long)blocks & 0x0000007f);
79 register int i = 0;79 register int i = 0;
@@ -81,17 +81,17 @@ static void clear_blocks_dcbz128_ppc(DCTELEM *blocks) · 1 unmodified line
81 // we could probably also optimize this case,81 // we could probably also optimize this case,
82 // but there's not much point as the machines82 // but there's not much point as the machines
83 // aren't available yet (2003-06-26)83 // aren't available yet (2003-06-26)
84 memset(blocks, 0, sizeof(DCTELEM)*6*64);84 memset(blocks, 0, sizeof(int16_t)*6*64);
85 }85 }
86 else86 else
87 for ( ; i < sizeof(DCTELEM)*6*64 ; i += 128) {87 for ( ; i < sizeof(int16_t)*6*64 ; i += 128) {
88 __asm__ volatile("dcbzl %0,%1" : : "b" (blocks), "r" (i) : "memory");88 __asm__ volatile("dcbzl %0,%1" : : "b" (blocks), "r" (i) : "memory");
89 }89 }
90}90}
91#else91#else
92static void clear_blocks_dcbz128_ppc(DCTELEM *blocks)92static void clear_blocks_dcbz128_ppc(int16_t *blocks)
93{93{
94 memset(blocks, 0, sizeof(DCTELEM)*6*64);94 memset(blocks, 0, sizeof(int16_t)*6*64);
95}95}
96#endif96#endif
97 97
libavcodec/ppc/h264_altivec.c+9−9
@@ -315,7 +315,7 @@ H264_MC(avg_, 16, altivec) · 314 unmodified lines
315 va_u32 = vec_splat((vec_u32)va_u8, 0); \315 va_u32 = vec_splat((vec_u32)va_u8, 0); \
316 vec_ste(va_u32, element, (uint32_t*)dst);316 vec_ste(va_u32, element, (uint32_t*)dst);
317 317
318static void ff_h264_idct_add_altivec(uint8_t *dst, DCTELEM *block, int stride)318static void ff_h264_idct_add_altivec(uint8_t *dst, int16_t *block, int stride)
319{319{
320 vec_s16 va0, va1, va2, va3;320 vec_s16 va0, va1, va2, va3;
321 vec_s16 vz0, vz1, vz2, vz3;321 vec_s16 vz0, vz1, vz2, vz3;
@@ -429,7 +429,7 @@ static void ff_h264_idct_add_altivec(uint8_t *dst, DCTELEM *block, int stride) · 107 unmodified lines
429 vec_st( hv, 0, dest ); \429 vec_st( hv, 0, dest ); \
430 }430 }
431 431
432static void ff_h264_idct8_add_altivec( uint8_t *dst, DCTELEM *dct, int stride ) {432static void ff_h264_idct8_add_altivec( uint8_t *dst, int16_t *dct, int stride ) {
433 vec_s16 s0, s1, s2, s3, s4, s5, s6, s7;433 vec_s16 s0, s1, s2, s3, s4, s5, s6, s7;
434 vec_s16 d0, d1, d2, d3, d4, d5, d6, d7;434 vec_s16 d0, d1, d2, d3, d4, d5, d6, d7;
435 vec_s16 idct0, idct1, idct2, idct3, idct4, idct5, idct6, idct7;435 vec_s16 idct0, idct1, idct2, idct3, idct4, idct5, idct6, idct7;
@@ -473,7 +473,7 @@ static void ff_h264_idct8_add_altivec( uint8_t *dst, DCTELEM *dct, int stride ) · 37 unmodified lines
473 ALTIVEC_STORE_SUM_CLIP(&dst[7*stride], idct7, perm_ldv, perm_stv, sel);473 ALTIVEC_STORE_SUM_CLIP(&dst[7*stride], idct7, perm_ldv, perm_stv, sel);
474}474}
475 475
476static av_always_inline void h264_idct_dc_add_internal(uint8_t *dst, DCTELEM *block, int stride, int size)476static av_always_inline void h264_idct_dc_add_internal(uint8_t *dst, int16_t *block, int stride, int size)
477{477{
478 vec_s16 dc16;478 vec_s16 dc16;
479 vec_u8 dcplus, dcminus, v0, v1, v2, v3, aligner;479 vec_u8 dcplus, dcminus, v0, v1, v2, v3, aligner;
@@ -518,17 +518,17 @@ static av_always_inline void h264_idct_dc_add_internal(uint8_t *dst, DCTELEM *bl · 38 unmodified lines
518 }518 }
519}519}
520 520
521static void h264_idct_dc_add_altivec(uint8_t *dst, DCTELEM *block, int stride)521static void h264_idct_dc_add_altivec(uint8_t *dst, int16_t *block, int stride)
522{522{
523 h264_idct_dc_add_internal(dst, block, stride, 4);523 h264_idct_dc_add_internal(dst, block, stride, 4);
524}524}
525 525
526static void ff_h264_idct8_dc_add_altivec(uint8_t *dst, DCTELEM *block, int stride)526static void ff_h264_idct8_dc_add_altivec(uint8_t *dst, int16_t *block, int stride)
527{527{
528 h264_idct_dc_add_internal(dst, block, stride, 8);528 h264_idct_dc_add_internal(dst, block, stride, 8);
529}529}
530 530
531static void ff_h264_idct_add16_altivec(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[15*8]){531static void ff_h264_idct_add16_altivec(uint8_t *dst, const int *block_offset, int16_t *block, int stride, const uint8_t nnzc[15*8]){
532 int i;532 int i;
533 for(i=0; i<16; i++){533 for(i=0; i<16; i++){
534 int nnz = nnzc[ scan8[i] ];534 int nnz = nnzc[ scan8[i] ];
@@ -539,7 +539,7 @@ static void ff_h264_idct_add16_altivec(uint8_t *dst, const int *block_offset, DC · 4 unmodified lines
539 }539 }
540}540}
541 541
542static void ff_h264_idct_add16intra_altivec(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[15*8]){542static void ff_h264_idct_add16intra_altivec(uint8_t *dst, const int *block_offset, int16_t *block, int stride, const uint8_t nnzc[15*8]){
543 int i;543 int i;
544 for(i=0; i<16; i++){544 for(i=0; i<16; i++){
545 if(nnzc[ scan8[i] ]) ff_h264_idct_add_altivec(dst + block_offset[i], block + i*16, stride);545 if(nnzc[ scan8[i] ]) ff_h264_idct_add_altivec(dst + block_offset[i], block + i*16, stride);
@@ -547,7 +547,7 @@ static void ff_h264_idct_add16intra_altivec(uint8_t *dst, const int *block_offse · 1 unmodified line
547 }547 }
548}548}
549 549
550static void ff_h264_idct8_add4_altivec(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[15*8]){550static void ff_h264_idct8_add4_altivec(uint8_t *dst, const int *block_offset, int16_t *block, int stride, const uint8_t nnzc[15*8]){
551 int i;551 int i;
552 for(i=0; i<16; i+=4){552 for(i=0; i<16; i+=4){
553 int nnz = nnzc[ scan8[i] ];553 int nnz = nnzc[ scan8[i] ];
@@ -558,7 +558,7 @@ static void ff_h264_idct8_add4_altivec(uint8_t *dst, const int *block_offset, DC · 4 unmodified lines
558 }558 }
559}559}
560 560
561static void ff_h264_idct_add8_altivec(uint8_t **dest, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[15*8]){561static void ff_h264_idct_add8_altivec(uint8_t **dest, const int *block_offset, int16_t *block, int stride, const uint8_t nnzc[15*8]){
562 int i, j;562 int i, j;
563 for (j = 1; j < 3; j++) {563 for (j = 1; j < 3; j++) {
564 for(i = j * 16; i < j * 16 + 4; i++){564 for(i = j * 16; i < j * 16 + 4; i++){
libavcodec/ppc/mpegvideo_altivec.c+1−1
@@ -35,7 +35,7 @@ · 34 unmodified lines
35/* AltiVec version of dct_unquantize_h26335/* AltiVec version of dct_unquantize_h263
36 this code assumes `block' is 16 bytes-aligned */36 this code assumes `block' is 16 bytes-aligned */
37static void dct_unquantize_h263_altivec(MpegEncContext *s,37static void dct_unquantize_h263_altivec(MpegEncContext *s,
38 DCTELEM *block, int n, int qscale)38 int16_t *block, int n, int qscale)
39{39{
40 int i, level, qmul, qadd;40 int i, level, qmul, qadd;
41 int nCoeffs;41 int nCoeffs;
libavcodec/ppc/vc1dsp_altivec.c+2−2
@@ -129,7 +129,7 @@ do { \ · 128 unmodified lines
129 129
130/** Do inverse transform on 8x8 block130/** Do inverse transform on 8x8 block
131*/131*/
132static void vc1_inv_trans_8x8_altivec(DCTELEM block[64])132static void vc1_inv_trans_8x8_altivec(int16_t block[64])
133{133{
134 vector signed short src0, src1, src2, src3, src4, src5, src6, src7;134 vector signed short src0, src1, src2, src3, src4, src5, src6, src7;
135 vector signed int s0, s1, s2, s3, s4, s5, s6, s7;135 vector signed int s0, s1, s2, s3, s4, s5, s6, s7;
@@ -224,7 +224,7 @@ static void vc1_inv_trans_8x8_altivec(DCTELEM block[64]) · 88 unmodified lines
224 224
225/** Do inverse transform on 8x4 part of block225/** Do inverse transform on 8x4 part of block
226*/226*/
227static void vc1_inv_trans_8x4_altivec(uint8_t *dest, int stride, DCTELEM *block)227static void vc1_inv_trans_8x4_altivec(uint8_t *dest, int stride, int16_t *block)
228{228{
229 vector signed short src0, src1, src2, src3, src4, src5, src6, src7;229 vector signed short src0, src1, src2, src3, src4, src5, src6, src7;
230 vector signed int s0, s1, s2, s3, s4, s5, s6, s7;230 vector signed int s0, s1, s2, s3, s4, s5, s6, s7;
libavcodec/ppc/vp3dsp_altivec.c+2−2
@@ -116,7 +116,7 @@ static inline vec_s16 M16(vec_s16 a, vec_s16 C) · 115 unmodified lines
116#define ADD8(a) vec_add(a, eight)116#define ADD8(a) vec_add(a, eight)
117#define SHIFT4(a) vec_sra(a, four)117#define SHIFT4(a) vec_sra(a, four)
118 118
119static void vp3_idct_put_altivec(uint8_t *dst, int stride, DCTELEM block[64])119static void vp3_idct_put_altivec(uint8_t *dst, int stride, int16_t block[64])
120{120{
121 vec_u8 t;121 vec_u8 t;
122 IDCT_START122 IDCT_START
@@ -145,7 +145,7 @@ static void vp3_idct_put_altivec(uint8_t *dst, int stride, DCTELEM block[64]) · 22 unmodified lines
145 memset(block, 0, sizeof(*block) * 64);145 memset(block, 0, sizeof(*block) * 64);
146}146}
147 147
148static void vp3_idct_add_altivec(uint8_t *dst, int stride, DCTELEM block[64])148static void vp3_idct_add_altivec(uint8_t *dst, int stride, int16_t block[64])
149{149{
150 LOAD_ZERO;150 LOAD_ZERO;
151 vec_u8 t, vdst;151 vec_u8 t, vdst;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t