comparison ppc/dsputil_ppc.c @ 3223:8f048c3295ff libavcodec

altivec support for snow
author lu_zero
date Mon, 27 Mar 2006 12:51:19 +0000
parents 0b546eab515d
children 0b482ccd7f0e
comparison
equal deleted inserted replaced
3222:38ee2f1d386d 3223:8f048c3295ff
27 #endif 27 #endif
28 28
29 extern void fdct_altivec(int16_t *block); 29 extern void fdct_altivec(int16_t *block);
30 extern void idct_put_altivec(uint8_t *dest, int line_size, int16_t *block); 30 extern void idct_put_altivec(uint8_t *dest, int line_size, int16_t *block);
31 extern void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block); 31 extern void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block);
32
33 extern void ff_snow_horizontal_compose97i_altivec(DWTELEM *b, int width);
34 extern void ff_snow_vertical_compose97i_altivec(DWTELEM *b0, DWTELEM *b1,
35 DWTELEM *b2, DWTELEM *b3,
36 DWTELEM *b4, DWTELEM *b5,
37 int width);
38 extern void ff_snow_inner_add_yblock_altivec(uint8_t *obmc, const int obmc_stride,
39 uint8_t * * block, int b_w, int b_h,
40 int src_x, int src_y, int src_stride,
41 slice_buffer * sb, int add,
42 uint8_t * dst8);
32 43
33 int mm_flags = 0; 44 int mm_flags = 0;
34 45
35 int mm_support(void) 46 int mm_support(void)
36 { 47 {
295 #ifdef CONFIG_DARWIN // ATM gcc-3.3 and gcc-3.4 fail to compile these in linux... 306 #ifdef CONFIG_DARWIN // ATM gcc-3.3 and gcc-3.4 fail to compile these in linux...
296 c->hadamard8_diff[0] = hadamard8_diff16_altivec; 307 c->hadamard8_diff[0] = hadamard8_diff16_altivec;
297 c->hadamard8_diff[1] = hadamard8_diff8x8_altivec; 308 c->hadamard8_diff[1] = hadamard8_diff8x8_altivec;
298 #endif 309 #endif
299 310
311
312 c->horizontal_compose97i = ff_snow_horizontal_compose97i_altivec;
313 c->vertical_compose97i = ff_snow_vertical_compose97i_altivec;
314 c->inner_add_yblock = ff_snow_inner_add_yblock_altivec;
315
300 #ifdef CONFIG_ENCODERS 316 #ifdef CONFIG_ENCODERS
301 if (avctx->dct_algo == FF_DCT_AUTO || 317 if (avctx->dct_algo == FF_DCT_AUTO ||
302 avctx->dct_algo == FF_DCT_ALTIVEC) 318 avctx->dct_algo == FF_DCT_ALTIVEC)
303 { 319 {
304 c->fdct = fdct_altivec; 320 c->fdct = fdct_altivec;