Mercurial > libavcodec.hg
diff 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 |
line wrap: on
line diff
--- a/ppc/dsputil_ppc.c Mon May 25 19:02:35 2009 +0000 +++ b/ppc/dsputil_ppc.c Mon May 25 22:19:35 2009 +0000 @@ -32,6 +32,10 @@ void idct_put_altivec(uint8_t *dest, int line_size, int16_t *block); void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block); +void ff_vp3_idct_altivec(DCTELEM *block); +void ff_vp3_idct_put_altivec(uint8_t *dest, int line_size, DCTELEM *block); +void ff_vp3_idct_add_altivec(uint8_t *dest, int line_size, DCTELEM *block); + void dsputil_h264_init_ppc(DSPContext* c, AVCodecContext *avctx); void dsputil_init_altivec(DSPContext* c, AVCodecContext *avctx); @@ -283,6 +287,12 @@ c->idct_put = idct_put_altivec; c->idct_add = idct_add_altivec; c->idct_permutation_type = FF_TRANSPOSE_IDCT_PERM; + }else if((CONFIG_VP3_DECODER || CONFIG_VP5_DECODER || CONFIG_VP6_DECODER || CONFIG_THEORA_DECODER) && + avctx->idct_algo==FF_IDCT_VP3){ + c->idct_put = ff_vp3_idct_put_altivec; + c->idct_add = ff_vp3_idct_add_altivec; + c->idct = ff_vp3_idct_altivec; + c->idct_permutation_type = FF_TRANSPOSE_IDCT_PERM; } }