22 #define CORE_FLAG(f) \    23     (AV_CPU_FLAG_ ## f * (HAVE_ ## f ## _EXTERNAL || HAVE_ ## f ## _INLINE))    25 #define CORE_CPU_FLAGS                          \    26     (CORE_FLAG(ARMV5TE) |                       \    28      CORE_FLAG(ARMV6T2) |                       \    33 #if defined __linux__ || defined __ANDROID__    43 #define HWCAP_VFP       (1 << 6)    44 #define HWCAP_EDSP      (1 << 7)    45 #define HWCAP_THUMBEE   (1 << 11)    46 #define HWCAP_NEON      (1 << 12)    47 #define HWCAP_VFPv3     (1 << 13)    48 #define HWCAP_TLS       (1 << 15)    50 static int get_hwcap(uint32_t *hwcap)
    52     struct { uint32_t a_type; uint32_t a_val; } auxv;
    53     FILE *
f = fopen(
"/proc/self/auxv", 
"r");
    59     while (fread(&auxv, 
sizeof(auxv), 1, f) > 0) {
    60         if (auxv.a_type == AT_HWCAP) {
    71 static int get_cpuinfo(uint32_t *hwcap)
    73     FILE *
f = fopen(
"/proc/cpuinfo", 
"r");
    80     while (fgets(buf, 
sizeof(buf), f)) {
    82             if (strstr(buf, 
" edsp "))
    84             if (strstr(buf, 
" tls "))
    86             if (strstr(buf, 
" thumbee "))
    87                 *hwcap |= HWCAP_THUMBEE;
    88             if (strstr(buf, 
" vfp "))
    90             if (strstr(buf, 
" vfpv3 "))
    91                 *hwcap |= HWCAP_VFPv3;
    92             if (strstr(buf, 
" neon "))
   106     if (get_hwcap(&hwcap) < 0)
   107         if (get_cpuinfo(&hwcap) < 0)
   110 #define check_cap(cap, flag) do {               \   111         if (hwcap & HWCAP_ ## cap)              \   112             flags |= AV_CPU_FLAG_ ## flag;      \   117     check_cap(EDSP,    ARMV5TE);
   118     check_cap(TLS,     ARMV6);
   119     check_cap(THUMBEE, ARMV6T2);
   121     check_cap(VFPv3,   VFPV3);
   122     check_cap(NEON,    NEON);
 
#define AV_CPU_FLAG_ARMV6T2
#define AV_CPU_FLAG_ARMV5TE
#define AV_CPU_FLAG_VFPV3
#define AV_CPU_FLAG_ARMV6
int av_strstart(const char *str, const char *pfx, const char **ptr)
Return non-zero if pfx is a prefix of str. 
int ff_get_cpu_flags_arm(void)