Mercurial > libavcodec.hg
changeset 480:a7cbee351b55 libavcodec
added ff_idct_put/add
author | bellard |
---|---|
date | Wed, 05 Jun 2002 18:48:07 +0000 |
parents | 40ffce2cb6ef |
children | 29a7e17d19dd |
files | dsputil.c dsputil.h |
diffstat | 2 files changed, 27 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/dsputil.c Wed Jun 05 18:46:25 2002 +0000 +++ b/dsputil.c Wed Jun 05 18:48:07 2002 +0000 @@ -23,6 +23,8 @@ #include "simple_idct.h" void (*ff_idct)(DCTELEM *block); +void (*ff_idct_put)(UINT8 *dest, int line_size, DCTELEM *block); +void (*ff_idct_add)(UINT8 *dest, int line_size, DCTELEM *block); void (*av_fdct)(DCTELEM *block); void (*get_pixels)(DCTELEM *block, const UINT8 *pixels, int line_size); void (*diff_pixels)(DCTELEM *block, const UINT8 *s1, const UINT8 *s2, int stride); @@ -1244,6 +1246,20 @@ memset(blocks, 0, sizeof(DCTELEM)*6*64); } +/* XXX: those functions should be suppressed ASAP when all IDCTs are + converted */ +void gen_idct_put(UINT8 *dest, int line_size, DCTELEM *block) +{ + ff_idct (block); + put_pixels_clamped(block, dest, line_size); +} + +void gen_idct_add(UINT8 *dest, int line_size, DCTELEM *block) +{ + ff_idct (block); + add_pixels_clamped(block, dest, line_size); +} + void dsputil_init(void) { int i, j; @@ -1260,7 +1276,7 @@ } #ifdef SIMPLE_IDCT - ff_idct = simple_idct; + ff_idct = NULL; #else ff_idct = j_rev_dct; #endif @@ -1299,7 +1315,14 @@ #endif #ifdef SIMPLE_IDCT - if(ff_idct == simple_idct) use_permuted_idct=0; + if (ff_idct == NULL) { + ff_idct_put = simple_idct_put; + ff_idct_add = simple_idct_add; + use_permuted_idct=0; + } else { + ff_idct_put = gen_idct_put; + ff_idct_add = gen_idct_add; + } #endif if(use_permuted_idct)
--- a/dsputil.h Wed Jun 05 18:46:25 2002 +0000 +++ b/dsputil.h Wed Jun 05 18:48:07 2002 +0000 @@ -54,6 +54,8 @@ /* pixel ops : interface with DCT */ extern void (*ff_idct)(DCTELEM *block); +extern void (*ff_idct_put)(UINT8 *dest, int line_size, DCTELEM *block); +extern void (*ff_idct_add)(UINT8 *dest, int line_size, DCTELEM *block); extern void (*get_pixels)(DCTELEM *block, const UINT8 *pixels, int line_size); extern void (*diff_pixels)(DCTELEM *block, const UINT8 *s1, const UINT8 *s2, int stride); extern void (*put_pixels_clamped)(const DCTELEM *block, UINT8 *pixels, int line_size);