[FFmpeg-devel] [PATCH] move vp6 dsp from inline asm to yasm

Ronald S. Bultje rsbultje
Wed Aug 25 00:33:23 CEST 2010


Hi,

2010/8/24 M?ns Rullg?rd <mans at mansr.com>:
> "Ronald S. Bultje" <rsbultje at gmail.com> writes:
>> 2010/8/24 M?ns Rullg?rd <mans at mansr.com>:
>>> "Ronald S. Bultje" <rsbultje at gmail.com> writes:
>>>> this likely fixes fate failures related to vp6 on win64. It also
>>>> removes a shitload of duplication. Passes make fate-*vp6*.
>>>>
>>>> Ronald
>>>>
>>>> Index: ffmpeg-svn/libavcodec/x86/Makefile
>>>> ===================================================================
>>>> --- ffmpeg-svn.orig/libavcodec/x86/Makefile ? 2010-08-24 16:06:01.000000000 -0400
>>>> +++ ffmpeg-svn/libavcodec/x86/Makefile ? ? ? ?2010-08-24 16:06:20.000000000 -0400
>>>> @@ -31,11 +31,11 @@
>>>> ?MMX-OBJS-$(CONFIG_VP5_DECODER) ? ? ? ? += x86/vp3dsp_mmx.o ? ? ? ? ? ? ?\
>>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?x86/vp3dsp_sse2.o ? ? ? ? ? ? \
>>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?x86/vp56dsp-init.o
>>>> +YASM-OBJS-$(CONFIG_VP6_DECODER) ? ? ? ?+= x86/vp56dsp.o
>>>> ?MMX-OBJS-$(CONFIG_VP6_DECODER) ? ? ? ? += x86/vp3dsp_mmx.o ? ? ? ? ? ? ?\
>>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?x86/vp3dsp_sse2.o ? ? ? ? ? ? \
>>>> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?x86/vp6dsp_mmx.o ? ? ? ? ? ? ?\
>>>> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?x86/vp6dsp_sse2.o ? ? ? ? ? ? \
>>>> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?x86/vp56dsp-init.o
>>>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?x86/vp56dsp-init.o ? ? ? ? ? ?\
>>>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?$(YASM-OBJS-yes)
>>>
>>> This is wrong. ?The last line above should go away.
>>>
>>>> Index: ffmpeg-svn/libavcodec/x86/vp56dsp-init.c
>>>> ===================================================================
>>>> --- ffmpeg-svn.orig/libavcodec/x86/vp56dsp-init.c ? ? 2010-08-24 16:06:17.000000000 -0400
>>>> +++ ffmpeg-svn/libavcodec/x86/vp56dsp-init.c ?2010-08-24 16:06:35.000000000 -0400
>>>> @@ -23,8 +23,11 @@
>>>> ?#include "libavutil/x86_cpu.h"
>>>> ?#include "libavcodec/dsputil.h"
>>>> ?#include "libavcodec/vp56dsp.h"
>>>> -#include "vp6dsp_mmx.h"
>>>> -#include "vp6dsp_sse2.h"
>>>> +
>>>> +void ff_vp6_filter_diag4_mmx(uint8_t *dst, uint8_t *src, int stride,
>>>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? const int16_t *h_weights,const int16_t *v_weights);
>>>> +void ff_vp6_filter_diag4_sse2(uint8_t *dst, uint8_t *src, int stride,
>>>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?const int16_t *h_weights,const int16_t *v_weights);
>>>>
>>>> ?av_cold void ff_vp56dsp_init_x86(VP56DSPContext* c, enum CodecID codec)
>>>> ?{
>>>
>>> This function needs some HAVE_YASM tests added.
>>
>> Both fixed.
>
> Looks OK. ?Did you test (build) with and without both VP6 and yasm
> enabled? ?Just to be sure we didn't both overlook something...

Tested --disable-decoder=vp6, which works, and --disable-yasm, which
works also. Also tested make fate-ea-vp60 fate-vp6a fate-vp6f with
SSE2 disabled to ensure the MMX version works correctly.

Ronald



More information about the ffmpeg-devel mailing list