1
0
Fork 0
forked from len0rd/rockbox
foxbox/apps/codecs/libcook
Mohamed Tarek c956059ec5 Modify libcook to use rockbox's mdct library in its standalone test program.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22297 a1c6a512-1295-4272-9138-f99709370657
2009-08-13 20:26:31 +00:00
..
bitstream.c Adding support for rm playback. Only cook codec is supported for now and no seeking. 2009-07-06 22:40:45 +00:00
bitstream.h Previous commit didn't fix compiling on Cygwin, this one should. 2009-07-08 18:27:59 +00:00
bswap.h Adding support for rm playback. Only cook codec is supported for now and no seeking. 2009-07-06 22:40:45 +00:00
cook.c Approx 10% speedup in cook on files tested: Remove some inner loops in favour of memcpy/memset/vect_add calls; remove multiplication from index arithmetic in loops in favour of pointer arithmetic; make use of the MULT31, MULT31_SHIFT15 and CLIP_TO_15 implementations from codelib instead of having their own implementations in cook 2009-07-26 19:06:36 +00:00
cook.h Remove an overlooked, unused float from struct COOKContext. 2009-07-16 22:42:11 +00:00
cook_fixpoint.h Modify libcook to use rockbox's mdct library in its standalone test program. 2009-08-13 20:26:31 +00:00
cookdata.h Patch by Mohamed Tarek from FS#10182 - convert codec to fixed-point using patches submitted to the ffmpeg mailing list in 2007 by Ian Braithwaite. 2009-05-10 22:26:02 +00:00
cookdata_fixpoint.h Modify libcook to use rockbox's mdct library in its standalone test program. 2009-08-13 20:26:31 +00:00
ffmpeg_config.h The first part of Mohamed Tarek's Google Summer of Code work to implement RealAudio support in Rockbox. This is a self-contained Cook decoder using the original ffmpeg (still floating point) decoder and a new RM parser started by me in 2008 and continued by MT over the past few months. This is the equivalent of libcook.patch1 from FS#10182, but with further cleaning by both MT and me to minimise the differences to the original ffmpeg files. See README.rockbox for more details. 2009-05-09 01:21:49 +00:00
libcook.make Adding support for rm playback. Only cook codec is supported for now and no seeking. 2009-07-06 22:40:45 +00:00
main.c Generic codec-extradata parsing, in preparation for addition of AAC/RM. 2009-07-18 00:29:19 +00:00
Makefile.test Modify libcook to use rockbox's mdct library in its standalone test program. 2009-08-13 20:26:31 +00:00
README.rockbox Modify libcook to use rockbox's mdct library in its standalone test program. 2009-08-13 20:26:31 +00:00
SOURCES Compile librm separately in preparation for addition of more codecs. 2009-07-25 15:13:50 +00: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.