From: Diego Biurrun <di...@biurrun.de> ---
This one builds, I have yet to patch qemu to run it though... libavcodec/bfin/Makefile | 4 ++-- libavcodec/bfin/dsputil_bfin.c | 8 +------- libavcodec/bfin/vp3_bfin.c | 14 ++++++++++---- libavcodec/vp3dsp.c | 2 ++ libavcodec/vp3dsp.h | 1 + 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/libavcodec/bfin/Makefile b/libavcodec/bfin/Makefile index be81e6c..d1b41bc 100644 --- a/libavcodec/bfin/Makefile +++ b/libavcodec/bfin/Makefile @@ -2,7 +2,7 @@ OBJS += bfin/dsputil_bfin.o \ bfin/fdct_bfin.o \ bfin/idct_bfin.o \ bfin/pixels_bfin.o \ - bfin/vp3_bfin.o \ - bfin/vp3_idct_bfin.o \ OBJS-$(CONFIG_MPEGVIDEOENC) += bfin/mpegvideo_bfin.o +OBJS-$(CONFIG_VP3DSP) += bfin/vp3_bfin.o \ + bfin/vp3_idct_bfin.o diff --git a/libavcodec/bfin/dsputil_bfin.c b/libavcodec/bfin/dsputil_bfin.c index 52860c6..699f78a 100644 --- a/libavcodec/bfin/dsputil_bfin.c +++ b/libavcodec/bfin/dsputil_bfin.c @@ -257,13 +257,7 @@ void ff_dsputil_init_bfin( DSPContext* c, AVCodecContext *avctx ) if (avctx->dct_algo == FF_DCT_AUTO) c->fdct = ff_bfin_fdct; - // FIXME convert to VP3DSPContext - if (0) { // avctx->idct_algo == FF_IDCT_VP3) { - c->idct_permutation_type = FF_NO_IDCT_PERM; - c->idct = ff_bfin_vp3_idct; - c->idct_add = ff_bfin_vp3_idct_add; - c->idct_put = ff_bfin_vp3_idct_put; - } else if (avctx->idct_algo == FF_IDCT_AUTO) { + if (avctx->idct_algo == FF_IDCT_AUTO) { c->idct_permutation_type = FF_NO_IDCT_PERM; c->idct = ff_bfin_idct; c->idct_add = bfin_idct_add; diff --git a/libavcodec/bfin/vp3_bfin.c b/libavcodec/bfin/vp3_bfin.c index bec25a0..d7eecd3 100644 --- a/libavcodec/bfin/vp3_bfin.c +++ b/libavcodec/bfin/vp3_bfin.c @@ -19,11 +19,11 @@ */ #include "libavcodec/avcodec.h" -#include "libavcodec/dsputil.h" -#include "dsputil_bfin.h" +#include "libavcodec/vp3dsp.h" +#include "vp3_bfin.h" /* Intra iDCT offset 128 */ -void ff_bfin_vp3_idct_put (uint8_t *dest, int line_size, DCTELEM *block) +void ff_bfin_vp3_idct_put(uint8_t *dest, int line_size, DCTELEM *block) { uint8_t *cm = ff_cropTbl + MAX_NEG_CROP + 128; int i,j; @@ -36,8 +36,14 @@ void ff_bfin_vp3_idct_put (uint8_t *dest, int line_size, DCTELEM *block) } /* Inter iDCT */ -void ff_bfin_vp3_idct_add (uint8_t *dest, int line_size, DCTELEM *block) +void ff_bfin_vp3_idct_add(uint8_t *dest, int line_size, DCTELEM *block) { ff_bfin_vp3_idct (block); ff_bfin_add_pixels_clamped (block, dest, line_size); } + +void ff_vp3dsp_init_bfin(VP3DSPContext *c, int flags) +{ + c->idct_add = ff_bfin_vp3_idct_add; + c->idct_put = ff_bfin_vp3_idct_put; +} diff --git a/libavcodec/vp3dsp.c b/libavcodec/vp3dsp.c index 9e6209d..f29dc2c 100644 --- a/libavcodec/vp3dsp.c +++ b/libavcodec/vp3dsp.c @@ -286,6 +286,8 @@ av_cold void ff_vp3dsp_init(VP3DSPContext *c, int flags) if (ARCH_ARM) ff_vp3dsp_init_arm(c, flags); + if (ARCH_BFIN) + ff_vp3dsp_init_bfin(c, flags); if (ARCH_PPC) ff_vp3dsp_init_ppc(c, flags); if (ARCH_X86) diff --git a/libavcodec/vp3dsp.h b/libavcodec/vp3dsp.h index feb3000..2e2f9e3 100644 --- a/libavcodec/vp3dsp.h +++ b/libavcodec/vp3dsp.h @@ -34,6 +34,7 @@ typedef struct VP3DSPContext { void ff_vp3dsp_init(VP3DSPContext *c, int flags); void ff_vp3dsp_init_arm(VP3DSPContext *c, int flags); +void ff_vp3dsp_init_bfin(VP3DSPContext *c, int flags); void ff_vp3dsp_init_ppc(VP3DSPContext *c, int flags); void ff_vp3dsp_init_x86(VP3DSPContext *c, int flags); -- 1.8.0.2 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel