Libav
Macros | Functions | Variables
cpu.c File Reference
#include <stdint.h>
#include "cpu.h"
#include "cpu_internal.h"
#include "config.h"
#include "opt.h"
#include "common.h"

Go to the source code of this file.

Macros

#define CPUFLAG_MMXEXT   (AV_CPU_FLAG_MMX | AV_CPU_FLAG_MMXEXT | AV_CPU_FLAG_CMOV)
 
#define CPUFLAG_3DNOW   (AV_CPU_FLAG_3DNOW | AV_CPU_FLAG_MMX)
 
#define CPUFLAG_3DNOWEXT   (AV_CPU_FLAG_3DNOWEXT | CPUFLAG_3DNOW)
 
#define CPUFLAG_SSE   (AV_CPU_FLAG_SSE | CPUFLAG_MMXEXT)
 
#define CPUFLAG_SSE2   (AV_CPU_FLAG_SSE2 | CPUFLAG_SSE)
 
#define CPUFLAG_SSE2SLOW   (AV_CPU_FLAG_SSE2SLOW | CPUFLAG_SSE2)
 
#define CPUFLAG_SSE3   (AV_CPU_FLAG_SSE3 | CPUFLAG_SSE2)
 
#define CPUFLAG_SSE3SLOW   (AV_CPU_FLAG_SSE3SLOW | CPUFLAG_SSE3)
 
#define CPUFLAG_SSSE3   (AV_CPU_FLAG_SSSE3 | CPUFLAG_SSE3)
 
#define CPUFLAG_SSE4   (AV_CPU_FLAG_SSE4 | CPUFLAG_SSSE3)
 
#define CPUFLAG_SSE42   (AV_CPU_FLAG_SSE42 | CPUFLAG_SSE4)
 
#define CPUFLAG_AVX   (AV_CPU_FLAG_AVX | CPUFLAG_SSE42)
 
#define CPUFLAG_AVXSLOW   (AV_CPU_FLAG_AVXSLOW | CPUFLAG_AVX)
 
#define CPUFLAG_XOP   (AV_CPU_FLAG_XOP | CPUFLAG_AVX)
 
#define CPUFLAG_FMA3   (AV_CPU_FLAG_FMA3 | CPUFLAG_AVX)
 
#define CPUFLAG_FMA4   (AV_CPU_FLAG_FMA4 | CPUFLAG_AVX)
 
#define CPUFLAG_AVX2   (AV_CPU_FLAG_AVX2 | CPUFLAG_AVX)
 
#define CPUFLAG_BMI2   (AV_CPU_FLAG_BMI2 | AV_CPU_FLAG_BMI1)
 

Functions

int av_get_cpu_flags (void)
 Return the flags which specify extensions supported by the CPU. More...
 
void av_set_cpu_flags_mask (int mask)
 Set a mask on flags returned by av_get_cpu_flags(). More...
 
int av_parse_cpu_flags (const char *s)
 Parse CPU flags from a string. More...
 
int av_cpu_count (void)
 

Variables

static int cpuflags_mask = -1
 
static int checked
 

Macro Definition Documentation

◆ CPUFLAG_MMXEXT

#define CPUFLAG_MMXEXT   (AV_CPU_FLAG_MMX | AV_CPU_FLAG_MMXEXT | AV_CPU_FLAG_CMOV)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_3DNOW

#define CPUFLAG_3DNOW   (AV_CPU_FLAG_3DNOW | AV_CPU_FLAG_MMX)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_3DNOWEXT

#define CPUFLAG_3DNOWEXT   (AV_CPU_FLAG_3DNOWEXT | CPUFLAG_3DNOW)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_SSE

#define CPUFLAG_SSE   (AV_CPU_FLAG_SSE | CPUFLAG_MMXEXT)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_SSE2

#define CPUFLAG_SSE2   (AV_CPU_FLAG_SSE2 | CPUFLAG_SSE)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_SSE2SLOW

#define CPUFLAG_SSE2SLOW   (AV_CPU_FLAG_SSE2SLOW | CPUFLAG_SSE2)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_SSE3

#define CPUFLAG_SSE3   (AV_CPU_FLAG_SSE3 | CPUFLAG_SSE2)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_SSE3SLOW

#define CPUFLAG_SSE3SLOW   (AV_CPU_FLAG_SSE3SLOW | CPUFLAG_SSE3)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_SSSE3

#define CPUFLAG_SSSE3   (AV_CPU_FLAG_SSSE3 | CPUFLAG_SSE3)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_SSE4

#define CPUFLAG_SSE4   (AV_CPU_FLAG_SSE4 | CPUFLAG_SSSE3)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_SSE42

#define CPUFLAG_SSE42   (AV_CPU_FLAG_SSE42 | CPUFLAG_SSE4)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_AVX

#define CPUFLAG_AVX   (AV_CPU_FLAG_AVX | CPUFLAG_SSE42)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_AVXSLOW

#define CPUFLAG_AVXSLOW   (AV_CPU_FLAG_AVXSLOW | CPUFLAG_AVX)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_XOP

#define CPUFLAG_XOP   (AV_CPU_FLAG_XOP | CPUFLAG_AVX)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_FMA3

#define CPUFLAG_FMA3   (AV_CPU_FLAG_FMA3 | CPUFLAG_AVX)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_FMA4

#define CPUFLAG_FMA4   (AV_CPU_FLAG_FMA4 | CPUFLAG_AVX)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_AVX2

#define CPUFLAG_AVX2   (AV_CPU_FLAG_AVX2 | CPUFLAG_AVX)

Referenced by av_parse_cpu_flags().

◆ CPUFLAG_BMI2

#define CPUFLAG_BMI2   (AV_CPU_FLAG_BMI2 | AV_CPU_FLAG_BMI1)

Referenced by av_parse_cpu_flags().

Function Documentation

◆ av_get_cpu_flags()

int av_get_cpu_flags ( void  )

Return the flags which specify extensions supported by the CPU.

Definition at line 47 of file cpu.c.

Referenced by check_cpu_flag(), ff_ac3dsp_init_arm(), ff_ac3dsp_init_x86(), ff_apedsp_init_arm(), ff_apedsp_init_ppc(), ff_apedsp_init_x86(), ff_audio_convert_init_aarch64(), ff_audio_convert_init_arm(), ff_audio_convert_init_x86(), ff_audio_mix_init_x86(), ff_audio_resample_init_aarch64(), ff_audio_resample_init_arm(), ff_audiodsp_init_arm(), ff_audiodsp_init_ppc(), ff_audiodsp_init_x86(), ff_blockdsp_init_arm(), ff_blockdsp_init_ppc(), ff_blockdsp_init_x86(), ff_bswapdsp_init_x86(), ff_cavsdsp_init_x86(), ff_dcadsp_init_aarch64(), ff_dcadsp_init_arm(), ff_dcadsp_init_x86(), ff_dct_init_x86(), ff_dither_init_x86(), ff_dnxhdenc_init_x86(), ff_fdctdsp_init_ppc(), ff_fdctdsp_init_x86(), ff_fft_fixed_init_arm(), ff_fft_init_aarch64(), ff_fft_init_arm(), ff_fft_init_ppc(), ff_fft_init_x86(), ff_float_dsp_init_aarch64(), ff_float_dsp_init_arm(), ff_float_dsp_init_ppc(), ff_float_dsp_init_x86(), ff_fmt_convert_init_aarch64(), ff_fmt_convert_init_arm(), ff_fmt_convert_init_ppc(), ff_fmt_convert_init_x86(), ff_g722dsp_init_arm(), ff_get_unscaled_swscale_ppc(), ff_gradfun_init_x86(), ff_h263dsp_init_x86(), ff_h264_pred_init_aarch64(), ff_h264_pred_init_arm(), ff_h264chroma_init_aarch64(), ff_h264chroma_init_arm(), ff_h264chroma_init_ppc(), ff_h264chroma_init_x86(), ff_h264dsp_init_aarch64(), ff_h264dsp_init_arm(), ff_h264dsp_init_ppc(), ff_h264dsp_init_x86(), ff_h264qpel_init_aarch64(), ff_h264qpel_init_arm(), ff_h264qpel_init_ppc(), ff_h264qpel_init_x86(), ff_hevc_dsp_init_x86(), ff_hpeldsp_init_aarch64(), ff_hpeldsp_init_arm(), ff_hpeldsp_init_ppc(), ff_hpeldsp_init_x86(), ff_huffyuvdsp_init_ppc(), ff_huffyuvdsp_init_x86(), ff_huffyuvencdsp_init_x86(), ff_idctdsp_init_arm(), ff_idctdsp_init_ppc(), ff_idctdsp_init_x86(), ff_imdct15_init_aarch64(), ff_init_lls_x86(), ff_interlace_init_x86(), ff_lpc_init_x86(), ff_mdct_fixed_init_arm(), ff_mdct_init_aarch64(), ff_mdct_init_arm(), ff_mdct_init_ppc(), ff_mdct_init_x86(), ff_me_cmp_init_arm(), ff_me_cmp_init_ppc(), ff_mlpdsp_init_arm(), ff_mlpdsp_init_x86(), ff_mpadsp_init_aarch64(), ff_mpadsp_init_arm(), ff_mpadsp_init_ppc(), ff_mpadsp_init_x86(), ff_mpegvideodsp_init_x86(), ff_mpegvideoencdsp_init_arm(), ff_mpegvideoencdsp_init_ppc(), ff_mpegvideoencdsp_init_x86(), ff_mpv_common_init_arm(), ff_mpv_common_init_neon(), ff_mpv_common_init_ppc(), ff_mpv_common_init_x86(), ff_mpv_encode_init_x86(), ff_pixblockdsp_init_arm(), ff_pixblockdsp_init_ppc(), ff_pixblockdsp_init_x86(), ff_pngdsp_init_x86(), ff_proresdsp_init_x86(), ff_psdsp_init_arm(), ff_qpeldsp_init_x86(), ff_rdft_init_arm(), ff_rgb2rgb_init_x86(), ff_rv34dsp_init_arm(), ff_rv34dsp_init_x86(), ff_rv40dsp_init_aarch64(), ff_rv40dsp_init_arm(), ff_rv40dsp_init_x86(), ff_sbrdsp_init_arm(), ff_sbrdsp_init_x86(), ff_svq1enc_init_ppc(), ff_svq1enc_init_x86(), ff_sws_init_swscale_ppc(), ff_sws_init_swscale_x86(), ff_synth_filter_init_aarch64(), ff_synth_filter_init_arm(), ff_synth_filter_init_x86(), ff_v210enc_init_x86(), ff_vc1dsp_init_aarch64(), ff_vc1dsp_init_arm(), ff_vc1dsp_init_ppc(), ff_vc1dsp_init_x86(), ff_videodsp_init_aarch64(), ff_videodsp_init_arm(), ff_videodsp_init_x86(), ff_volume_init_x86(), ff_vorbisdsp_init_aarch64(), ff_vorbisdsp_init_arm(), ff_vorbisdsp_init_ppc(), ff_vorbisdsp_init_x86(), ff_vp3dsp_init_arm(), ff_vp3dsp_init_ppc(), ff_vp3dsp_init_x86(), ff_vp6dsp_init_arm(), ff_vp6dsp_init_x86(), ff_vp78dsp_init_arm(), ff_vp78dsp_init_ppc(), ff_vp78dsp_init_x86(), ff_vp8dsp_init_arm(), ff_vp8dsp_init_x86(), ff_vp9dsp_init_x86(), ff_xvid_idct_init_x86(), ff_yadif_init_x86(), ff_yuv2rgb_init_ppc(), ff_yuv2rgb_init_tables_ppc(), ff_yuv2rgb_init_x86(), hadamard_func(), main(), PRED4x4(), sws_init_context(), and swscale().

◆ av_set_cpu_flags_mask()

void av_set_cpu_flags_mask ( int  mask)

Set a mask on flags returned by av_get_cpu_flags().

This function is mainly useful for testing.

Warning
this function is not thread safe.

Definition at line 69 of file cpu.c.

Referenced by check_cpu_flag(), main(), and opt_cpuflags().

◆ av_parse_cpu_flags()

int av_parse_cpu_flags ( const char *  s)

Parse CPU flags from a string.

Returns
a combination of AV_CPU_* flags, negative on error.

Definition at line 75 of file cpu.c.

Referenced by main(), and opt_cpuflags().

◆ av_cpu_count()

int av_cpu_count ( void  )
Returns
the number of logical CPU cores present.

Definition at line 153 of file cpu.c.

Referenced by ff_frame_thread_init(), ff_slice_thread_init(), main(), and thread_init_internal().

Variable Documentation

◆ cpuflags_mask

int cpuflags_mask = -1
static

Definition at line 45 of file cpu.c.

Referenced by av_get_cpu_flags(), and av_set_cpu_flags_mask().

◆ checked

int checked
static

Definition at line 45 of file cpu.c.

Referenced by av_get_cpu_flags(), av_set_cpu_flags_mask(), and sab_diamond_search().