summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMans Rullgard <mans@mansr.com>2011-07-27 15:47:02 +0100
committerMans Rullgard <mans@mansr.com>2011-07-27 16:05:49 +0100
commit1b3539d4534f9877b463fb8b7fa56b7d20dd1338 (patch)
tree7d5497ea69af1d1e536e1f42b2b1dbcdcbe6e3fc
parentcbd58a872d343f5996ed7ab917c8839dbfd99eaa (diff)
dsputil: move a bink-only function to binkdsp
Signed-off-by: Mans Rullgard <mans@mansr.com>
-rw-r--r--libavcodec/bink.c2
-rw-r--r--libavcodec/binkdsp.c17
-rw-r--r--libavcodec/binkdsp.h1
-rw-r--r--libavcodec/dsputil.c17
-rw-r--r--libavcodec/dsputil.h1
5 files changed, 19 insertions, 19 deletions
diff --git a/libavcodec/bink.c b/libavcodec/bink.c
index 8e989d9dd9..8f42ff8bea 100644
--- a/libavcodec/bink.c
+++ b/libavcodec/bink.c
@@ -1050,7 +1050,7 @@ static int bink_decode_plane(BinkContext *c, GetBitContext *gb, int plane_idx,
return -1;
}
if (blk != FILL_BLOCK)
- c->dsp.scale_block(ublock, dst, stride);
+ c->bdsp.scale_block(ublock, dst, stride);
bx++;
dst += 8;
prev += 8;
diff --git a/libavcodec/binkdsp.c b/libavcodec/binkdsp.c
index 109906f262..1f7855b30b 100644
--- a/libavcodec/binkdsp.c
+++ b/libavcodec/binkdsp.c
@@ -112,8 +112,25 @@ static void bink_idct_put_c(uint8_t *dest, int linesize, int32_t *block)
}
}
+static void scale_block_c(const uint8_t src[64]/*align 8*/, uint8_t *dst/*align 8*/, int linesize)
+{
+ int i, j;
+ uint16_t *dst1 = (uint16_t *) dst;
+ uint16_t *dst2 = (uint16_t *)(dst + linesize);
+
+ for (j = 0; j < 8; j++) {
+ for (i = 0; i < 8; i++) {
+ dst1[i] = dst2[i] = src[i] * 0x0101;
+ }
+ src += 8;
+ dst1 += linesize;
+ dst2 += linesize;
+ }
+}
+
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;
}
diff --git a/libavcodec/binkdsp.h b/libavcodec/binkdsp.h
index 8253ab3004..d105f717e9 100644
--- a/libavcodec/binkdsp.h
+++ b/libavcodec/binkdsp.h
@@ -32,6 +32,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);
} BinkDSPContext;
void ff_binkdsp_init(BinkDSPContext *c);
diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
index e1be534585..d31860166d 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/dsputil.c
@@ -486,22 +486,6 @@ static void fill_block8_c(uint8_t *block, uint8_t value, int line_size, int h)
}
}
-static void scale_block_c(const uint8_t src[64]/*align 8*/, uint8_t *dst/*align 8*/, int linesize)
-{
- int i, j;
- uint16_t *dst1 = (uint16_t *) dst;
- uint16_t *dst2 = (uint16_t *)(dst + linesize);
-
- for (j = 0; j < 8; j++) {
- for (i = 0; i < 8; i++) {
- dst1[i] = dst2[i] = src[i] * 0x0101;
- }
- src += 8;
- dst1 += linesize;
- dst2 += linesize;
- }
-}
-
#define avg2(a,b) ((a+b+1)>>1)
#define avg4(a,b,c,d) ((a+b+c+d+2)>>2)
@@ -2850,7 +2834,6 @@ av_cold void dsputil_init(DSPContext* c, AVCodecContext *avctx)
c->fill_block_tab[0] = fill_block16_c;
c->fill_block_tab[1] = fill_block8_c;
- c->scale_block = scale_block_c;
/* TODO [0] 16 [1] 8 */
c->pix_abs[0][0] = pix_abs16_c;
diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h
index b6f0607b08..93fbe9c6f7 100644
--- a/libavcodec/dsputil.h
+++ b/libavcodec/dsputil.h
@@ -559,7 +559,6 @@ typedef struct DSPContext {
/* bink functions */
op_fill_func fill_block_tab[2];
- void (*scale_block)(const uint8_t src[64]/*align 8*/, uint8_t *dst/*align 8*/, int linesize);
} DSPContext;
void dsputil_static_init(void);