dsputil: Move Bink-specific add_pixels8 to binkdsp
authorDiego Biurrun <diego@biurrun.de>
Sun, 29 Dec 2013 10:53:00 +0000 (11:53 +0100)
committerDiego Biurrun <diego@biurrun.de>
Thu, 29 May 2014 13:48:08 +0000 (06:48 -0700)
libavcodec/bink.c
libavcodec/binkdsp.c
libavcodec/binkdsp.h
libavcodec/dsputil.c
libavcodec/dsputil.h

index 0057542..e1312a8 100644 (file)
@@ -883,7 +883,7 @@ static int binkb_decode_plane(BinkContext *c, AVFrame *frame, GetBitContext *gb,
                 c->dsp.clear_block(block);
                 v = binkb_get_value(c, BINKB_SRC_INTER_COEFS);
                 read_residue(gb, block, v);
-                c->dsp.add_pixels8(dst, block, stride);
+                c->bdsp.add_pixels8(dst, block, stride);
                 break;
             case 4:
                 xoff = binkb_get_value(c, BINKB_SRC_X_OFF);
@@ -1120,7 +1120,7 @@ static int bink_decode_plane(BinkContext *c, AVFrame *frame, GetBitContext *gb,
                 c->dsp.clear_block(block);
                 v = get_bits(gb, 7);
                 read_residue(gb, block, v);
-                c->dsp.add_pixels8(dst, block, stride);
+                c->bdsp.add_pixels8(dst, block, stride);
                 break;
             case INTRA_BLOCK:
                 memset(dctblock, 0, sizeof(*dctblock) * 64);
index 1fb03b2..0dfe12c 100644 (file)
@@ -24,6 +24,7 @@
  * Bink DSP routines
  */
 
+#include "config.h"
 #include "libavutil/attributes.h"
 #include "binkdsp.h"
 
@@ -128,9 +129,29 @@ static void scale_block_c(const uint8_t src[64]/*align 8*/, uint8_t *dst/*align
     }
 }
 
+static void add_pixels8_c(uint8_t *restrict pixels, int16_t *block,
+                          int line_size)
+{
+    int i;
+
+    for (i = 0; i < 8; i++) {
+        pixels[0] += block[0];
+        pixels[1] += block[1];
+        pixels[2] += block[2];
+        pixels[3] += block[3];
+        pixels[4] += block[4];
+        pixels[5] += block[5];
+        pixels[6] += block[6];
+        pixels[7] += block[7];
+        pixels    += line_size;
+        block     += 8;
+    }
+}
+
 av_cold void ff_binkdsp_init(BinkDSPContext *c)
 {
     c->idct_add    = bink_idct_add_c;
     c->idct_put    = bink_idct_put_c;
     c->scale_block = scale_block_c;
+    c->add_pixels8 = add_pixels8_c;
 }
index 4c1f73f..418afb9 100644 (file)
@@ -33,6 +33,7 @@ typedef struct BinkDSPContext {
     void (*idct_put)(uint8_t *dest/*align 8*/, int line_size, int32_t *block/*align 16*/);
     void (*idct_add)(uint8_t *dest/*align 8*/, int line_size, int32_t *block/*align 16*/);
     void (*scale_block)(const uint8_t src[64]/*align 8*/, uint8_t *dst/*align 8*/, int linesize);
+    void (*add_pixels8)(uint8_t *pixels, int16_t *block, int line_size);
 } BinkDSPContext;
 
 void ff_binkdsp_init(BinkDSPContext *c);
index 6b84658..89c0da4 100644 (file)
@@ -347,25 +347,6 @@ static void put_signed_pixels_clamped_c(const int16_t *block,
     }
 }
 
-static void add_pixels8_c(uint8_t *restrict pixels, int16_t *block,
-                          int line_size)
-{
-    int i;
-
-    for (i = 0; i < 8; i++) {
-        pixels[0] += block[0];
-        pixels[1] += block[1];
-        pixels[2] += block[2];
-        pixels[3] += block[3];
-        pixels[4] += block[4];
-        pixels[5] += block[5];
-        pixels[6] += block[6];
-        pixels[7] += block[7];
-        pixels    += line_size;
-        block     += 8;
-    }
-}
-
 static void add_pixels_clamped_c(const int16_t *block, uint8_t *restrict pixels,
                                  int line_size)
 {
@@ -2290,8 +2271,6 @@ av_cold void ff_dsputil_init(DSPContext *c, AVCodecContext *avctx)
     c->shrink[2] = ff_shrink44;
     c->shrink[3] = ff_shrink88;
 
-    c->add_pixels8 = add_pixels8_c;
-
     c->draw_edges = draw_edges_8_c;
 
     c->clear_block  = clear_block_8_c;
index 471988b..ec4eb29 100644 (file)
@@ -136,7 +136,6 @@ typedef struct DSPContext {
     void (*add_pixels_clamped)(const int16_t *block /* align 16 */,
                                uint8_t *pixels /* align 8 */,
                                int line_size);
-    void (*add_pixels8)(uint8_t *pixels, int16_t *block, int line_size);
     int (*sum_abs_dctelem)(int16_t *block /* align 16 */);
     /**
      * translational global motion compensation.