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 @@ ...@@ -23,6 +23,8 @@
#include "simple_idct.h" #include "simple_idct.h"
void (*ff_idct)(DCTELEM *block); 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 (*av_fdct)(DCTELEM *block);
void (*get_pixels)(DCTELEM *block, const UINT8 *pixels, int line_size); void (*get_pixels)(DCTELEM *block, const UINT8 *pixels, int line_size);
void (*diff_pixels)(DCTELEM *block, const UINT8 *s1, const UINT8 *s2, int stride); void (*diff_pixels)(DCTELEM *block, const UINT8 *s1, const UINT8 *s2, int stride);
...@@ -1244,6 +1246,20 @@ void clear_blocks_c(DCTELEM *blocks) ...@@ -1244,6 +1246,20 @@ void clear_blocks_c(DCTELEM *blocks)
memset(blocks, 0, sizeof(DCTELEM)*6*64); 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) void dsputil_init(void)
{ {
int i, j; int i, j;
...@@ -1260,7 +1276,7 @@ void dsputil_init(void) ...@@ -1260,7 +1276,7 @@ void dsputil_init(void)
} }
#ifdef SIMPLE_IDCT #ifdef SIMPLE_IDCT
ff_idct = simple_idct; ff_idct = NULL;
#else #else
ff_idct = j_rev_dct; ff_idct = j_rev_dct;
#endif #endif
...@@ -1299,7 +1315,14 @@ void dsputil_init(void) ...@@ -1299,7 +1315,14 @@ void dsputil_init(void)
#endif #endif
#ifdef SIMPLE_IDCT #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 #endif
if(use_permuted_idct) if(use_permuted_idct)
......
...@@ -54,6 +54,8 @@ void dsputil_init(void); ...@@ -54,6 +54,8 @@ void dsputil_init(void);
/* pixel ops : interface with DCT */ /* pixel ops : interface with DCT */
extern void (*ff_idct)(DCTELEM *block); 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 (*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 (*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); 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