From d63abfc7eb7db5eb36b325198fbb6ceaf8778685 Mon Sep 17 00:00:00 2001 From: Mohamed Tarek Date: Wed, 14 Jul 2010 19:37:52 +0000 Subject: Add WMA Pro to the main build. WMA Pro now plays on target and decodes in 151% realtime in a 320kbps sample on a sansa e200. Lots of cleanup still need to be done, and optimisations should start soon too. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27417 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/libwmapro/libavutil/avutil.h | 2 +- apps/codecs/libwmapro/libavutil/bswap.h | 13 +------------ apps/codecs/libwmapro/libavutil/internal.h | 19 +++++++++++-------- apps/codecs/libwmapro/libavutil/intreadwrite.h | 18 +++--------------- apps/codecs/libwmapro/libavutil/log.c | 9 ++++++--- apps/codecs/libwmapro/libavutil/log.h | 2 +- apps/codecs/libwmapro/libavutil/mathematics.c | 4 ++-- 7 files changed, 25 insertions(+), 42 deletions(-) (limited to 'apps/codecs/libwmapro/libavutil') diff --git a/apps/codecs/libwmapro/libavutil/avutil.h b/apps/codecs/libwmapro/libavutil/avutil.h index 1b858f1..fd6e313 100644 --- a/apps/codecs/libwmapro/libavutil/avutil.h +++ b/apps/codecs/libwmapro/libavutil/avutil.h @@ -79,7 +79,7 @@ enum AVMediaType { }; #include "common.h" -#include "error.h" +//#include "error.h" #include "mathematics.h" //#include "rational.h" //#include "intfloat_readwrite.h" diff --git a/apps/codecs/libwmapro/libavutil/bswap.h b/apps/codecs/libwmapro/libavutil/bswap.h index 5743e12..e155017 100644 --- a/apps/codecs/libwmapro/libavutil/bswap.h +++ b/apps/codecs/libwmapro/libavutil/bswap.h @@ -30,18 +30,6 @@ //#include "config.h" #include "attributes.h" -#if ARCH_ARM -# include "arm/bswap.h" -#elif ARCH_AVR32 -# include "avr32/bswap.h" -#elif ARCH_BFIN -# include "bfin/bswap.h" -#elif ARCH_SH4 -# include "sh4/bswap.h" -#elif ARCH_X86 -# include "x86/bswap.h" -#endif - #ifndef bswap_16 static av_always_inline av_const uint16_t bswap_16(uint16_t x) { @@ -82,6 +70,7 @@ static inline uint64_t av_const bswap_64(uint64_t x) // be2me ... big-endian to machine-endian // le2me ... little-endian to machine-endian +#define HAVE_BIGENDIAN 0 #if HAVE_BIGENDIAN #define be2me_16(x) (x) #define be2me_32(x) (x) diff --git a/apps/codecs/libwmapro/libavutil/internal.h b/apps/codecs/libwmapro/libavutil/internal.h index 97087e4..87a4d3e 100644 --- a/apps/codecs/libwmapro/libavutil/internal.h +++ b/apps/codecs/libwmapro/libavutil/internal.h @@ -55,7 +55,8 @@ #endif #ifndef av_alias -#if HAVE_ATTRIBUTE_MAY_ALIAS && (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(3,3) +//#if HAVE_ATTRIBUTE_MAY_ALIAS && (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(3,3) +#if 0 # define av_alias __attribute__((may_alias)) #else # define av_alias @@ -106,7 +107,8 @@ #define LABEL_MANGLE(a) EXTERN_PREFIX #a // Use rip-relative addressing if compiling PIC code on x86-64. -#if ARCH_X86_64 && defined(PIC) +//#if ARCH_X86_64 && defined(PIC) +#if 0 # define LOCAL_MANGLE(a) #a "(%%rip)" #else # define LOCAL_MANGLE(a) #a @@ -127,7 +129,8 @@ /* math */ -#if ARCH_X86 +//#if ARCH_X86 +#if 0 #define MASK_ABS(mask, level)\ __asm__ volatile(\ "cltd \n\t"\ @@ -198,10 +201,10 @@ * without modification. Used to disable the definition of strings * (for example AVCodec long_names). */ -#if CONFIG_SMALL -# define NULL_IF_CONFIG_SMALL(x) NULL -#else -# define NULL_IF_CONFIG_SMALL(x) x -#endif +//#if CONFIG_SMALL +//# define NULL_IF_CONFIG_SMALL(x) NULL +//#else +//# define NULL_IF_CONFIG_SMALL(x) x +//#endif #endif /* AVUTIL_INTERNAL_H */ diff --git a/apps/codecs/libwmapro/libavutil/intreadwrite.h b/apps/codecs/libwmapro/libavutil/intreadwrite.h index 87098d7..a88ffa8 100644 --- a/apps/codecs/libwmapro/libavutil/intreadwrite.h +++ b/apps/codecs/libwmapro/libavutil/intreadwrite.h @@ -52,24 +52,10 @@ typedef union { * as inline functions. */ -#if ARCH_ARM -# include "arm/intreadwrite.h" -#elif ARCH_AVR32 -# include "avr32/intreadwrite.h" -#elif ARCH_MIPS -# include "mips/intreadwrite.h" -#elif ARCH_PPC -# include "ppc/intreadwrite.h" -#elif ARCH_TOMI -# include "tomi/intreadwrite.h" -#elif ARCH_X86 -# include "x86/intreadwrite.h" -#endif - /* * Map AV_RNXX <-> AV_R[BL]XX for all variants provided by per-arch headers. */ - +#define HAVE_BIGENDIAN 0 #if HAVE_BIGENDIAN # if defined(AV_RN16) && !defined(AV_RB16) @@ -172,6 +158,8 @@ typedef union { #endif /* !HAVE_BIGENDIAN */ +#define HAVE_ATTRIBUTE_PACKED 0 +#define HAVE_FAST_UNALIGNED 0 /* * Define AV_[RW]N helper macros to simplify definitions not provided * by per-arch headers. diff --git a/apps/codecs/libwmapro/libavutil/log.c b/apps/codecs/libwmapro/libavutil/log.c index 6cbe0da..f93a0d6 100644 --- a/apps/codecs/libwmapro/libavutil/log.c +++ b/apps/codecs/libwmapro/libavutil/log.c @@ -26,13 +26,16 @@ #include "avutil.h" #include "log.h" +/* disable sprintf functions */ +#define snprintf(...) +#define vsnprintf snprintf #if LIBAVUTIL_VERSION_MAJOR > 50 static #endif int av_log_level = AV_LOG_INFO; -void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl) +void av_log_default_callback(void* ptr, int level) { static int print_prefix=1; static int count; @@ -61,9 +64,9 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl) strcpy(prev, line); } -static void (*av_log_callback)(void*, int, const char*, va_list) = av_log_default_callback; +static void (*av_log_callback)(void*, int = av_log_default_callback; -void av_log(void* avcl, int level, const char *fmt, ...) +void av_log(void* avcl, int level) { va_list vl; va_start(vl, fmt); diff --git a/apps/codecs/libwmapro/libavutil/log.h b/apps/codecs/libwmapro/libavutil/log.h index b0a1493..43228e4 100644 --- a/apps/codecs/libwmapro/libavutil/log.h +++ b/apps/codecs/libwmapro/libavutil/log.h @@ -110,6 +110,6 @@ void av_vlog(void*, int level, const char *fmt, va_list); int av_log_get_level(void); void av_log_set_level(int); void av_log_set_callback(void (*)(void*, int, const char*, va_list)); -void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl); +void av_log_default_callback(void* ptr, int level); #endif /* AVUTIL_LOG_H */ diff --git a/apps/codecs/libwmapro/libavutil/mathematics.c b/apps/codecs/libwmapro/libavutil/mathematics.c index 7af0104..f607d68 100644 --- a/apps/codecs/libwmapro/libavutil/mathematics.c +++ b/apps/codecs/libwmapro/libavutil/mathematics.c @@ -103,13 +103,13 @@ int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd){ a0 = a0*b0 + t1a; a1 = a1*b1 + (t1>>32) + (a0=0; i--){ // int o= a1 & 0x8000000000000000ULL; a1+= a1 + ((a0>>i)&1); t1+=t1; - if(/*o || */c <= a1){ + if(/*o || */(unsigned)c <= a1){ a1 -= c; t1++; } -- cgit v1.1