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