rockbox/lib/rbcodec/codecs/libcook
Cástor Muñoz 7442742208 iPod Classic: disable IRAM1
On Classic, IRAM1 (second 128Kb of a total of 256KB available IRAM) is
slower than DRAM. Codecs that actually are using regions of IRAM1 runs
faster when DRAM is used, so IRAM1 is disabled and only IRAM0 remains
enabled: 48KB for core and 80KB for codecs/plugins.

The next test_codec results shows how decode time is decreased:

file           boosted     unboosted
*.ra           ~1.5%       ~0.5%
*.mpc          ~21%        ~4.5%
*.ogg          ~0.5%       ~0%
nero_he*.m4a   ~8%         ~1%
nero*.m4a      ~25%        ~7%
wmapro*.wma    ~4.5%       ~0%
wma*.wma       ~25%        ~7%

In addition there is a small power save when IRAM1 HW is disabled.

Change-Id: I102adee11458e82037f23076d5d5956e23235de8
2018-07-30 18:50:27 -04:00
..
cook.c Add codecs to librbcodec. 2012-04-25 22:13:20 +02:00
cook.h iPod Classic: disable IRAM1 2018-07-30 18:50:27 -04:00
cook_fixpoint.h Add codecs to librbcodec. 2012-04-25 22:13:20 +02:00
cookdata.h Add codecs to librbcodec. 2012-04-25 22:13:20 +02:00
cookdata_fixpoint.h Add codecs to librbcodec. 2012-04-25 22:13:20 +02:00
libcook.make Add codecs to librbcodec. 2012-04-25 22:13:20 +02:00
README.rockbox Add codecs to librbcodec. 2012-04-25 22:13:20 +02:00
SOURCES Add codecs to librbcodec. 2012-04-25 22:13:20 +02:00

Library: libcook
Imported by : Mohamed Tarek

These files comprise a rm parser and a cook decoder based on the decoder
from ffmpeg.

LICENSING INFORMATION

ffmpeg is licensed under the Lesser GNU General Public License and the
file cook.c is Copyright 2003 Sascha Sommer and 2005 Benjamin Larsson.

IMPORT DETAILS

The decoder is based on ffmpeg-svn r18079.

CONVERSION TO FIXED-POINT

A patch from ffmpeg's mailing list was used to convert the decoder to
use fixed-point arithmetic. The patch was done by Ian Braithwaite, and
discussed here :

http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/46024

The patch is a bit dated (2007) so the modifications to cook.c had to
be done manually.  The patch was also applied to cookdata.h and was
used to create cookdata_fixpoint.h, cook_fixpoint.h and
cook_fixp_mdct.h.

cook_fixp_mdct.h and parts from cookdata_fixpoint.h were dropped and
rockbox's mdct library is now used in both the test program and the 
real codec.

Note : Only parts of the patch were committed to ffmpeg's repository.

TESTING

The test program should compile in any Unix-like environment using the
command "make -f Makefile.test".

For ARM targets add -DCPU_ARM to CFLAGS in Makefile.test to make use of 
the asm ARM optimisations in rockbox's mdct library.

For Big-endian targets, change -D"ROCKBOX_LITTLE_ENDIAN=1" 
to -D"ROCKBOX_BIG_ENDIAN=1" in Makefile.test.

Running "./cooktest file.rm" will decode the audio data to a WAV file
called "output.wav" in the current directory.