diff options
| author | Andree Buschmann <AndreeBuschmann@t-online.de> | 2011-12-19 19:46:10 +0000 |
|---|---|---|
| committer | Andree Buschmann <AndreeBuschmann@t-online.de> | 2011-12-19 19:46:10 +0000 |
| commit | 07405841c67ac29b2a75f20f8732b34064a28cff (patch) | |
| tree | 2f0cff6eecb9c77c18ac411b2067610bf862e69a /apps/codecs/libffmpegFLAC/bitstream.h | |
| parent | 9b920734be1325ce60c46b6afaff5a23309be97a (diff) | |
| download | rockbox-07405841c67ac29b2a75f20f8732b34064a28cff.zip rockbox-07405841c67ac29b2a75f20f8732b34064a28cff.tar.gz rockbox-07405841c67ac29b2a75f20f8732b34064a28cff.tar.bz2 rockbox-07405841c67ac29b2a75f20f8732b34064a28cff.tar.xz | |
FS#12463: Improve performance for multichannel FLAC decoding. Speeds up decoding by 3 MHz on PP5022, 6-7 MHz on S5L870x and 11-12 MHz on MCF5250. 5.1-88kHz-files still do not decode in realtime on Coldfire and PP502x.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31367 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libffmpegFLAC/bitstream.h')
| -rw-r--r-- | apps/codecs/libffmpegFLAC/bitstream.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/apps/codecs/libffmpegFLAC/bitstream.h b/apps/codecs/libffmpegFLAC/bitstream.h index 1333b9f..5fc3460 100644 --- a/apps/codecs/libffmpegFLAC/bitstream.h +++ b/apps/codecs/libffmpegFLAC/bitstream.h @@ -19,12 +19,26 @@ #define ICODE_ATTR #endif -#ifndef ICODE_ATTR_FLAC +#if (CONFIG_CPU == MCF5250) || (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) #define ICODE_ATTR_FLAC ICODE_ATTR -#endif +#define IBSS_ATTR_FLAC IBSS_ATTR +/* Enough IRAM to move additional data to it. */ +#define IBSS_ATTR_FLAC_LARGE_IRAM IBSS_ATTR +#define IBSS_ATTR_FLAC_XLARGE_IRAM + +#elif defined(CPU_S5L870X) +#define ICODE_ATTR_FLAC ICODE_ATTR +#define IBSS_ATTR_FLAC IBSS_ATTR +/* Enough IRAM to move even more additional data to it. */ +#define IBSS_ATTR_FLAC_LARGE_IRAM IBSS_ATTR +#define IBSS_ATTR_FLAC_XLARGE_IRAM IBSS_ATTR -#ifndef IBSS_ATTR_FLAC_DECODED0 -#define IBSS_ATTR_FLAC_DECODED0 IBSS_ATTR +#else +#define ICODE_ATTR_FLAC ICODE_ATTR +#define IBSS_ATTR_FLAC IBSS_ATTR +/* Not enough IRAM available. */ +#define IBSS_ATTR_FLAC_LARGE_IRAM +#define IBSS_ATTR_FLAC_XLARGE_IRAM #endif /* Endian conversion routines for standalone compilation */ |