mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
prores: use C idct for fate as the SSE code is not matching the SSE* code down at the bits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
530d8529d0
commit
337496980e
@ -70,7 +70,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
||||
avctx->bits_per_raw_sample = 10;
|
||||
|
||||
dsputil_init(&ctx->dsp, avctx);
|
||||
ff_proresdsp_init(&ctx->prodsp);
|
||||
ff_proresdsp_init(&ctx->prodsp, avctx);
|
||||
|
||||
avctx->coded_frame = &ctx->frame;
|
||||
ctx->frame.type = FF_I_TYPE;
|
||||
|
@ -107,7 +107,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
||||
avctx->pix_fmt = PIX_FMT_YUV422P10; // set default pixel format
|
||||
|
||||
avctx->bits_per_raw_sample = PRORES_BITS_PER_SAMPLE;
|
||||
ff_proresdsp_init(&ctx->dsp);
|
||||
ff_proresdsp_init(&ctx->dsp, avctx);
|
||||
|
||||
avctx->coded_frame = &ctx->picture;
|
||||
avcodec_get_frame_defaults(&ctx->picture);
|
||||
|
@ -51,12 +51,12 @@ static void prores_idct_put_c(uint16_t *out, int linesize, DCTELEM *block, const
|
||||
put_pixels(out, linesize >> 1, block);
|
||||
}
|
||||
|
||||
void ff_proresdsp_init(ProresDSPContext *dsp)
|
||||
void ff_proresdsp_init(ProresDSPContext *dsp, AVCodecContext *avctx)
|
||||
{
|
||||
dsp->idct_put = prores_idct_put_c;
|
||||
dsp->idct_permutation_type = FF_NO_IDCT_PERM;
|
||||
|
||||
if (HAVE_MMX) ff_proresdsp_x86_init(dsp);
|
||||
if (HAVE_MMX) ff_proresdsp_x86_init(dsp, avctx);
|
||||
|
||||
ff_init_scantable_permutation(dsp->idct_permutation,
|
||||
dsp->idct_permutation_type);
|
||||
|
@ -33,8 +33,8 @@ typedef struct {
|
||||
void (* idct_put) (uint16_t *out, int linesize, DCTELEM *block, const int16_t *qmat);
|
||||
} ProresDSPContext;
|
||||
|
||||
void ff_proresdsp_init(ProresDSPContext *dsp);
|
||||
void ff_proresdsp_init(ProresDSPContext *dsp, AVCodecContext *avctx);
|
||||
|
||||
void ff_proresdsp_x86_init(ProresDSPContext *dsp);
|
||||
void ff_proresdsp_x86_init(ProresDSPContext *dsp, AVCodecContext *avctx);
|
||||
|
||||
#endif /* AVCODEC_PRORESDSP_H */
|
||||
|
@ -29,11 +29,14 @@ void ff_prores_idct_put_10_sse4(uint16_t *dst, int linesize,
|
||||
void ff_prores_idct_put_10_avx (uint16_t *dst, int linesize,
|
||||
DCTELEM *block);
|
||||
|
||||
void ff_proresdsp_x86_init(ProresDSPContext *dsp)
|
||||
void ff_proresdsp_x86_init(ProresDSPContext *dsp, AVCodecContext *avctx)
|
||||
{
|
||||
#if ARCH_X86_64 && HAVE_YASM
|
||||
int flags = av_get_cpu_flags();
|
||||
|
||||
if(avctx->flags & CODEC_FLAG_BITEXACT)
|
||||
return;
|
||||
|
||||
if (flags & AV_CPU_FLAG_SSE2) {
|
||||
dsp->idct_permutation_type = FF_TRANSPOSE_IDCT_PERM;
|
||||
dsp->idct_put = ff_prores_idct_put_10_sse2;
|
||||
|
@ -7,9 +7,9 @@ FATE_PRORES = fate-prores-422 \
|
||||
FATE_TESTS += $(FATE_PRORES)
|
||||
fate-prores: $(FATE_PRORES)
|
||||
|
||||
fate-prores-422: CMD = framecrc -vsync 0 -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422.mov
|
||||
fate-prores-422_hq: CMD = framecrc -vsync 0 -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_HQ.mov
|
||||
fate-prores-422_lt: CMD = framecrc -vsync 0 -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_LT.mov
|
||||
fate-prores-422_proxy: CMD = framecrc -vsync 0 -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_Proxy.mov
|
||||
fate-prores-alpha: CMD = framecrc -vsync 0 -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_with_Alpha.mov
|
||||
fate-prores-422: CMD = framecrc -flags +bitexact -vsync 0 -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422.mov
|
||||
fate-prores-422_hq: CMD = framecrc -flags +bitexact -vsync 0 -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_HQ.mov
|
||||
fate-prores-422_lt: CMD = framecrc -flags +bitexact -vsync 0 -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_LT.mov
|
||||
fate-prores-422_proxy: CMD = framecrc -flags +bitexact -vsync 0 -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_Proxy.mov
|
||||
fate-prores-alpha: CMD = framecrc -flags +bitexact -vsync 0 -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_with_Alpha.mov
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
0, 0, 8294400, 0x57127dd9
|
||||
0, 3003, 8294400, 0x57127dd9
|
||||
0, 0, 8294400, 0xe8e9d448
|
||||
0, 3003, 8294400, 0xe8e9d448
|
||||
|
@ -1,2 +1,2 @@
|
||||
0, 0, 8294400, 0x978851f4
|
||||
0, 3003, 8294400, 0x978851f4
|
||||
0, 0, 8294400, 0x817063b0
|
||||
0, 3003, 8294400, 0x817063b0
|
||||
|
@ -1,2 +1,2 @@
|
||||
0, 0, 8294400, 0x4ca110c7
|
||||
0, 3003, 8294400, 0x4ca110c7
|
||||
0, 0, 8294400, 0xcd4ccde1
|
||||
0, 3003, 8294400, 0xcd4ccde1
|
||||
|
@ -1,2 +1,2 @@
|
||||
0, 0, 8294400, 0x007ba770
|
||||
0, 3003, 8294400, 0x007ba770
|
||||
0, 0, 8294400, 0x3099e361
|
||||
0, 3003, 8294400, 0x3099e361
|
||||
|
@ -1,2 +1,2 @@
|
||||
0, 0, 12441600, 0xf11685dd
|
||||
0, 3003, 12441600, 0xf11685dd
|
||||
0, 0, 12441600, 0x254d8f95
|
||||
0, 3003, 12441600, 0x254d8f95
|
||||
|
Loading…
Reference in New Issue
Block a user