|
|
|
@ -22,18 +22,21 @@ |
|
|
|
|
#include "../avcodec.h" |
|
|
|
|
|
|
|
|
|
extern void j_rev_dct_ARM(DCTELEM *data); |
|
|
|
|
/* XXX: local hack */ |
|
|
|
|
static void (*ff_put_pixels_clamped)(const DCTELEM *block, UINT8 *pixels, int line_size); |
|
|
|
|
static void (*ff_add_pixels_clamped)(const DCTELEM *block, UINT8 *pixels, int line_size); |
|
|
|
|
|
|
|
|
|
/* XXX: those functions should be suppressed ASAP when all IDCTs are
|
|
|
|
|
converted */ |
|
|
|
|
static void arm_idct_put(UINT8 *dest, int line_size, DCTELEM *block) |
|
|
|
|
{ |
|
|
|
|
j_rev_dct_ARM (block); |
|
|
|
|
put_pixels_clamped(block, dest, line_size); |
|
|
|
|
ff_put_pixels_clamped(block, dest, line_size); |
|
|
|
|
} |
|
|
|
|
static void arm_idct_add(UINT8 *dest, int line_size, DCTELEM *block) |
|
|
|
|
{ |
|
|
|
|
j_rev_dct_ARM (block); |
|
|
|
|
add_pixels_clamped(block, dest, line_size); |
|
|
|
|
ff_add_pixels_clamped(block, dest, line_size); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void MPV_common_init_armv4l(MpegEncContext *s) |
|
|
|
@ -41,6 +44,9 @@ void MPV_common_init_armv4l(MpegEncContext *s) |
|
|
|
|
int i; |
|
|
|
|
const int idct_algo= s->avctx->idct_algo; |
|
|
|
|
|
|
|
|
|
ff_put_pixels_clamped = s->avctx->dsp.put_pixels_clamped; |
|
|
|
|
ff_add_pixels_clamped = s->avctx->dsp.put_pixels_clamped; |
|
|
|
|
|
|
|
|
|
if(idct_algo==FF_IDCT_AUTO || idct_algo==FF_IDCT_ARM){ |
|
|
|
|
s->idct_put= arm_idct_put; |
|
|
|
|
s->idct_add= arm_idct_add; |
|
|
|
|