dsputil: move a bink-only function to binkdsp
Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
parent
cbd58a872d
commit
1b3539d453
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user