Commit 8ee14970 authored by Fabrice Bellard's avatar Fabrice Bellard

added ff_idct_put/add

Originally committed as revision 672 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent d36a2466
......@@ -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 @@ void clear_blocks_c(DCTELEM *blocks)
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 @@ void dsputil_init(void)
}
#ifdef SIMPLE_IDCT
ff_idct = simple_idct;
ff_idct = NULL;
#else
ff_idct = j_rev_dct;
#endif
......@@ -1299,7 +1315,14 @@ void dsputil_init(void)
#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)
......
......@@ -54,6 +54,8 @@ void dsputil_init(void);
/* 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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment