# HG changeset patch # User mru # Date 1284058309 0 # Node ID ec22b0df8cf61090e95a7cc382bff05648f19f59 # Parent 6138233957fefd73a63368c2f10461f5a6023142 Cache detected CPU flags diff -r 6138233957fe -r ec22b0df8cf6 cpu.c --- 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