VLC 4.0.0-dev
|
This file provides CPU features detection. More...
Go to the source code of this file.
Macros | |
#define | HAVE_FPU 0 |
Are single precision floating point operations "fast"? If this preprocessor constant is zero, floating point should be avoided (especially relevant for audio codecs). | |
#define | set_cpu_funcs(name, activate, priority) |
Functions | |
unsigned | vlc_CPU (void) |
Retrieves CPU capability flags. | |
unsigned | vlc_CPU_raw (void) |
Computes CPU capability flags. | |
void | vlc_CPU_functions_init (const char *name, void *restrict funcs) |
Initialises DSP functions. | |
static void | vlc_CPU_functions_init_once (const char *name, void *restrict funcs) |
Initialises DSP functions once. | |
This file provides CPU features detection.
#define HAVE_FPU 0 |
Are single precision floating point operations "fast"? If this preprocessor constant is zero, floating point should be avoided (especially relevant for audio codecs).
unsigned vlc_CPU | ( | void | ) |
Retrieves CPU capability flags.
References unlikely, and vlc_CPU_raw().
void vlc_CPU_functions_init | ( | const char * | name, |
void *restrict | funcs | ||
) |
Initialises DSP functions.
This helper looks for accelerated Digital Signal Processing functions identified by the supplied type name. Those functions ares typically implemented using architecture-specific assembler code with Single Instruction Multiple Data (SIMD) opcodes for faster processing.
The exact purposes and semantics of the DSP functions is uniquely identified by a nul-terminated string.
name | nul-terminated type identifier (cannot be NULL) | |
[in,out] | funcs | type-specific data structure to be initialised |
References init, likely, vlc_module_map(), and vlc_module_match().
Referenced by vlc_CPU_functions_init_once().
|
inlinestatic |
Initialises DSP functions once.
This is a convenience wrapper for vlc_CPU_functions_init(). It only initialises the functions the first time it is evaluated.
References name, vlc_CPU_functions_init(), vlc_once_begin, vlc_once_complete(), and VLC_STATIC_ONCE.