summaryrefslogtreecommitdiff
path: root/libavcodec/binkdsp.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/binkdsp.c')
-rw-r--r--libavcodec/binkdsp.c17
1 files changed, 17 insertions, 0 deletions
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;
}