Mercurial > libavutil.hg
changeset 1011:ec22b0df8cf6 libavutil
Cache detected CPU flags
author | mru |
---|---|
date | Thu, 09 Sep 2010 18:51:49 +0000 |
parents | 6138233957fe |
children | c915dc284b9a |
files | cpu.c |
diffstat | 1 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/cpu.c Thu Sep 09 18:51:45 2010 +0000 +++ b/cpu.c Thu Sep 09 18:51:49 2010 +0000 @@ -21,10 +21,17 @@ int av_get_cpu_flags(void) { - if (ARCH_ARM) return ff_get_cpu_flags_arm(); - if (ARCH_PPC) return ff_get_cpu_flags_ppc(); - if (ARCH_X86) return ff_get_cpu_flags_x86(); - return 0; + static int flags, checked; + + if (checked) + return flags; + + if (ARCH_ARM) flags = ff_get_cpu_flags_arm(); + if (ARCH_PPC) flags = ff_get_cpu_flags_ppc(); + if (ARCH_X86) flags = ff_get_cpu_flags_x86(); + + checked = 1; + return flags; } #ifdef TEST