summaryrefslogtreecommitdiff
path: root/apps/codecs/libcook
AgeCommit message (Collapse)Author
2011-06-05FS#12146: Fix libcook bugs introduced in r22055 by Sean Bartell.Nils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29973 a1c6a512-1295-4272-9138-f99709370657
2011-06-02FS#12141 by Sean BartellNils Wallménius
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-05-22Submit FS#12115: Use more IRAM in cook codec for several targets. Speeds up ↵Andree Buschmann
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
2010-07-29Make codeclib_misc.h include the asm headers to simplify inclusion magic.Nils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27615 a1c6a512-1295-4272-9138-f99709370657
2010-07-18FS#11454 Tuning of codec compiler optionsNils Wallménius
Tested with h300 and sansa c200v1 h300 speedups: a52: 2% cook: 9-17% aac: 0.5% vorbis: 0.5% wma: 6-12% c200v1 speedups: alac: 1.5% wma 3-4% wavpack 2% git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27486 a1c6a512-1295-4272-9138-f99709370657
2010-07-15Sync codeclib bitstream code with upstream ffmpeg code. Build ↵Nils Wallménius
ffmpeg_bitstream.c as a part of the codec lib. Use this codeclib implementation in libffmpegFLAC. Implement adapted version of the unaligned longword reading optimization for coldfire from the libwma version of this code. Speeds up cook decoding by 2-3% on h300 and flac by 25% on h300, also speeds up flac decoding by 2% on c200 (decoding speed of cook on c200 is unchanged). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27430 a1c6a512-1295-4272-9138-f99709370657
2010-05-14Set up EMAC mode in cook, fixing whitenois when transitioning from a codec ↵Nils Wallménius
using different emac mode.' git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26016 a1c6a512-1295-4272-9138-f99709370657
2010-05-06Move c/h files implementing/defining standard library stuff into a new libc ↵Thomas Martitz
directory, also standard'ify some parts of the code base (almost entirely #include fixes). This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
2010-05-06Make open() posix compliant api-wise. A few calls (those with O_CREAT) need ↵Thomas Martitz
the additional optional mode parameter so add it. Impact for the core is almost zero, as open() is a wrapper macro for the real open function which doesn't take the variable parameter. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25844 a1c6a512-1295-4272-9138-f99709370657
2010-02-21Remove CLIP_TO_15 from codeclib. Remove tabs.Andree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24834 a1c6a512-1295-4272-9138-f99709370657
2010-02-21Further work on cook codec. Rounding is not needed when using a large fract ↵Andree Buschmann
part in the internal sample representation. Move quantization array to iram. Beautification of mdct post processing. Speed up of 0.2 MHz on PP5022. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24821 a1c6a512-1295-4272-9138-f99709370657
2010-02-21Optimization for cook codec. Rework sample output to be able to use highly ↵Andree Buschmann
optimized dsp routines. Moved some functions to iram. Speeds up codec by 1.3 MHz on PP5022. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24815 a1c6a512-1295-4272-9138-f99709370657
2010-02-17Merge from branches/mdctexp - faster ifft+imdct in codec libDave Hooper
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24712 a1c6a512-1295-4272-9138-f99709370657
2009-12-06Fix red: av_log2 undefined for ARM_ARCH <= 4, missing codeclib.h includes.Andrew Mahone
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23869 a1c6a512-1295-4272-9138-f99709370657
2009-12-05Move av_log2 function and asociated table to the codec lib, remove 3 ↵Nils Wallménius
identical implementations, always have LUT in iram (gives a *tiny* speedup on coldfire), make the clz based function return the same value as the non clz based function for 0 input to be safe (slows down flac ~2% on the gigabeat S) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23858 a1c6a512-1295-4272-9138-f99709370657
2009-08-15Move bitstream.[ch] to codecs/lib/ffmpeg_bitstream.[ch] to avoid duplicate ↵Mohamed Tarek
copies across codecs. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22337 a1c6a512-1295-4272-9138-f99709370657
2009-08-15remove duplicates of bswap.h from libwma, libcook and libatrac. Create ↵Mohamed Tarek
codecs/lib/ffmpeg_bswap.h and use it instead. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22328 a1c6a512-1295-4272-9138-f99709370657
2009-08-14Factor out bytestream reading functions needed in rm parsers/codecs.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22308 a1c6a512-1295-4272-9138-f99709370657
2009-08-13Modify libcook to use rockbox's mdct library in its standalone test program.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22297 a1c6a512-1295-4272-9138-f99709370657
2009-07-27Fix compilation of the standalone test program.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22064 a1c6a512-1295-4272-9138-f99709370657
2009-07-26Approx 10% speedup in cook on files tested: Remove some inner loops in ↵Dave Hooper
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 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22055 a1c6a512-1295-4272-9138-f99709370657
2009-07-25Compile librm separately in preparation for addition of more codecs.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22028 a1c6a512-1295-4272-9138-f99709370657
2009-07-24Remove a divide in the cook's init function. Harmless but might as well ↵Michael Giacomelli
drop it. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22019 a1c6a512-1295-4272-9138-f99709370657
2009-07-21Commited the wrong thing, fix zeroing in cook.Michael Giacomelli
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21989 a1c6a512-1295-4272-9138-f99709370657
2009-07-21Rearrange loop to avoid one branch per iteration.Michael Giacomelli
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21988 a1c6a512-1295-4272-9138-f99709370657
2009-07-18Generic codec-extradata parsing, in preparation for addition of AAC/RM.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21941 a1c6a512-1295-4272-9138-f99709370657
2009-07-18Optimize overlap_math by only doing shifting if theres gain, and moving the ↵Michael Giacomelli
check for sign outside of the for loop. 3% speedup on PP5024. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21940 a1c6a512-1295-4272-9138-f99709370657
2009-07-17Rearrange the MDCT library lookup tables so that codecs can access them. ↵Michael Giacomelli
Access them in cook. Remove old cook trig tables. Replace old 32x16 bit fixed point multiply code with faster ASM ARM/Coldfire versions using full 32 bit precision. Improves performance signficantly on PP5024 (~200% realtime for a 64k file) while saving a lot of memory and improving accuracy. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21939 a1c6a512-1295-4272-9138-f99709370657
2009-07-16Remove a call to av_clip() which limits the PCM output of the decoder to 16-bit.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21911 a1c6a512-1295-4272-9138-f99709370657
2009-07-16Remove an overlooked, unused float from struct COOKContext.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21909 a1c6a512-1295-4272-9138-f99709370657
2009-07-08Previous commit didn't fix compiling on Cygwin, this one should.Maurus Cuelenaere
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21724 a1c6a512-1295-4272-9138-f99709370657
2009-07-08Fix compiling on Cygwin hosts.Maurus Cuelenaere
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21722 a1c6a512-1295-4272-9138-f99709370657
2009-07-06Adding support for rm playback. Only cook codec is supported for now and no ↵Mohamed Tarek
seeking. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21695 a1c6a512-1295-4272-9138-f99709370657
2009-05-24Move rm.[c/h] from libcook to librm. No functional changes.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21066 a1c6a512-1295-4272-9138-f99709370657
2009-05-22Move the code segment that corrects the value of (number of packets) to Mohamed Tarek
the parser. This is strictly parser-related and main.c shouldn't have to deal with it. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21043 a1c6a512-1295-4272-9138-f99709370657
2009-05-22Modify the test program to read audio frames from a memory buffer rather Mohamed Tarek
than a file descriptor, to make the decoding process as much similar as to how it should be in rockbox. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21042 a1c6a512-1295-4272-9138-f99709370657
2009-05-22-Remove some unnecessary defines from rm.c.Mohamed Tarek
-Modify code related to the renamed rm.[c/h] instead of rm2wav.[c/h]. -Remove struct cook_extradata from rm.c as it is not used. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21041 a1c6a512-1295-4272-9138-f99709370657
2009-05-22Rename rm2wav.[c/h] to rm.[c/h]. No functional changes.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21040 a1c6a512-1295-4272-9138-f99709370657
2009-05-22Move wav related code to main.cMohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21039 a1c6a512-1295-4272-9138-f99709370657
2009-05-14Move bswap.h up from libavutil/ and remove libavutil/Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20931 a1c6a512-1295-4272-9138-f99709370657
2009-05-12-Remove all dynamic allocations, hence remove cook_decode_close() which was ↵Mohamed Tarek
basically needed for freeing allocated memory. -Remove any ffmpeg-specific attributes (av_const,av_always_inline .. etc.). -Move some math functions to cook_fixpoint.h - libavutil/common.h is no longer needed. -Remove libavutil/mem.[c/h], libavutil/common.h and libavutil/internal.h. -Fix a warning in cookdata_fixpoint.h. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20922 a1c6a512-1295-4272-9138-f99709370657
2009-05-12-Remove calls to av_log() and use DEBUGF/printf instead, thuse removing Mohamed Tarek
libavutil/log.[c/h] and libavutil/avutil.h. -Take necessary defines to bitstream.h from libavutil/intreadwrite.h to remove the latter. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20918 a1c6a512-1295-4272-9138-f99709370657
2009-05-12Remove bytestream.h and and a related comment from cook.hMohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20917 a1c6a512-1295-4272-9138-f99709370657
2009-05-11-Took cook_random() from an old cook.c revision [6 mar 2007], which is a Mohamed Tarek
simple RNG, to eliminate the need for lfg.c/h. -Remove lfg.c/h and md5.c/h as they are no longer needed and use the more common form of my name in docs/COMMITTERS. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20915 a1c6a512-1295-4272-9138-f99709370657
2009-05-11Patch by Mohamed Tarek from FS#10182 - remove avcodec.h as it is no longer ↵Dave Chapman
needed. Also remove -lm from Makefile.test for the same reason. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20909 a1c6a512-1295-4272-9138-f99709370657
2009-05-11Fix the $Id$ line broken by r20907.Dave Chapman
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20908 a1c6a512-1295-4272-9138-f99709370657
2009-05-10Actually remove the unneeded files in the last commit.Michael Giacomelli
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20903 a1c6a512-1295-4272-9138-f99709370657
2009-05-10Patch by Mohamed Tarek from FS #10182. Remove floating point code (FFT, ↵Michael Giacomelli
MDCT, etc) from libcook. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20902 a1c6a512-1295-4272-9138-f99709370657
2009-05-10Patch by Mohamed Tarek from FS#10182 - convert codec to fixed-point using ↵Dave Chapman
patches submitted to the ffmpeg mailing list in 2007 by Ian Braithwaite. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20901 a1c6a512-1295-4272-9138-f99709370657
2009-05-09Patch by Mohamed Tarek from FS#10182: 1) Move the main() test program from ↵Dave Chapman
cook.c to a new main.c; 2) Move some common definitions from cook.c to cook.h. No functional changes. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20898 a1c6a512-1295-4272-9138-f99709370657