diff options
author | Nils Wallménius <nils@rockbox.org> | 2010-07-15 16:19:17 +0000 |
---|---|---|
committer | Nils Wallménius <nils@rockbox.org> | 2010-07-15 16:19:17 +0000 |
commit | a87c61854ef614b258ca7d4d0b40db017884e63e (patch) | |
tree | 4f0129350a8a2d25ee5e5d218aa787ae2dbbeca3 /apps/codecs/libffmpegFLAC/shndec.c | |
parent | 328f2f9c285dd9ccec4ddabe4d64a508b0e498fa (diff) | |
download | rockbox-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.c | 11 |
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 | ||
64 | static uint32_t bswap_32(uint32_t x){ | ||
65 | x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF); | ||
66 | return (x>>16) | (x<<16); | ||
67 | } | ||
68 | |||
69 | static 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 */ |
74 | static int ff_get_fourcc(const char *s){ | 63 | static int ff_get_fourcc(const char *s){ |
75 | //assert( strlen(s)==4 ); | 64 | //assert( strlen(s)==4 ); |