Mercurial > libavcodec.hg
diff bfin/dsputil_bfin.c @ 5776:73ec16dbcbc1 libavcodec
blackfin optimized vp3 transform and infastructure for idct
author | mhoffman |
---|---|
date | Thu, 04 Oct 2007 20:47:12 +0000 |
parents | 930587f0259d |
children | 78aa57eba353 |
line wrap: on
line diff
--- a/bfin/dsputil_bfin.c Thu Oct 04 15:13:42 2007 +0000 +++ b/bfin/dsputil_bfin.c Thu Oct 04 20:47:12 2007 +0000 @@ -31,6 +31,9 @@ extern void ff_bfin_idct (DCTELEM *block) attribute_l1_text; extern void ff_bfin_fdct (DCTELEM *block) attribute_l1_text; +extern void ff_bfin_vp3_idct (DCTELEM *block); +extern void ff_bfin_vp3_idct_put (uint8_t *dest, int line_size, DCTELEM *block); +extern void ff_bfin_vp3_idct_add (uint8_t *dest, int line_size, DCTELEM *block); extern void ff_bfin_add_pixels_clamped (DCTELEM *block, uint8_t *dest, int line_size) attribute_l1_text; extern void ff_bfin_put_pixels_clamped (DCTELEM *block, uint8_t *dest, int line_size) attribute_l1_text; extern void ff_bfin_diff_pixels (DCTELEM *block, uint8_t *s1, uint8_t *s2, int stride) attribute_l1_text; @@ -292,7 +295,11 @@ c->idct_permutation_type = FF_NO_IDCT_PERM; c->fdct = ff_bfin_fdct; - if (avctx->idct_algo!=FF_IDCT_VP3) { + if (avctx->idct_algo==FF_IDCT_VP3) { + c->idct = ff_bfin_vp3_idct; + c->idct_add = ff_bfin_vp3_idct_add; + c->idct_put = ff_bfin_vp3_idct_put; + } else { c->idct = ff_bfin_idct; c->idct_add = bfin_idct_add; c->idct_put = bfin_idct_put;