FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
cpu.h File Reference
#include "config.h"
#include "libavutil/cpu.h"
#include "libavutil/cpu_internal.h"

Go to the source code of this file.

Macros

#define AV_CPU_FLAG_AMD3DNOW   AV_CPU_FLAG_3DNOW
 
#define AV_CPU_FLAG_AMD3DNOWEXT   AV_CPU_FLAG_3DNOWEXT
 
#define X86_AMD3DNOW(flags)   CPUEXT(flags, AMD3DNOW)
 
#define X86_AMD3DNOWEXT(flags)   CPUEXT(flags, AMD3DNOWEXT)
 
#define X86_MMX(flags)   CPUEXT(flags, MMX)
 
#define X86_MMXEXT(flags)   CPUEXT(flags, MMXEXT)
 
#define X86_SSE(flags)   CPUEXT(flags, SSE)
 
#define X86_SSE2(flags)   CPUEXT(flags, SSE2)
 
#define X86_SSE2_FAST(flags)   CPUEXT_FAST(flags, SSE2)
 
#define X86_SSE2_SLOW(flags)   CPUEXT_SLOW(flags, SSE2)
 
#define X86_SSE3(flags)   CPUEXT(flags, SSE3)
 
#define X86_SSE3_FAST(flags)   CPUEXT_FAST(flags, SSE3)
 
#define X86_SSE3_SLOW(flags)   CPUEXT_SLOW(flags, SSE3)
 
#define X86_SSSE3(flags)   CPUEXT(flags, SSSE3)
 
#define X86_SSE4(flags)   CPUEXT(flags, SSE4)
 
#define X86_SSE42(flags)   CPUEXT(flags, SSE42)
 
#define X86_AVX(flags)   CPUEXT(flags, AVX)
 
#define X86_AVX_FAST(flags)   CPUEXT_FAST(flags, AVX)
 
#define X86_AVX_SLOW(flags)   CPUEXT_SLOW(flags, AVX)
 
#define X86_XOP(flags)   CPUEXT(flags, XOP)
 
#define X86_FMA3(flags)   CPUEXT(flags, FMA3)
 
#define X86_FMA4(flags)   CPUEXT(flags, FMA4)
 
#define X86_AVX2(flags)   CPUEXT(flags, AVX2)
 
#define X86_AESNI(flags)   CPUEXT(flags, AESNI)
 
#define EXTERNAL_AMD3DNOW(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOW)
 
#define EXTERNAL_AMD3DNOWEXT(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOWEXT)
 
#define EXTERNAL_MMX(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, MMX)
 
#define EXTERNAL_MMXEXT(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, MMXEXT)
 
#define EXTERNAL_SSE(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSE)
 
#define EXTERNAL_SSE2(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSE2)
 
#define EXTERNAL_SSE2_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, SSE2)
 
#define EXTERNAL_SSE2_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, SSE2)
 
#define EXTERNAL_SSE3(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSE3)
 
#define EXTERNAL_SSE3_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, SSE3)
 
#define EXTERNAL_SSE3_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, SSE3)
 
#define EXTERNAL_SSSE3(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSSE3)
 
#define EXTERNAL_SSE4(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSE4)
 
#define EXTERNAL_SSE42(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, SSE42)
 
#define EXTERNAL_AVX(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, AVX)
 
#define EXTERNAL_AVX_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, AVX)
 
#define EXTERNAL_AVX_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, AVX)
 
#define EXTERNAL_XOP(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, XOP)
 
#define EXTERNAL_FMA3(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, FMA3)
 
#define EXTERNAL_FMA3_FAST(flags)   CPUEXT_SUFFIX_FAST2(flags, _EXTERNAL, FMA3, AVX)
 
#define EXTERNAL_FMA3_SLOW(flags)   CPUEXT_SUFFIX_SLOW2(flags, _EXTERNAL, FMA3, AVX)
 
#define EXTERNAL_FMA4(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, FMA4)
 
#define EXTERNAL_AVX2(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, AVX2)
 
#define EXTERNAL_AVX2_FAST(flags)   CPUEXT_SUFFIX_FAST2(flags, _EXTERNAL, AVX2, AVX)
 
#define EXTERNAL_AVX2_SLOW(flags)   CPUEXT_SUFFIX_SLOW2(flags, _EXTERNAL, AVX2, AVX)
 
#define EXTERNAL_AESNI(flags)   CPUEXT_SUFFIX(flags, _EXTERNAL, AESNI)
 
#define INLINE_AMD3DNOW(flags)   CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOW)
 
#define INLINE_AMD3DNOWEXT(flags)   CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOWEXT)
 
#define INLINE_MMX(flags)   CPUEXT_SUFFIX(flags, _INLINE, MMX)
 
#define INLINE_MMXEXT(flags)   CPUEXT_SUFFIX(flags, _INLINE, MMXEXT)
 
#define INLINE_SSE(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSE)
 
#define INLINE_SSE2(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSE2)
 
#define INLINE_SSE2_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _INLINE, SSE2)
 
#define INLINE_SSE2_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _INLINE, SSE2)
 
#define INLINE_SSE3(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSE3)
 
#define INLINE_SSE3_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _INLINE, SSE3)
 
#define INLINE_SSE3_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _INLINE, SSE3)
 
#define INLINE_SSSE3(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSSE3)
 
#define INLINE_SSE4(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSE4)
 
#define INLINE_SSE42(flags)   CPUEXT_SUFFIX(flags, _INLINE, SSE42)
 
#define INLINE_AVX(flags)   CPUEXT_SUFFIX(flags, _INLINE, AVX)
 
#define INLINE_AVX_FAST(flags)   CPUEXT_SUFFIX_FAST(flags, _INLINE, AVX)
 
#define INLINE_AVX_SLOW(flags)   CPUEXT_SUFFIX_SLOW(flags, _INLINE, AVX)
 
#define INLINE_XOP(flags)   CPUEXT_SUFFIX(flags, _INLINE, XOP)
 
#define INLINE_FMA3(flags)   CPUEXT_SUFFIX(flags, _INLINE, FMA3)
 
#define INLINE_FMA4(flags)   CPUEXT_SUFFIX(flags, _INLINE, FMA4)
 
#define INLINE_AVX2(flags)   CPUEXT_SUFFIX(flags, _INLINE, AVX2)
 
#define INLINE_AESNI(flags)   CPUEXT_SUFFIX(flags, _INLINE, AESNI)
 

Functions

void ff_cpu_cpuid (int index, int *eax, int *ebx, int *ecx, int *edx)
 
void ff_cpu_xgetbv (int op, int *eax, int *edx)
 
int ff_cpu_cpuid_test (void)
 

Macro Definition Documentation

#define AV_CPU_FLAG_AMD3DNOW   AV_CPU_FLAG_3DNOW

Definition at line 26 of file cpu.h.

#define AV_CPU_FLAG_AMD3DNOWEXT   AV_CPU_FLAG_3DNOWEXT

Definition at line 27 of file cpu.h.

#define X86_AMD3DNOW (   flags)    CPUEXT(flags, AMD3DNOW)

Definition at line 29 of file cpu.h.

#define X86_AMD3DNOWEXT (   flags)    CPUEXT(flags, AMD3DNOWEXT)

Definition at line 30 of file cpu.h.

#define X86_MMX (   flags)    CPUEXT(flags, MMX)

Definition at line 31 of file cpu.h.

Referenced by sws_init_context().

#define X86_MMXEXT (   flags)    CPUEXT(flags, MMXEXT)

Definition at line 32 of file cpu.h.

Referenced by ff_qpeldsp_init_x86().

#define X86_SSE (   flags)    CPUEXT(flags, SSE)

Definition at line 33 of file cpu.h.

#define X86_SSE2 (   flags)    CPUEXT(flags, SSE2)

Definition at line 34 of file cpu.h.

#define X86_SSE2_FAST (   flags)    CPUEXT_FAST(flags, SSE2)

Definition at line 35 of file cpu.h.

#define X86_SSE2_SLOW (   flags)    CPUEXT_SLOW(flags, SSE2)

Definition at line 36 of file cpu.h.

#define X86_SSE3 (   flags)    CPUEXT(flags, SSE3)

Definition at line 37 of file cpu.h.

#define X86_SSE3_FAST (   flags)    CPUEXT_FAST(flags, SSE3)

Definition at line 38 of file cpu.h.

#define X86_SSE3_SLOW (   flags)    CPUEXT_SLOW(flags, SSE3)

Definition at line 39 of file cpu.h.

#define X86_SSSE3 (   flags)    CPUEXT(flags, SSSE3)

Definition at line 40 of file cpu.h.

#define X86_SSE4 (   flags)    CPUEXT(flags, SSE4)

Definition at line 41 of file cpu.h.

#define X86_SSE42 (   flags)    CPUEXT(flags, SSE42)

Definition at line 42 of file cpu.h.

#define X86_AVX (   flags)    CPUEXT(flags, AVX)

Definition at line 43 of file cpu.h.

#define X86_AVX_FAST (   flags)    CPUEXT_FAST(flags, AVX)

Definition at line 44 of file cpu.h.

#define X86_AVX_SLOW (   flags)    CPUEXT_SLOW(flags, AVX)

Definition at line 45 of file cpu.h.

#define X86_XOP (   flags)    CPUEXT(flags, XOP)

Definition at line 46 of file cpu.h.

#define X86_FMA3 (   flags)    CPUEXT(flags, FMA3)

Definition at line 47 of file cpu.h.

#define X86_FMA4 (   flags)    CPUEXT(flags, FMA4)

Definition at line 48 of file cpu.h.

#define X86_AVX2 (   flags)    CPUEXT(flags, AVX2)

Definition at line 49 of file cpu.h.

#define X86_AESNI (   flags)    CPUEXT(flags, AESNI)

Definition at line 50 of file cpu.h.

#define EXTERNAL_AMD3DNOW (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOW)
#define EXTERNAL_AMD3DNOWEXT (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOWEXT)

Definition at line 53 of file cpu.h.

Referenced by ff_fft_init_x86(), and ff_float_dsp_init_x86().

#define EXTERNAL_MMX (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, MMX)
#define EXTERNAL_MMXEXT (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, MMXEXT)
#define EXTERNAL_SSE (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSE)
#define EXTERNAL_SSE2 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSE2)

Definition at line 57 of file cpu.h.

Referenced by D(), ff_ac3dsp_init_x86(), ff_alacdsp_init_x86(), ff_audio_convert_init_x86(), ff_audio_mix_init_x86(), ff_audiodsp_init_x86(), ff_blend_init_x86(), ff_bswapdsp_init_x86(), ff_cavsdsp_init_x86(), ff_dcadsp_init_x86(), ff_dct_init_x86(), ff_diracdsp_init_x86(), ff_dither_init_x86(), ff_dnxhdenc_init_x86(), ff_fixed_dsp_init_x86(), ff_flacdsp_init_x86(), ff_float_dsp_init_x86(), ff_fmt_convert_init_x86(), ff_g722dsp_init_x86(), ff_gradfun_init_x86(), ff_h264chroma_init_x86(), ff_h264dsp_init_x86(), ff_h264qpel_init_x86(), ff_hevc_dsp_init_x86(), ff_hpeldsp_init_x86(), ff_huffyuvdsp_init_x86(), ff_huffyuvencdsp_init_x86(), ff_idctdsp_init_x86(), ff_idet_init_x86(), ff_init_lls_x86(), ff_interlace_init_x86(), ff_jpeg2000dsp_init_x86(), ff_llauddsp_init_x86(), ff_llviddsp_init_x86(), ff_maskedmerge_init_x86(), ff_mpadsp_init_x86(), ff_mpegvideoencdsp_init_x86(), ff_pixblockdsp_init_x86(), ff_pixelutils_sad_init_x86(), ff_pngdsp_init_x86(), ff_proresdsp_init_x86(), ff_psnr_init_x86(), ff_removegrain_init_x86(), ff_rv40dsp_init_x86(), ff_sbrdsp_init_x86(), ff_svq1enc_init_x86(), ff_sws_init_swscale_x86(), ff_synth_filter_init_x86(), ff_takdsp_init_x86(), ff_tinterlace_init_x86(), ff_vc1dsp_init_x86(), ff_videodsp_init_x86(), ff_volume_init_x86(), ff_vp3dsp_init_x86(), ff_vp6dsp_init_x86(), ff_vp8dsp_init_x86(), ff_vp9dsp_init_16bpp_x86(), ff_vp9dsp_init_x86(), ff_w3fdif_init_x86(), ff_xvid_idct_init_x86(), ff_yadif_init_x86(), INIT_FUNC(), PRED4x4(), swri_audio_convert_init_x86(), and swri_resample_dsp_x86_init().

#define EXTERNAL_SSE2_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, SSE2)

Definition at line 58 of file cpu.h.

#define EXTERNAL_SSE2_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, SSE2)

Definition at line 59 of file cpu.h.

#define EXTERNAL_SSE3 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSE3)

Definition at line 60 of file cpu.h.

Referenced by ff_mpadsp_init_x86(), ff_psdsp_init_x86(), and ff_sbrdsp_init_x86().

#define EXTERNAL_SSE3_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, SSE3)

Definition at line 61 of file cpu.h.

#define EXTERNAL_SSE3_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, SSE3)

Definition at line 62 of file cpu.h.

#define EXTERNAL_SSSE3 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSSE3)
#define EXTERNAL_SSE4 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSE4)
#define EXTERNAL_SSE42 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, SSE42)

Definition at line 65 of file cpu.h.

#define EXTERNAL_AVX (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, AVX)
#define EXTERNAL_AVX_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, AVX)
#define EXTERNAL_AVX_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, AVX)

Definition at line 68 of file cpu.h.

#define EXTERNAL_XOP (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, XOP)
#define EXTERNAL_FMA3 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, FMA3)

Definition at line 70 of file cpu.h.

Referenced by ff_dcadsp_init_x86().

#define EXTERNAL_FMA3_FAST (   flags)    CPUEXT_SUFFIX_FAST2(flags, _EXTERNAL, FMA3, AVX)
#define EXTERNAL_FMA3_SLOW (   flags)    CPUEXT_SUFFIX_SLOW2(flags, _EXTERNAL, FMA3, AVX)

Definition at line 72 of file cpu.h.

#define EXTERNAL_FMA4 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, FMA4)

Definition at line 73 of file cpu.h.

Referenced by swri_resample_dsp_x86_init().

#define EXTERNAL_AVX2 (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, AVX2)

Definition at line 74 of file cpu.h.

Referenced by ff_hevc_dsp_init_x86(), and ff_videodsp_init_x86().

#define EXTERNAL_AVX2_FAST (   flags)    CPUEXT_SUFFIX_FAST2(flags, _EXTERNAL, AVX2, AVX)
#define EXTERNAL_AVX2_SLOW (   flags)    CPUEXT_SUFFIX_SLOW2(flags, _EXTERNAL, AVX2, AVX)

Definition at line 76 of file cpu.h.

#define EXTERNAL_AESNI (   flags)    CPUEXT_SUFFIX(flags, _EXTERNAL, AESNI)

Definition at line 77 of file cpu.h.

#define INLINE_AMD3DNOW (   flags)    CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOW)
#define INLINE_AMD3DNOWEXT (   flags)    CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOWEXT)

Definition at line 80 of file cpu.h.

#define INLINE_MMX (   flags)    CPUEXT_SUFFIX(flags, _INLINE, MMX)
#define INLINE_MMXEXT (   flags)    CPUEXT_SUFFIX(flags, _INLINE, MMXEXT)
#define INLINE_SSE (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSE)

Definition at line 83 of file cpu.h.

Referenced by ff_ac3dsp_init_x86(), and ff_mpadsp_init_x86().

#define INLINE_SSE2 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSE2)

Definition at line 84 of file cpu.h.

Referenced by ff_dct_encode_init_x86(), ff_fdctdsp_init_x86(), and rgb2rgb_init_x86().

#define INLINE_SSE2_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _INLINE, SSE2)

Definition at line 85 of file cpu.h.

#define INLINE_SSE2_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _INLINE, SSE2)

Definition at line 86 of file cpu.h.

#define INLINE_SSE3 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSE3)

Definition at line 87 of file cpu.h.

#define INLINE_SSE3_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _INLINE, SSE3)

Definition at line 88 of file cpu.h.

#define INLINE_SSE3_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _INLINE, SSE3)

Definition at line 89 of file cpu.h.

#define INLINE_SSSE3 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSSE3)

Definition at line 90 of file cpu.h.

Referenced by ff_dct_encode_init_x86(), and ff_mpegvideoencdsp_init_x86().

#define INLINE_SSE4 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSE4)

Definition at line 91 of file cpu.h.

#define INLINE_SSE42 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, SSE42)

Definition at line 92 of file cpu.h.

#define INLINE_AVX (   flags)    CPUEXT_SUFFIX(flags, _INLINE, AVX)

Definition at line 93 of file cpu.h.

Referenced by rgb2rgb_init_x86().

#define INLINE_AVX_FAST (   flags)    CPUEXT_SUFFIX_FAST(flags, _INLINE, AVX)

Definition at line 94 of file cpu.h.

#define INLINE_AVX_SLOW (   flags)    CPUEXT_SUFFIX_SLOW(flags, _INLINE, AVX)

Definition at line 95 of file cpu.h.

#define INLINE_XOP (   flags)    CPUEXT_SUFFIX(flags, _INLINE, XOP)

Definition at line 96 of file cpu.h.

#define INLINE_FMA3 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, FMA3)

Definition at line 97 of file cpu.h.

#define INLINE_FMA4 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, FMA4)

Definition at line 98 of file cpu.h.

#define INLINE_AVX2 (   flags)    CPUEXT_SUFFIX(flags, _INLINE, AVX2)

Definition at line 99 of file cpu.h.

#define INLINE_AESNI (   flags)    CPUEXT_SUFFIX(flags, _INLINE, AESNI)

Definition at line 100 of file cpu.h.

Function Documentation

void ff_cpu_cpuid ( int  index,
int *  eax,
int *  ebx,
int *  ecx,
int *  edx 
)
void ff_cpu_xgetbv ( int  op,
int *  eax,
int *  edx 
)
int ff_cpu_cpuid_test ( void  )