From: Diego Biurrun <[email protected]>
---
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
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel