Commit graph

1604 commits

Author SHA1 Message Date
Andree Buschmann
1466519bd8 Allow to use different compiler settings for codecs built from libgme. ARM now uses -O1 except for the 2413 emulator. The speed on PP5022 increases by 0-5% (NSF, YM2413-VGM), 5-10% (GBS, VGM) and 10-15% (SGC, KSS, AY).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30328 a1c6a512-1295-4272-9138-f99709370657
2011-08-18 14:01:31 +00:00
Andree Buschmann
4d01ace73f Submit a patch to the VGM codec by Mauricio Gama which saves some more RAM through changes of the buffer configuration and an update of the resampler code. Additionally enable VGM for low memory targets and update the manual.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30327 a1c6a512-1295-4272-9138-f99709370657
2011-08-17 22:20:09 +00:00
Andree Buschmann
4070f4f17b Reduce memory consumption of VGM codec for low memry targets at the costs of some performance for tracks using the 2616 emulator.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30326 a1c6a512-1295-4272-9138-f99709370657
2011-08-17 21:48:28 +00:00
Andree Buschmann
9477675f04 Save some RAM in a libgme emulator used for VGM codec. LFO_ENV_TAB[] and LFO_FREQ_TAB[] are obselete.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30319 a1c6a512-1295-4272-9138-f99709370657
2011-08-15 18:24:50 +00:00
Andree Buschmann
d559492603 Remove further float operations from emu2413 in libgme to speed up synthesis.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30313 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 18:04:40 +00:00
Bertrik Sikken
b2d0ea204c Remove a couple of duplicate #includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30301 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 13:42:32 +00:00
Andree Buschmann
a1145a1d04 Remove all IRAM attributes from libGME to be able to restart the IRAM optimization on a clean code base. As first step move the sample buffers to IRAM which results in a 1-5% speedup for all codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30284 a1c6a512-1295-4272-9138-f99709370657
2011-08-13 16:41:14 +00:00
Andree Buschmann
724a2d2514 6th part of FS#12176. Reduce memory consumption of libgme emulators to allow enabling of NSF and SGC codecs for low memory targets. The main lookup table only requires byte precision and can be used by 2413 and 8950 emulators. Update the manual accordingly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30283 a1c6a512-1295-4272-9138-f99709370657
2011-08-12 21:36:29 +00:00
Andree Buschmann
5f6d8bfcc0 Remove unused sources from libgme.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30282 a1c6a512-1295-4272-9138-f99709370657
2011-08-12 05:57:27 +00:00
Andree Buschmann
1b9f9fb465 5th part of FS#12176. Further fixed point migration. Only two emulators (ym2413, ym2612) still use floating point.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30281 a1c6a512-1295-4272-9138-f99709370657
2011-08-11 21:06:16 +00:00
Bertrik Sikken
b127949860 libgme: make local functions static where possible
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30280 a1c6a512-1295-4272-9138-f99709370657
2011-08-11 19:04:28 +00:00
Andree Buschmann
39e4987ea5 Reduce gain of VGM codec to avoid clipping.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30279 a1c6a512-1295-4272-9138-f99709370657
2011-08-11 06:22:56 +00:00
Andree Buschmann
631d22b8e5 4th part of FS#12176. Volume settings migrated to fixed point for libgme.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30278 a1c6a512-1295-4272-9138-f99709370657
2011-08-11 06:18:39 +00:00
Andree Buschmann
4ca2367e34 3rd part of FS#12176. Gain setting migrated to fixed point for libgme.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30277 a1c6a512-1295-4272-9138-f99709370657
2011-08-10 17:58:36 +00:00
Andree Buschmann
012df14a5f 2nd part of FS#12176. Tempo setting migrated to fixed point for libgme.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30274 a1c6a512-1295-4272-9138-f99709370657
2011-08-09 20:21:55 +00:00
Andree Buschmann
c23f576a1c Remove a floating point calculation from ay codec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30268 a1c6a512-1295-4272-9138-f99709370657
2011-08-08 18:06:03 +00:00
Andree Buschmann
d14c96dc9a Remove 'set but not used' warning.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30267 a1c6a512-1295-4272-9138-f99709370657
2011-08-07 21:19:27 +00:00
Andree Buschmann
b8ae97fe58 Fix yellow and red. Disable NSF, VGM, SGC and KSS formats for low memory targets for now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30265 a1c6a512-1295-4272-9138-f99709370657
2011-08-07 20:28:47 +00:00
Andree Buschmann
acb0917556 Submit initial patch from FS#12176. Adds support for several new game music formats (AY, GBS, HES, KSS, SGC, VGM and VGZ) and replaces the current NSF and NSFE with a new implementation based on a port of the Game Music Emu library 'GME'. This first submit does not cover the full functionality provided by the author's original patch: Coleco-SGV is not supported, some GME-specific m3u-support has been removed and IRAM is not used yet. Further changes are very likely to follow this submit. Thanks to Mauricio Garrido.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30264 a1c6a512-1295-4272-9138-f99709370657
2011-08-07 20:01:04 +00:00
Andree Buschmann
7155be6ca4 Sync rockbox to r475 of musepack's svn.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30240 a1c6a512-1295-4272-9138-f99709370657
2011-08-02 19:08:29 +00:00
Michael Giacomelli
55c77e229e Fix a bug introduced in r27463 that caused the line spectral pair look up tables to overwrite the noise coding VLC tables. Should fix decoding of files that have both noise coding and line spectral pairs, which are usually very low bitrate WMAs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30220 a1c6a512-1295-4272-9138-f99709370657
2011-07-28 14:12:33 +00:00
Andree Buschmann
10a1e8a609 Fix musepack resume for resume positions > 7:30m.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30202 a1c6a512-1295-4272-9138-f99709370657
2011-07-23 20:56:53 +00:00
Magnus Holmgren
6f392693b8 AAC: Another gapless fix, this one for the end of the file. The real size of the last frame was lost in r29727, as indicated by Yusaku Inui in FS#12185, so bring it back. Now the decoded length of test1_nero.m4a (in FS#12185) only differs by one sample compared to Foobar2000 (Rockbox has one more leading sample, for some reason). Also moved a few lines to a better place.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30149 a1c6a512-1295-4272-9138-f99709370657
2011-07-17 13:00:53 +00:00
Andree Buschmann
f27028dbb6 Do not use double/float calculations but predefined tables in mod codec. Reduces codesize by several kilobytes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30107 a1c6a512-1295-4272-9138-f99709370657
2011-06-30 21:53:02 +00:00
Andree Buschmann
96af117e21 Submit FS#12142 by Sean Bartell with minor chnages by myself. Removes unused code and irrelevant files from libmad.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30065 a1c6a512-1295-4272-9138-f99709370657
2011-06-24 14:48:25 +00:00
Michael Sevakis
fcae888e81 SPC Codec: Restore correct FIR buffer alignment when an address mask is used. It must be FIR_BUF_ALIGN. Fix Coldfire assembly constraint where an input parameter was also being written.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30063 a1c6a512-1295-4272-9138-f99709370657
2011-06-24 10:52:43 +00:00
Andree Buschmann
4b0e09c1ac Submit FS#12164 by Sean Bartell with minor changes by myself. Fixes possible decoding corruption of RealAudio files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30060 a1c6a512-1295-4272-9138-f99709370657
2011-06-24 08:51:22 +00:00
Magnus Holmgren
6c8ef19dfd FS#12161: Correct the gapless processing for AAC, so that it doesn't remove too much from the start of a track. Also simplify the logic a bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30012 a1c6a512-1295-4272-9138-f99709370657
2011-06-18 15:11:30 +00:00
Nils Wallménius
f2e7c05c22 libtremor: comment out unused struct member.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29987 a1c6a512-1295-4272-9138-f99709370657
2011-06-09 06:46:44 +00:00
Nils Wallménius
d5ceb4ce2b codeclib: make selective inclusion of macros and inline functions from the codeclib_misc.h header easier and clean out some old libtremor stuff.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29985 a1c6a512-1295-4272-9138-f99709370657
2011-06-08 10:35:27 +00:00
Nils Wallménius
331b23d15b FS#12144, Use -fPIC -fvisibility=hidden only for plugins on sim and app builds and enable it for 32 bit too. Fixes linking errors on simbuilds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29983 a1c6a512-1295-4272-9138-f99709370657
2011-06-07 11:56:23 +00:00
Nils Wallménius
e62b9a9aae libtremor: Implement a memory configuration for targets that don't use separate iram for codecs.
Such targets would previously default to using the configuration for targets with small iram which uses an extra memcpy per block.
This saves 2MHz decoding a 128kbps vorbis file on the Gigabeat S and saves a bit of codec buffer.
Patch from FS#11268, also replaces patch from FS#12147.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29976 a1c6a512-1295-4272-9138-f99709370657
2011-06-06 13:27:12 +00:00
Nils Wallménius
684b74147f Safe part of FS#11268, saving some codec buffer space for targets that don't use separate iram.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29975 a1c6a512-1295-4272-9138-f99709370657
2011-06-05 20:18:31 +00:00
Nils Wallménius
965113ed50 FS#12146: Fix libcook bugs introduced in r22055 by Sean Bartell.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29973 a1c6a512-1295-4272-9138-f99709370657
2011-06-05 13:12:51 +00:00
Andree Buschmann
9f65f2b6ad Accept FS#12143 (NSF codec clean up): Declare local stuff static, comment unused variables and functions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29972 a1c6a512-1295-4272-9138-f99709370657
2011-06-05 13:05:09 +00:00
Nils Wallménius
03c12a7906 Delete old unused macro.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29962 a1c6a512-1295-4272-9138-f99709370657
2011-06-05 09:27:58 +00:00
Nils Wallménius
73d0e14f44 Disable some unused code in speex to save binsize.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29949 a1c6a512-1295-4272-9138-f99709370657
2011-06-02 20:52:54 +00:00
Nils Wallménius
d860c87800 Build the voice codec speex with core -O switch to save size on targets using -Os.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29948 a1c6a512-1295-4272-9138-f99709370657
2011-06-02 16:11:22 +00:00
Nils Wallménius
927361b4ae Fix define name.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29947 a1c6a512-1295-4272-9138-f99709370657
2011-06-02 15:25:50 +00:00
Nils Wallménius
4909e09267 FS#12141 by Sean Bartell
Some of these were found with http://www.samba.org/junkcode/#findstatic. Changes of note:
* The old MDCT has been removed.
* Makefile.test files that create test programs for libatrac, libcook, and libffmpegFLAC have been removed, as they don't work. My project will have a replacement that works with all codecs.
* I've tried not to remove anything useful. CLIP_TO_15 was removed from libtremor because there's another copy (also commented) in codeclib.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29945 a1c6a512-1295-4272-9138-f99709370657
2011-06-02 14:59:15 +00:00
Nils Wallménius
7c6056b352 FS#12140 by Sean Bartell, Make various codec stuff static.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29942 a1c6a512-1295-4272-9138-f99709370657
2011-06-01 10:28:26 +00:00
Michael Giacomelli
0497adffcf Commit FS#12130 - Fix ADX decoding on 64-bit systems by Sean Bartell. Fixes an incorrect assumption in the ADX decoder that sizeof(int) == 32 when performing fixed point math. Update comments in the fixed point library to correct this.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29927 a1c6a512-1295-4272-9138-f99709370657
2011-05-26 21:22:29 +00:00
Andree Buschmann
8767ba9a85 Remove residual float operations from sid codec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29919 a1c6a512-1295-4272-9138-f99709370657
2011-05-23 18:28:08 +00:00
Andree Buschmann
3071b2bde1 Fix yellow.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29917 a1c6a512-1295-4272-9138-f99709370657
2011-05-23 06:19:30 +00:00
Andree Buschmann
de1529c4eb Save a large static buffer in sid codec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29915 a1c6a512-1295-4272-9138-f99709370657
2011-05-22 21:00:32 +00:00
Andree Buschmann
d038f89f3f S5L870x is fast enough to play spc with gaussian interpolation and echo processing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29914 a1c6a512-1295-4272-9138-f99709370657
2011-05-22 20:01:07 +00:00
Andree Buschmann
6117ffdde5 Submit FS#12115: Use more IRAM in cook codec for several targets. Speeds up PP5022 and MCF5250 by ~3% and S5L87.0x by ~4%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29913 a1c6a512-1295-4272-9138-f99709370657
2011-05-22 19:03:58 +00:00
Andree Buschmann
609c526d56 Use more IRAM on S5L870x to speed up wmapro by ~2%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29906 a1c6a512-1295-4272-9138-f99709370657
2011-05-20 23:28:09 +00:00
Andree Buschmann
99494140da Use more IRAM on S5L870x to speed up wma by ~3%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29905 a1c6a512-1295-4272-9138-f99709370657
2011-05-20 22:53:22 +00:00
Andree Buschmann
7b054efa0b FS#12117: Use more IRAM for atrac3. Speeds up decoding from 1-2% (PP5022, PP5024, S5L870x) to 11% (MCF5250).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29892 a1c6a512-1295-4272-9138-f99709370657
2011-05-16 21:47:13 +00:00
Andree Buschmann
22c9b6ef8e Use more IRAM for mpc on S5L870x. Speed up decoding by ~2%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29891 a1c6a512-1295-4272-9138-f99709370657
2011-05-16 21:31:59 +00:00
Andree Buschmann
46507d29b4 FS#12113: Optimize IRAM configuration for SPC. Performance increases by 5-6% on PP5022, PP5024 and S5L870x. No change of performance on Coldfire, PP5002 and PP5020.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29887 a1c6a512-1295-4272-9138-f99709370657
2011-05-15 16:08:50 +00:00
Andree Buschmann
41723bc14b FS#12113: Optimize IRAM configuration for NES Sound Format. Performance is stable on Coldfire and shows performance gains from about 50-100% (PP5020, S5L870x, PP5022) up to 168% (PP5002).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29886 a1c6a512-1295-4272-9138-f99709370657
2011-05-15 15:00:41 +00:00
Andree Buschmann
bf46e634b4 FS#12113: Optimize IRAM configuration for Atari SAP format. Performance gains range from 5% (PP5020), over 13-16% (PP5002, PP5022, PP5024, S5L870x) to 115% (MCF5249, MCF5250).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29883 a1c6a512-1295-4272-9138-f99709370657
2011-05-15 13:40:02 +00:00
Andree Buschmann
fffc6c4a80 Trapped into ifdef-hell. Configure libfaad's IRAM/DRAM usage like it is meant to be.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29864 a1c6a512-1295-4272-9138-f99709370657
2011-05-12 22:24:09 +00:00
Andree Buschmann
281666a066 The last submit had one define too much. Nevertheless fix the IRAM configuration for static allocation method.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29863 a1c6a512-1295-4272-9138-f99709370657
2011-05-12 18:06:03 +00:00
Andree Buschmann
2263cf35ab libfaad: AAC including HE-profile needs ~470 KB for playback (measured on ARM). Therefor it does not make sense to enable HE on devices with CODEC_SIZE < 512 KB. This will allow to load and play larger AAC-LC files on such devices.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29862 a1c6a512-1295-4272-9138-f99709370657
2011-05-12 17:41:45 +00:00
Andree Buschmann
72fba7a9d7 Make libfaad compilable again without PS_DEC.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29861 a1c6a512-1295-4272-9138-f99709370657
2011-05-12 17:35:06 +00:00
Andree Buschmann
0e7c04e57d libfaad: Move PS related variables to sbr_info struct. This allows dynamic allocation including error handling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29857 a1c6a512-1295-4272-9138-f99709370657
2011-05-11 18:52:05 +00:00
Andree Buschmann
03e23d1113 Implement error handling for libfaad's memory allocation. Do not allocate PS related types dynamically anymore to minimize code changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29854 a1c6a512-1295-4272-9138-f99709370657
2011-05-10 19:04:24 +00:00
Andree Buschmann
78b0f94c76 Proper initialization of static variables in codeclib.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29853 a1c6a512-1295-4272-9138-f99709370657
2011-05-10 18:20:56 +00:00
Andree Buschmann
b452fa061d Use CACHEALIGN_SIZE in codec_malloc for optimal alignment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29838 a1c6a512-1295-4272-9138-f99709370657
2011-05-08 19:50:39 +00:00
Andree Buschmann
f79769c541 Minor loop optimization in libfaad's is/ms decoding.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29837 a1c6a512-1295-4272-9138-f99709370657
2011-05-08 19:36:08 +00:00
Andree Buschmann
e720724b95 Use MEM_ALIGN_ATTR and CACHEALIGN_SIZE in oggmalloc to ensure optimal alignment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29833 a1c6a512-1295-4272-9138-f99709370657
2011-05-08 16:41:23 +00:00
Andree Buschmann
897fd92827 codeclib: Declare several variables static and remove unused variables.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29831 a1c6a512-1295-4272-9138-f99709370657
2011-05-08 10:34:05 +00:00
Andree Buschmann
f19d6a5e1d Fix even more 'variable set but not used' warnings reported from GCC 4.6.0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29819 a1c6a512-1295-4272-9138-f99709370657
2011-05-03 20:28:56 +00:00
Nils Wallménius
4a62bc40c2 Work around another 'set but not used' warning.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29811 a1c6a512-1295-4272-9138-f99709370657
2011-05-01 16:53:20 +00:00
Andree Buschmann
27d153db93 Fix nearly all residual 'variable set but not used' warnings reported from GCC 4.6.0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29810 a1c6a512-1295-4272-9138-f99709370657
2011-05-01 14:44:20 +00:00
Andree Buschmann
f7c4594134 Fix further 'variable set but not used' warnings reported from GCC 4.6.0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29809 a1c6a512-1295-4272-9138-f99709370657
2011-05-01 13:48:28 +00:00
Andree Buschmann
e75018ad66 Fix several 'variable set but not used' warnings reported from GCC 4.6.0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29805 a1c6a512-1295-4272-9138-f99709370657
2011-05-01 11:42:41 +00:00
Michael Sevakis
5e57edf263 Clean up speex a bit after the playback changes in r29785. Haven't found any idiosyncracies not present before then. Fix it always returning CODEC_ERROR even when exiting codec_run normally.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29804 a1c6a512-1295-4272-9138-f99709370657
2011-05-01 04:23:30 +00:00
Andree Buschmann
d0d1a3f2f7 Remove unneeded update of ci->id3->frequency in aac and raac codec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29794 a1c6a512-1295-4272-9138-f99709370657
2011-04-28 21:07:28 +00:00
Michael Sevakis
ac724cca19 Get the NSF internal playlists working again. Fix a few wrongdoings in the metadata parser. Use the larger of track or playlist count to determine 'duration' so that the repeat-one switching to access the raw tracks works.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29793 a1c6a512-1295-4272-9138-f99709370657
2011-04-28 02:56:28 +00:00
Andree Buschmann
fa65362a42 Fix compiler warnings ('variable set ut not used') with GCC 4.6.0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29792 a1c6a512-1295-4272-9138-f99709370657
2011-04-27 17:59:49 +00:00
Michael Sevakis
3d9c062822 Get NSF fixed up a bit and parse metadata in the core.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29790 a1c6a512-1295-4272-9138-f99709370657
2011-04-27 16:46:27 +00:00
Michael Sevakis
08bedf8305 Having a default weak codec_main symbol doesn't seem to be working out for compiling the sim under cygwin in at least some cases. Just implement it explicitly in all cases.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29789 a1c6a512-1295-4272-9138-f99709370657
2011-04-27 12:52:11 +00:00
Michael Sevakis
c537d5958e Commit FS#12069 - Playback rework - first stages. Gives as thorough as possible a treatment of codec management, track change and metadata logic as possible while maintaining fairly narrow focus and not rewriting everything all at once. Please see the rockbox-dev mail archive on 2011-04-25 (Playback engine rework) for a more thorough manifest of what was addressed. Plugins and codecs become incompatible.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29785 a1c6a512-1295-4272-9138-f99709370657
2011-04-27 03:08:23 +00:00
Andree Buschmann
dcf0f8de4a Submit FS#12081. Check validity of channel configuration, comment unneeded code that is too inflexible to work with MAX_CHANNELS = 2. Fixes compiler warnings with GCC 4.6.0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29784 a1c6a512-1295-4272-9138-f99709370657
2011-04-26 21:30:51 +00:00
Andree Buschmann
a602f46d69 Rework of libfaad in several areas. Allow removal of malloc with a new define FAAD_STATIC_ALLOC (in common.h). For now malloc is not fully removed but used by a few arrays needed for AAC-HE SBR+PS only. Reason to keep malloc is to have this amount of memory available for AAC-LC files which might require large m4a tables. The changes make the allocation routines much smaller, better centralized and allow to move duplicated code from aac.c/raa.c to libfaad. The rework includes removal of (now and former) unused code as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29778 a1c6a512-1295-4272-9138-f99709370657
2011-04-24 20:19:05 +00:00
Andree Buschmann
69580a96eb Fix yellow.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29777 a1c6a512-1295-4272-9138-f99709370657
2011-04-24 19:13:08 +00:00
Andree Buschmann
2f215da9c3 Use dedicated function to internally reset aac decoder synthesis after seek.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29775 a1c6a512-1295-4272-9138-f99709370657
2011-04-24 18:56:23 +00:00
Andree Buschmann
2f04e6cca2 Ensure proper termination of m4a lookup table.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29774 a1c6a512-1295-4272-9138-f99709370657
2011-04-24 18:33:39 +00:00
Andree Buschmann
15e9053afb Clean up array sizes in the SBR + PS part of libfaad. Add MAX_NTSRPS (=38), use MAX_NTSR and MAX_NTSRHFG at the right places. RAM (IRAM) usage is reduced by 2 KB.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29773 a1c6a512-1295-4272-9138-f99709370657
2011-04-24 13:54:02 +00:00
Andree Buschmann
6bab4e8dc0 get_sample_info() has been removed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29771 a1c6a512-1295-4272-9138-f99709370657
2011-04-23 22:28:47 +00:00
Andree Buschmann
7d1de584fe Minor speed optimization to m4a lookup table build up.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29770 a1c6a512-1295-4272-9138-f99709370657
2011-04-23 20:43:47 +00:00
Andree Buschmann
2358fabb70 Optimization to latest aac decoder changes. Significantly reduce loop count in m4a_check_sample_offset() during standard playback. Before this change the loop count increased with each decoded chunk and for each frame.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29750 a1c6a512-1295-4272-9138-f99709370657
2011-04-19 05:55:54 +00:00
Andree Buschmann
68199cc195 Major rework of the m4a parser for aac/alac playback, seek and resume support. As a result the memory consumption was drastically reduced. This allows to play several files with long duration -- especially on low memory targets. The change builds a lookup table from m4a's sample_to_chunk[] and chunk_offset[] and completely removes the allocation of the large tables chunk_offset[] and sample_byte_size[]. To be able to remove reading and allocating sample_byte_offset[] the aac and alac decoder now buffer a fixed amount of bytes for each frame. The generated lookup table is used for seek/resume and skipping bytes in empty chunks (aac decoder only). The precision for seek/resume is somewhat lower but still equals 0.5 sec for the worst case. Fixes FS#8923.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29745 a1c6a512-1295-4272-9138-f99709370657
2011-04-18 19:12:51 +00:00
Andree Buschmann
5775159462 Refactor aac decoder as preparation for upcoming m4a changes. The aac decoder does not need to use get_sample_info() to gather frame size or the number of consumed bytes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29727 a1c6a512-1295-4272-9138-f99709370657
2011-04-16 19:39:01 +00:00
Andree Buschmann
8055b48b46 Fix yellow.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29725 a1c6a512-1295-4272-9138-f99709370657
2011-04-16 19:26:07 +00:00
Andree Buschmann
19f9fd0f5f Refactor alac decoder as preparation for upcoming m4a changes. The alac decoder does not need to use get_sample_info() to gather frame size or the number of consumed bytes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29724 a1c6a512-1295-4272-9138-f99709370657
2011-04-16 19:08:50 +00:00
Andree Buschmann
e9c5190de7 Headroom in AAC SBR HF-generator's fixed point implementation of autocorrelation was too small. Fixes FS#12019.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29622 a1c6a512-1295-4272-9138-f99709370657
2011-03-20 15:57:38 +00:00
Nils Wallménius
5aaabbfd12 FS#12014 by Huan Zhang fixing some link errors with a recent mips toolchain.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29615 a1c6a512-1295-4272-9138-f99709370657
2011-03-19 10:14:12 +00:00
Michael Sevakis
56dd75d204 Purge buffer and codec APIs existing exclusively in support of mpa.codec and fix that to not require them: buf_get_offset and ci.advance_buffer_loc. Sort APIs; everything must become incompatible. :(
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29595 a1c6a512-1295-4272-9138-f99709370657
2011-03-16 05:38:37 +00:00
Michael Sevakis
12375d1d3a Merge functionality of wakeups and semaphores-- fewer APIs and object types. semaphore_wait takes a timeout now so codecs and plugins have to be made incompatible. Don't make semaphores for targets not using them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29492 a1c6a512-1295-4272-9138-f99709370657
2011-03-02 08:49:38 +00:00
Michael Sevakis
b3bfc09852 r29348 changes can cause certain codecs to jump to code on early track change that assumes initializations have been done. Make sure that track change cleanups are only called if the state is sane to do so. Stops my vorbis data abort issue. Correctness for speex is a guess based on the library calls' source. It appears only speex/vorbis should have been bothered by said revision.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29489 a1c6a512-1295-4272-9138-f99709370657
2011-03-02 03:47:42 +00:00
Michael Sevakis
6510973223 Give playback engine better control over the codec. Codec simply follows commands and doesn't concern itself with audio state. Get track change notification in on the actual last buffer insert of the track because now audio simply waits for a track change notify from PCM on the last track and it must be sent reliably. This is still at an intermediate stage but works. Codecs and plugins become incompatible.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29387 a1c6a512-1295-4272-9138-f99709370657
2011-02-23 14:31:13 +00:00
Michael Sevakis
85e40257dc Enforce that codecs wait for their metadata in a proper-ish and consistent manner. Sort of a halfway patch; best would be to give them an internal copy of the current track information which lasts unaltered by playback until a track switch or unload.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29348 a1c6a512-1295-4272-9138-f99709370657
2011-02-20 15:27:10 +00:00
Jens Arnold
8c38983b22 Fix standalone demac tool build.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29239 a1c6a512-1295-4272-9138-f99709370657
2011-02-06 23:18:30 +00:00
Andree Buschmann
ae019419ff Use the very large IRAM of S5L870x to speed up AAC-HE by ~1-5%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29212 a1c6a512-1295-4272-9138-f99709370657
2011-02-05 20:22:12 +00:00
Andree Buschmann
8033cb6250 Use MEM_ALIGN_ATTR in libfaad. Remove global array and re-use existing one.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29211 a1c6a512-1295-4272-9138-f99709370657
2011-02-05 19:50:16 +00:00