vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Fri Aug 19 23:15:08 2011 +0300| [78b320f230b5b36b62f2350d5dd757a5ff25c517] | committer: Rémi Denis-Courmont
Move CPU capabilities debug to src/misc/cpu.c > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=78b320f230b5b36b62f2350d5dd757a5ff25c517 --- src/libvlc.c | 40 +--------------------------------------- src/libvlc.h | 2 ++ src/misc/cpu.c | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 39 deletions(-) diff --git a/src/libvlc.c b/src/libvlc.c index bcdf104..0c931c1 100644 --- a/src/libvlc.c +++ b/src/libvlc.c @@ -666,45 +666,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, if( priv->b_color ) priv->b_color = var_InheritBool( p_libvlc, "color" ); - char p_capabilities[200]; -#define PRINT_CAPABILITY( capability, string ) \ - if( vlc_CPU() & capability ) \ - { \ - strncat( p_capabilities, string " ", \ - sizeof(p_capabilities) - strlen(p_capabilities) ); \ - p_capabilities[sizeof(p_capabilities) - 1] = '\0'; \ - } - p_capabilities[0] = '\0'; - -#if defined( __i386__ ) || defined( __x86_64__ ) - PRINT_CAPABILITY( CPU_CAPABILITY_MMX, "MMX" ); - PRINT_CAPABILITY( CPU_CAPABILITY_3DNOW, "3DNow!" ); - PRINT_CAPABILITY( CPU_CAPABILITY_MMXEXT, "MMXEXT" ); - PRINT_CAPABILITY( CPU_CAPABILITY_SSE, "SSE" ); - PRINT_CAPABILITY( CPU_CAPABILITY_SSE2, "SSE2" ); - PRINT_CAPABILITY( CPU_CAPABILITY_SSE3, "SSE3" ); - PRINT_CAPABILITY( CPU_CAPABILITY_SSSE3, "SSSE3" ); - PRINT_CAPABILITY( CPU_CAPABILITY_SSE4_1, "SSE4.1" ); - PRINT_CAPABILITY( CPU_CAPABILITY_SSE4_2, "SSE4.2" ); - PRINT_CAPABILITY( CPU_CAPABILITY_SSE4A, "SSE4A" ); - -#elif defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc64__ ) - PRINT_CAPABILITY( CPU_CAPABILITY_ALTIVEC, "AltiVec" ); - -#elif defined( __arm__ ) - PRINT_CAPABILITY( CPU_CAPABILITY_NEON, "NEONv1" ); - -#endif - -#if HAVE_FPU - strncat( p_capabilities, "FPU ", - sizeof(p_capabilities) - strlen( p_capabilities) ); - p_capabilities[sizeof(p_capabilities) - 1] = '\0'; -#endif - - if (p_capabilities[0]) - msg_Dbg( p_libvlc, "CPU has capabilities %s", p_capabilities ); - + vlc_CPU_dump( VLC_OBJECT(p_libvlc) ); /* * Choose the best memcpy module */ diff --git a/src/libvlc.h b/src/libvlc.h index 2dbccf8..a4ef280 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -41,6 +41,8 @@ void system_Init ( void ); void system_Configure ( libvlc_int_t *, int, const char *const [] ); void system_End ( void ); +void vlc_CPU_dump(vlc_object_t *); + /* * Threads subsystem */ diff --git a/src/misc/cpu.c b/src/misc/cpu.c index 20520d2..7e4b073 100644 --- a/src/misc/cpu.c +++ b/src/misc/cpu.c @@ -336,6 +336,44 @@ unsigned vlc_CPU (void) return cpu_flags; } +void vlc_CPU_dump (vlc_object_t *obj) +{ + const unsigned flags = vlc_CPU(); + char buf[200], *p = buf; + +#define PRINT_CAPABILITY( capability, string ) \ + if (flags & (capability)) \ + p += sprintf (p, "%s ", (string) ) + +#if defined (__i386__) || defined (__x86_64__) + PRINT_CAPABILITY(CPU_CAPABILITY_MMX, "MMX"); + PRINT_CAPABILITY(CPU_CAPABILITY_3DNOW, "3DNow!"); + PRINT_CAPABILITY(CPU_CAPABILITY_MMXEXT, "MMXEXT"); + PRINT_CAPABILITY(CPU_CAPABILITY_SSE, "SSE"); + PRINT_CAPABILITY(CPU_CAPABILITY_SSE2, "SSE2"); + PRINT_CAPABILITY(CPU_CAPABILITY_SSE3, "SSE3"); + PRINT_CAPABILITY(CPU_CAPABILITY_SSSE3, "SSSE3"); + PRINT_CAPABILITY(CPU_CAPABILITY_SSE4_1, "SSE4.1"); + PRINT_CAPABILITY(CPU_CAPABILITY_SSE4_2, "SSE4.2"); + PRINT_CAPABILITY(CPU_CAPABILITY_SSE4A, "SSE4A"); + +#elif defined (__powerpc__) || defined (__ppc__) || defined (__ppc64__) + PRINT_CAPABILITY(CPU_CAPABILITY_ALTIVEC, "AltiVec"); + +#elif defined (__arm__) + PRINT_CAPABILITY(CPU_CAPABILITY_NEON, "NEONv1"); + +#endif + +#if HAVE_FPU + p += sprintf (p, "FPU "); +#endif + + if (p > buf) + msg_Dbg (obj, "CPU has capabilities %s", buf); +} + + static vlc_memcpy_t pf_vlc_memcpy = memcpy; void vlc_fastmem_register (vlc_memcpy_t cpy) _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
