avcodec/v210dec: move DSP function setting into dedicated function
Prepare for checkasm test.
This commit is contained in:
parent
e427ba5c68
commit
e2cbf24f27
@ -50,6 +50,13 @@ static void v210_planar_unpack_c(const uint32_t *src, uint16_t *y, uint16_t *u,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
av_cold void ff_v210dec_init(V210DecContext *s)
|
||||||
|
{
|
||||||
|
s->unpack_frame = v210_planar_unpack_c;
|
||||||
|
if (ARCH_X86)
|
||||||
|
ff_v210_x86_init(s);
|
||||||
|
}
|
||||||
|
|
||||||
static av_cold int decode_init(AVCodecContext *avctx)
|
static av_cold int decode_init(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
V210DecContext *s = avctx->priv_data;
|
V210DecContext *s = avctx->priv_data;
|
||||||
@ -57,10 +64,8 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
|||||||
avctx->pix_fmt = AV_PIX_FMT_YUV422P10;
|
avctx->pix_fmt = AV_PIX_FMT_YUV422P10;
|
||||||
avctx->bits_per_raw_sample = 10;
|
avctx->bits_per_raw_sample = 10;
|
||||||
|
|
||||||
s->unpack_frame = v210_planar_unpack_c;
|
s->aligned_input = 0;
|
||||||
|
ff_v210dec_init(s);
|
||||||
if (HAVE_MMX)
|
|
||||||
ff_v210_x86_init(s);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -102,8 +107,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
|||||||
aligned_input = !((uintptr_t)psrc & 0xf) && !(stride & 0xf);
|
aligned_input = !((uintptr_t)psrc & 0xf) && !(stride & 0xf);
|
||||||
if (aligned_input != s->aligned_input) {
|
if (aligned_input != s->aligned_input) {
|
||||||
s->aligned_input = aligned_input;
|
s->aligned_input = aligned_input;
|
||||||
if (HAVE_MMX)
|
ff_v210dec_init(s);
|
||||||
ff_v210_x86_init(s);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ret = ff_get_buffer(avctx, pic, 0)) < 0)
|
if ((ret = ff_get_buffer(avctx, pic, 0)) < 0)
|
||||||
|
@ -31,6 +31,7 @@ typedef struct {
|
|||||||
void (*unpack_frame)(const uint32_t *src, uint16_t *y, uint16_t *u, uint16_t *v, int width);
|
void (*unpack_frame)(const uint32_t *src, uint16_t *y, uint16_t *u, uint16_t *v, int width);
|
||||||
} V210DecContext;
|
} V210DecContext;
|
||||||
|
|
||||||
|
void ff_v210dec_init(V210DecContext *s);
|
||||||
void ff_v210_x86_init(V210DecContext *s);
|
void ff_v210_x86_init(V210DecContext *s);
|
||||||
|
|
||||||
#endif /* AVCODEC_V210DEC_H */
|
#endif /* AVCODEC_V210DEC_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user