mirror of
https://github.com/nyanmisaka/ffmpeg-rockchip.git
synced 2025-10-28 03:13:08 +08:00
x86: Replace checks for CPU extensions and flags by convenience macros
This separates code relying on inline from that relying on external assembly and fixes instances where the coalesced check was incorrect.
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "libavutil/attributes.h"
|
||||
#include "libavutil/cpu.h"
|
||||
#include "libavutil/x86/cpu.h"
|
||||
#include "libavcodec/avcodec.h"
|
||||
#include "libavcodec/vp3dsp.h"
|
||||
#include "config.h"
|
||||
@@ -38,18 +39,17 @@ void ff_vp3_h_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values);
|
||||
|
||||
av_cold void ff_vp3dsp_init_x86(VP3DSPContext *c, int flags)
|
||||
{
|
||||
#if HAVE_YASM
|
||||
int cpuflags = av_get_cpu_flags();
|
||||
|
||||
#if ARCH_X86_32
|
||||
if (HAVE_MMX && cpuflags & AV_CPU_FLAG_MMX) {
|
||||
if (EXTERNAL_MMX(cpuflags)) {
|
||||
c->idct_put = ff_vp3_idct_put_mmx;
|
||||
c->idct_add = ff_vp3_idct_add_mmx;
|
||||
c->idct_perm = FF_PARTTRANS_IDCT_PERM;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (HAVE_MMXEXT && cpuflags & AV_CPU_FLAG_MMXEXT) {
|
||||
if (EXTERNAL_MMXEXT(cpuflags)) {
|
||||
c->idct_dc_add = ff_vp3_idct_dc_add_mmx2;
|
||||
|
||||
if (!(flags & CODEC_FLAG_BITEXACT)) {
|
||||
@@ -58,10 +58,9 @@ av_cold void ff_vp3dsp_init_x86(VP3DSPContext *c, int flags)
|
||||
}
|
||||
}
|
||||
|
||||
if (cpuflags & AV_CPU_FLAG_SSE2) {
|
||||
if (EXTERNAL_SSE2(cpuflags)) {
|
||||
c->idct_put = ff_vp3_idct_put_sse2;
|
||||
c->idct_add = ff_vp3_idct_add_sse2;
|
||||
c->idct_perm = FF_TRANSPOSE_IDCT_PERM;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user