diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2003-03-26 14:43:46 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2003-03-26 14:43:46 +0000 |
commit | a5adaebc130805962f83deccb29f47a7a2384fc8 (patch) | |
tree | 50ce22f99ced67b6d975632574ce4b392ed820ad /src/libffmpeg/libavcodec/armv4l/dsputil_arm.c | |
parent | 689bd7704fde776152e6883ce1b6022ec638304b (diff) | |
download | xine-lib-a5adaebc130805962f83deccb29f47a7a2384fc8.tar.gz xine-lib-a5adaebc130805962f83deccb29f47a7a2384fc8.tar.bz2 |
update ffmpeg. trying to keep local changes (see diff_to_ffmpeg_cvs.txt), let me
know if i overlooked something.
as usual, preliminary QA: tested non debug builds and several codecs including
divx3/4/5, mpeg4, xvid, msmpeg4v3, svq1, wmv7, dv (video/audio), wma
i also enabled wmv8 by default since it worked fine with the streams i have. i'm not
sure about current state of that so we might enable it only for non-x86 users in
case of trouble.
CVS patchset: 4488
CVS date: 2003/03/26 14:43:46
Diffstat (limited to 'src/libffmpeg/libavcodec/armv4l/dsputil_arm.c')
-rw-r--r-- | src/libffmpeg/libavcodec/armv4l/dsputil_arm.c | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c b/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c index e459b3391..e3cc05f63 100644 --- a/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c +++ b/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c @@ -21,7 +21,33 @@ extern void j_rev_dct_ARM(DCTELEM *data); -void dsputil_init_armv4l(DSPContext* c, unsigned mask) +/* XXX: local hack */ +static void (*ff_put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); +static void (*ff_add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); + +/* 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) +{ + 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) +{ + j_rev_dct_ARM (block); + ff_add_pixels_clamped(block, dest, line_size); +} + +void dsputil_init_armv4l(DSPContext* c, AVCodecContext *avctx) { -// ff_idct = j_rev_dct_ARM; + const int idct_algo= avctx->idct_algo; + + ff_put_pixels_clamped = c->put_pixels_clamped; + 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_permutation_type= FF_LIBMPEG2_IDCT_PERM;/* FF_NO_IDCT_PERM */ + } } |