mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
aarch64: Factorize code for CPU feature detection on Apple platforms
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
41b73ae883
commit
8339a45400
@ -45,22 +45,23 @@ static int detect_flags(void)
|
||||
#elif defined(__APPLE__) && HAVE_SYSCTLBYNAME
|
||||
#include <sys/sysctl.h>
|
||||
|
||||
static int have_feature(const char *feature) {
|
||||
uint32_t value = 0;
|
||||
size_t size = sizeof(value);
|
||||
if (!sysctlbyname(feature, &value, &size, NULL, 0))
|
||||
return value;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int detect_flags(void)
|
||||
{
|
||||
uint32_t value = 0;
|
||||
size_t size;
|
||||
int flags = 0;
|
||||
|
||||
size = sizeof(value);
|
||||
if (!sysctlbyname("hw.optional.arm.FEAT_DotProd", &value, &size, NULL, 0)) {
|
||||
if (value)
|
||||
flags |= AV_CPU_FLAG_DOTPROD;
|
||||
}
|
||||
size = sizeof(value);
|
||||
if (!sysctlbyname("hw.optional.arm.FEAT_I8MM", &value, &size, NULL, 0)) {
|
||||
if (value)
|
||||
flags |= AV_CPU_FLAG_I8MM;
|
||||
}
|
||||
if (have_feature("hw.optional.arm.FEAT_DotProd"))
|
||||
flags |= AV_CPU_FLAG_DOTPROD;
|
||||
if (have_feature("hw.optional.arm.FEAT_I8MM"))
|
||||
flags |= AV_CPU_FLAG_I8MM;
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user