comparison ppc/dsputil_ppc.c @ 9711:d563821462b4 libavcodec

Altivec VP3 IDCT
author conrad
date Mon, 25 May 2009 22:19:35 +0000
parents 5b68d22e5ec9
children d6d7e8d4a04d
comparison
equal deleted inserted replaced
9710:679b42929a09 9711:d563821462b4
29 void fdct_altivec(int16_t *block); 29 void fdct_altivec(int16_t *block);
30 void gmc1_altivec(uint8_t *dst, uint8_t *src, int stride, int h, 30 void gmc1_altivec(uint8_t *dst, uint8_t *src, int stride, int h,
31 int x16, int y16, int rounder); 31 int x16, int y16, int rounder);
32 void idct_put_altivec(uint8_t *dest, int line_size, int16_t *block); 32 void idct_put_altivec(uint8_t *dest, int line_size, int16_t *block);
33 void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block); 33 void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block);
34
35 void ff_vp3_idct_altivec(DCTELEM *block);
36 void ff_vp3_idct_put_altivec(uint8_t *dest, int line_size, DCTELEM *block);
37 void ff_vp3_idct_add_altivec(uint8_t *dest, int line_size, DCTELEM *block);
34 38
35 void dsputil_h264_init_ppc(DSPContext* c, AVCodecContext *avctx); 39 void dsputil_h264_init_ppc(DSPContext* c, AVCodecContext *avctx);
36 40
37 void dsputil_init_altivec(DSPContext* c, AVCodecContext *avctx); 41 void dsputil_init_altivec(DSPContext* c, AVCodecContext *avctx);
38 void vc1dsp_init_altivec(DSPContext* c, AVCodecContext *avctx); 42 void vc1dsp_init_altivec(DSPContext* c, AVCodecContext *avctx);
281 if ((avctx->idct_algo == FF_IDCT_AUTO) || 285 if ((avctx->idct_algo == FF_IDCT_AUTO) ||
282 (avctx->idct_algo == FF_IDCT_ALTIVEC)) { 286 (avctx->idct_algo == FF_IDCT_ALTIVEC)) {
283 c->idct_put = idct_put_altivec; 287 c->idct_put = idct_put_altivec;
284 c->idct_add = idct_add_altivec; 288 c->idct_add = idct_add_altivec;
285 c->idct_permutation_type = FF_TRANSPOSE_IDCT_PERM; 289 c->idct_permutation_type = FF_TRANSPOSE_IDCT_PERM;
290 }else if((CONFIG_VP3_DECODER || CONFIG_VP5_DECODER || CONFIG_VP6_DECODER || CONFIG_THEORA_DECODER) &&
291 avctx->idct_algo==FF_IDCT_VP3){
292 c->idct_put = ff_vp3_idct_put_altivec;
293 c->idct_add = ff_vp3_idct_add_altivec;
294 c->idct = ff_vp3_idct_altivec;
295 c->idct_permutation_type = FF_TRANSPOSE_IDCT_PERM;
286 } 296 }
287 } 297 }
288 298
289 #if CONFIG_POWERPC_PERF 299 #if CONFIG_POWERPC_PERF
290 { 300 {