Mercurial > libavcodec.hg
comparison x86/vp56dsp_init.c @ 12418:e17840120b80 libavcodec
Move vp6_filter_diag4() x86 SIMD code from inline ASM to YASM. This should
help in fixing the Win64 fate failures.
author | rbultje |
---|---|
date | Wed, 25 Aug 2010 13:44:16 +0000 |
parents | 9f06475db098 |
children | a5ddb39627fd |
comparison
equal
deleted
inserted
replaced
12417:9f06475db098 | 12418:e17840120b80 |
---|---|
21 */ | 21 */ |
22 | 22 |
23 #include "libavutil/x86_cpu.h" | 23 #include "libavutil/x86_cpu.h" |
24 #include "libavcodec/dsputil.h" | 24 #include "libavcodec/dsputil.h" |
25 #include "libavcodec/vp56dsp.h" | 25 #include "libavcodec/vp56dsp.h" |
26 #include "vp6dsp_mmx.h" | 26 |
27 #include "vp6dsp_sse2.h" | 27 void ff_vp6_filter_diag4_mmx(uint8_t *dst, uint8_t *src, int stride, |
28 const int16_t *h_weights,const int16_t *v_weights); | |
29 void ff_vp6_filter_diag4_sse2(uint8_t *dst, uint8_t *src, int stride, | |
30 const int16_t *h_weights,const int16_t *v_weights); | |
28 | 31 |
29 av_cold void ff_vp56dsp_init_x86(VP56DSPContext* c, enum CodecID codec) | 32 av_cold void ff_vp56dsp_init_x86(VP56DSPContext* c, enum CodecID codec) |
30 { | 33 { |
34 #if HAVE_YASM | |
31 int mm_flags = mm_support(); | 35 int mm_flags = mm_support(); |
32 | 36 |
33 if (CONFIG_VP6_DECODER && codec == CODEC_ID_VP6) { | 37 if (CONFIG_VP6_DECODER && codec == CODEC_ID_VP6) { |
34 if (mm_flags & FF_MM_MMX) { | 38 if (mm_flags & FF_MM_MMX) { |
35 c->vp6_filter_diag4 = ff_vp6_filter_diag4_mmx; | 39 c->vp6_filter_diag4 = ff_vp6_filter_diag4_mmx; |
37 | 41 |
38 if (mm_flags & FF_MM_SSE2) { | 42 if (mm_flags & FF_MM_SSE2) { |
39 c->vp6_filter_diag4 = ff_vp6_filter_diag4_sse2; | 43 c->vp6_filter_diag4 = ff_vp6_filter_diag4_sse2; |
40 } | 44 } |
41 } | 45 } |
46 #endif | |
42 } | 47 } |