diff options
Diffstat (limited to 'src/libffmpeg/libavcodec/armv4l/dsputil_arm.c')
-rw-r--r-- | src/libffmpeg/libavcodec/armv4l/dsputil_arm.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c b/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c index e3cc05f63..ff61097d7 100644 --- a/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c +++ b/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c @@ -20,6 +20,7 @@ #include "../dsputil.h" extern void j_rev_dct_ARM(DCTELEM *data); +extern void simple_idct_ARM(DCTELEM *data); /* XXX: local hack */ static void (*ff_put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); @@ -27,16 +28,26 @@ static void (*ff_add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int /* XXX: those functions should be suppressed ASAP when all IDCTs are converted */ -static void arm_idct_put(uint8_t *dest, int line_size, DCTELEM *block) +static void j_rev_dct_ARM_put(uint8_t *dest, int line_size, DCTELEM *block) { j_rev_dct_ARM (block); ff_put_pixels_clamped(block, dest, line_size); } -static void arm_idct_add(uint8_t *dest, int line_size, DCTELEM *block) +static void j_rev_dct_ARM_add(uint8_t *dest, int line_size, DCTELEM *block) { j_rev_dct_ARM (block); ff_add_pixels_clamped(block, dest, line_size); } +static void simple_idct_ARM_put(uint8_t *dest, int line_size, DCTELEM *block) +{ + simple_idct_ARM (block); + ff_put_pixels_clamped(block, dest, line_size); +} +static void simple_idct_ARM_add(uint8_t *dest, int line_size, DCTELEM *block) +{ + simple_idct_ARM (block); + ff_add_pixels_clamped(block, dest, line_size); +} void dsputil_init_armv4l(DSPContext* c, AVCodecContext *avctx) { @@ -46,8 +57,14 @@ void dsputil_init_armv4l(DSPContext* c, AVCodecContext *avctx) ff_add_pixels_clamped = c->add_pixels_clamped; if(idct_algo==FF_IDCT_AUTO || idct_algo==FF_IDCT_ARM){ - c->idct_put= arm_idct_put; - c->idct_add= arm_idct_add; + c->idct_put= j_rev_dct_ARM_put; + c->idct_add= j_rev_dct_ARM_add; + c->idct = j_rev_dct_ARM; c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;/* FF_NO_IDCT_PERM */ + } else if (idct_algo==FF_IDCT_SIMPLEARM){ + c->idct_put= simple_idct_ARM_put; + c->idct_add= simple_idct_ARM_add; + c->idct = simple_idct_ARM; + c->idct_permutation_type= FF_NO_IDCT_PERM; } } |