summaryrefslogtreecommitdiff
path: root/apps/codecs/libffmpegFLAC/shndec.c
diff options
context:
space:
mode:
authorNils Wallménius <nils@rockbox.org>2010-07-15 16:19:17 +0000
committerNils Wallménius <nils@rockbox.org>2010-07-15 16:19:17 +0000
commita87c61854ef614b258ca7d4d0b40db017884e63e (patch)
tree4f0129350a8a2d25ee5e5d218aa787ae2dbbeca3 /apps/codecs/libffmpegFLAC/shndec.c
parent328f2f9c285dd9ccec4ddabe4d64a508b0e498fa (diff)
downloadrockbox-a87c61854ef614b258ca7d4d0b40db017884e63e.tar.gz
rockbox-a87c61854ef614b258ca7d4d0b40db017884e63e.zip
Sync codeclib bitstream code with upstream ffmpeg code. Build ffmpeg_bitstream.c as a part of the codec lib. Use this codeclib implementation in libffmpegFLAC. Implement adapted version of the unaligned longword reading optimization for coldfire from the libwma version of this code. Speeds up cook decoding by 2-3% on h300 and flac by 25% on h300, also speeds up flac decoding by 2% on c200 (decoding speed of cook on c200 is unchanged).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27430 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libffmpegFLAC/shndec.c')
-rw-r--r--apps/codecs/libffmpegFLAC/shndec.c11
1 files changed, 0 insertions, 11 deletions
diff --git a/apps/codecs/libffmpegFLAC/shndec.c b/apps/codecs/libffmpegFLAC/shndec.c
index fb11f77bfa..b107b356d7 100644
--- a/apps/codecs/libffmpegFLAC/shndec.c
+++ b/apps/codecs/libffmpegFLAC/shndec.c
@@ -54,22 +54,11 @@
54#define VERBATIM_BYTE_SIZE 8 54#define VERBATIM_BYTE_SIZE 8
55#define CANONICAL_HEADER_SIZE 44 55#define CANONICAL_HEADER_SIZE 44
56 56
57#define FFMAX(a,b) ((a) > (b) ? (a) : (b))
58#define FFMIN(a,b) ((a) > (b) ? (b) : (a))
59#define MKTAG(a,b,c,d) (a | (b << 8) | (c << 16) | (d << 24)) 57#define MKTAG(a,b,c,d) (a | (b << 8) | (c << 16) | (d << 24))
60 58
61#define get_le16(gb) bswap_16(get_bits_long(gb, 16)) 59#define get_le16(gb) bswap_16(get_bits_long(gb, 16))
62#define get_le32(gb) bswap_32(get_bits_long(gb, 32)) 60#define get_le32(gb) bswap_32(get_bits_long(gb, 32))
63 61
64static uint32_t bswap_32(uint32_t x){
65 x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF);
66 return (x>>16) | (x<<16);
67}
68
69static uint16_t bswap_16(uint16_t x){
70 return (x>>8) | (x<<8);
71}
72
73/* converts fourcc string to int */ 62/* converts fourcc string to int */
74static int ff_get_fourcc(const char *s){ 63static int ff_get_fourcc(const char *s){
75 //assert( strlen(s)==4 ); 64 //assert( strlen(s)==4 );