[FFmpeg-devel] [PATCH] x86/fdct: port fdct functions to yasm
James Almer
jamrial at gmail.com
Thu May 29 00:58:12 CEST 2014
On 25/05/14 8:58 PM, James Almer wrote:
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
> libavcodec/x86/Makefile | 3 +-
> libavcodec/x86/dsputilenc_mmx.c | 42 ++-
> libavcodec/x86/fdct.asm | 298 ++++++++++++++++++++
> libavcodec/x86/fdct.c | 594 ----------------------------------------
> 4 files changed, 315 insertions(+), 622 deletions(-)
> create mode 100644 libavcodec/x86/fdct.asm
> delete mode 100644 libavcodec/x86/fdct.c
Currently, this line is preventing this patch from working if ffmpeg is configured
with --disable-yasm:
http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavcodec/x86/mpegvideoenc_template.c;h=76a5c5a154cd9c04e714ac623ef2673d15f60764;hb=HEAD#l112
This is an inline asm function that's unconditionally calling one of the simd versions
of ff_fdct, and was introduced 12 years ago in commit 28db7fce.
There doesn't seem to be a FATE test currently using dct_quantize_<opt> to see if
changing that line to "s->dsp.fdct(block);" is a possibility (So it might fall back to
the C implementation if needed), and I'm not sure how to manually trigger it either.
Then there's of course the comment in that line that makes me wonder if changing it
isn't out of the question to begin with.
The only other solutions would be making the simd versions of dct_quantize depend on
both inline asm and yasm (Which is ugly and we already reverted changes that tried
this before), or port them to yasm, which is a big task I'm not really up to.
Any idea if changing that line as mentioned above is a possibility? Or any way/sample
to test the simd versions of dct_quantize?
More information about the ffmpeg-devel
mailing list