summaryrefslogtreecommitdiff
path: root/apps/codecs/libffmpegFLAC/bitstream.h
diff options
context:
space:
mode:
authorAndree Buschmann <AndreeBuschmann@t-online.de>2011-12-19 19:46:10 +0000
committerAndree Buschmann <AndreeBuschmann@t-online.de>2011-12-19 19:46:10 +0000
commit07405841c67ac29b2a75f20f8732b34064a28cff (patch)
tree2f0cff6eecb9c77c18ac411b2067610bf862e69a /apps/codecs/libffmpegFLAC/bitstream.h
parent9b920734be1325ce60c46b6afaff5a23309be97a (diff)
downloadrockbox-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.h22
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 */