bfin: Separate VP3 initialization code
authorDiego Biurrun <diego@biurrun.de>
Mon, 28 Jan 2013 19:22:54 +0000 (20:22 +0100)
committerLuca Barbato <lu_zero@gentoo.org>
Mon, 28 Jan 2013 20:03:12 +0000 (21:03 +0100)
libavcodec/bfin/Makefile
libavcodec/bfin/dsputil_bfin.c
libavcodec/bfin/dsputil_bfin.h
libavcodec/bfin/vp3_bfin.c
libavcodec/vp3dsp.c
libavcodec/vp3dsp.h

index be81e6c..d1b41bc 100644 (file)
@@ -2,7 +2,7 @@ OBJS += bfin/dsputil_bfin.o                                             \
         bfin/fdct_bfin.o                                                \
         bfin/idct_bfin.o                                                \
         bfin/pixels_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_MPEGVIDEOENC)             += bfin/mpegvideo_bfin.o
+OBJS-$(CONFIG_VP3DSP)                   += bfin/vp3_bfin.o              \
+                                           bfin/vp3_idct_bfin.o
index 5d60184..896a3c5 100644 (file)
@@ -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;
 
         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;
             c->idct_permutation_type = FF_NO_IDCT_PERM;
             c->idct                  = ff_bfin_idct;
             c->idct_add              = bfin_idct_add;
index a7c5863..238c73c 100644 (file)
@@ -38,9 +38,6 @@
 
 void ff_bfin_idct (int16_t *block) attribute_l1_text;
 void ff_bfin_fdct (int16_t *block) attribute_l1_text;
 
 void ff_bfin_idct (int16_t *block) attribute_l1_text;
 void ff_bfin_fdct (int16_t *block) attribute_l1_text;
-void ff_bfin_vp3_idct (int16_t *block);
-void ff_bfin_vp3_idct_put (uint8_t *dest, int line_size, int16_t *block);
-void ff_bfin_vp3_idct_add (uint8_t *dest, int line_size, int16_t *block);
 void ff_bfin_add_pixels_clamped (const int16_t *block, uint8_t *dest, int line_size) attribute_l1_text;
 void ff_bfin_put_pixels_clamped (const int16_t *block, uint8_t *dest, int line_size) attribute_l1_text;
 void ff_bfin_diff_pixels (int16_t *block, const uint8_t *s1, const uint8_t *s2, int stride)  attribute_l1_text;
 void ff_bfin_add_pixels_clamped (const int16_t *block, uint8_t *dest, int line_size) attribute_l1_text;
 void ff_bfin_put_pixels_clamped (const int16_t *block, uint8_t *dest, int line_size) attribute_l1_text;
 void ff_bfin_diff_pixels (int16_t *block, const uint8_t *s1, const uint8_t *s2, int stride)  attribute_l1_text;
index 267918c..68c17ee 100644 (file)
@@ -21,8 +21,9 @@
 #include <string.h>
 
 #include "libavcodec/avcodec.h"
 #include <string.h>
 
 #include "libavcodec/avcodec.h"
-#include "libavcodec/dsputil.h"
+#include "libavcodec/vp3dsp.h"
 #include "dsputil_bfin.h"
 #include "dsputil_bfin.h"
+#include "vp3_bfin.h"
 
 /* Intra iDCT offset 128 */
 void ff_bfin_vp3_idct_put (uint8_t *dest, int line_size, int16_t *block)
 
 /* Intra iDCT offset 128 */
 void ff_bfin_vp3_idct_put (uint8_t *dest, int line_size, int16_t *block)
@@ -47,3 +48,9 @@ void ff_bfin_vp3_idct_add (uint8_t *dest, int line_size, int16_t *block)
 
     memset(block, 0, 128);
 }
 
     memset(block, 0, 128);
 }
+
+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;
+}
index f6d2c2a..01649f0 100644 (file)
@@ -310,6 +310,8 @@ av_cold void ff_vp3dsp_init(VP3DSPContext *c, int flags)
 
     if (ARCH_ARM)
         ff_vp3dsp_init_arm(c, 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)
     if (ARCH_PPC)
         ff_vp3dsp_init_ppc(c, flags);
     if (ARCH_X86)
index a5e25ec..755271d 100644 (file)
@@ -49,6 +49,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(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);
 
 void ff_vp3dsp_init_ppc(VP3DSPContext *c, int flags);
 void ff_vp3dsp_init_x86(VP3DSPContext *c, int flags);