diff options
| author | Nils Wallménius <nils@rockbox.org> | 2009-12-05 16:47:43 +0000 |
|---|---|---|
| committer | Nils Wallménius <nils@rockbox.org> | 2009-12-05 16:47:43 +0000 |
| commit | b9d7f98f8c5653c9b5d945655cc64934da596142 (patch) | |
| tree | 0a25d85df5377aa053287cdc53af6957ab140adf /apps/codecs/libffmpegFLAC | |
| parent | 0651fe572b8fe1eb5457325f81a8c9986e479ef6 (diff) | |
| download | rockbox-b9d7f98f8c5653c9b5d945655cc64934da596142.zip rockbox-b9d7f98f8c5653c9b5d945655cc64934da596142.tar.gz rockbox-b9d7f98f8c5653c9b5d945655cc64934da596142.tar.bz2 rockbox-b9d7f98f8c5653c9b5d945655cc64934da596142.tar.xz | |
Move av_log2 function and asociated table to the codec lib, remove 3 identical implementations, always have LUT in iram (gives a *tiny* speedup on coldfire), make the clz based function return the same value as the non clz based function for 0 input to be safe (slows down flac ~2% on the gigabeat S)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23858 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libffmpegFLAC')
| -rw-r--r-- | apps/codecs/libffmpegFLAC/SOURCES | 3 | ||||
| -rw-r--r-- | apps/codecs/libffmpegFLAC/golomb.h | 30 | ||||
| -rw-r--r-- | apps/codecs/libffmpegFLAC/tables.c | 18 |
3 files changed, 1 insertions, 50 deletions
diff --git a/apps/codecs/libffmpegFLAC/SOURCES b/apps/codecs/libffmpegFLAC/SOURCES index 823a2b7..deed19b 100644 --- a/apps/codecs/libffmpegFLAC/SOURCES +++ b/apps/codecs/libffmpegFLAC/SOURCES @@ -1,9 +1,6 @@ bitstream.c decoder.c shndec.c -#if !(defined(CPU_ARM) && (ARM_ARCH > 4)) -tables.c -#endif #if defined(CPU_COLDFIRE) coldfire.S #elif defined(CPU_ARM) diff --git a/apps/codecs/libffmpegFLAC/golomb.h b/apps/codecs/libffmpegFLAC/golomb.h index 11753fc..4f99671 100644 --- a/apps/codecs/libffmpegFLAC/golomb.h +++ b/apps/codecs/libffmpegFLAC/golomb.h @@ -20,35 +20,7 @@ */ #include <limits.h> - -#if (defined(CPU_ARM) && (ARM_ARCH > 4)) -static inline int av_log2(uint32_t v) -{ - return 31 - __builtin_clz(v); -} -#else - -/* From libavutil/common.h */ -extern const uint8_t ff_log2_tab[256]; - -static inline int av_log2(unsigned int v) -{ - int n; - - n = 0; - if (v & 0xffff0000) { - v >>= 16; - n += 16; - } - if (v & 0xff00) { - v >>= 8; - n += 8; - } - n += ff_log2_tab[v]; - - return n; -} -#endif +#include "codeclib.h" /** * @file golomb.h diff --git a/apps/codecs/libffmpegFLAC/tables.c b/apps/codecs/libffmpegFLAC/tables.c deleted file mode 100644 index 58b1bb6..0000000 --- a/apps/codecs/libffmpegFLAC/tables.c +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef BUILD_STANDALONE -#define ICONST_ATTR -#else -#include "codeclib.h" -#endif -#include <inttypes.h> - -/* From ffmpeg - libavutil/common.h */ -const uint8_t ff_log2_tab[256] ICONST_ATTR = { - 0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 -}; |