Commit graph

1147 commits

Author SHA1 Message Date
Mohamed Tarek
ebd67b1c6f Replace av_log() with DEBUGF and drop some now-useless files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22306 a1c6a512-1295-4272-9138-f99709370657
2009-08-14 08:12:28 +00:00
Mohamed Tarek
4f72502329 Fix a (stupid) mistake in libatrac/atrac3.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22305 a1c6a512-1295-4272-9138-f99709370657
2009-08-14 03:41:59 +00:00
Mohamed Tarek
a0092593c9 Call the asm definitions of fixmul functions when possible.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22303 a1c6a512-1295-4272-9138-f99709370657
2009-08-13 21:18:30 +00:00
Mohamed Tarek
b8693f9908 Remove a forgotten DEBUGF from librm/rm.c - No functional changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22300 a1c6a512-1295-4272-9138-f99709370657
2009-08-13 20:56:22 +00:00
Mohamed Tarek
e17d3edf87 Remove mallocs from libatrac.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22299 a1c6a512-1295-4272-9138-f99709370657
2009-08-13 20:51:03 +00:00
Mohamed Tarek
432e2ecc13 Modify libatrac to use fixed-point arithmetic.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22298 a1c6a512-1295-4272-9138-f99709370657
2009-08-13 20:38:59 +00:00
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
Mohamed Tarek
8036207190 Also modify mdct_lookup.c for compiling outside rockbox.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22296 a1c6a512-1295-4272-9138-f99709370657
2009-08-13 20:19:33 +00:00
Mohamed Tarek
272954954c Modify the mdct library to enable using it outside rockbox - No functional changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22295 a1c6a512-1295-4272-9138-f99709370657
2009-08-13 20:02:31 +00:00
Mohamed Tarek
519adfbaae Import libatrac from ffmpeg and modify librm to support ATRAC3.
The decoder is still in floating point.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22235 a1c6a512-1295-4272-9138-f99709370657
2009-08-10 14:46:31 +00:00
Boris Gjenero
7f971e0176 Fix FS#10476. Prevent FLAC bitrate calculation overflow with large files. The watermark depends on the bitrate, and so this also fixes playback pauses on large FLAC files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22211 a1c6a512-1295-4272-9138-f99709370657
2009-08-08 20:27:03 +00:00
Bertrik Sikken
d767883a41 Various files: make functions static if they're local or make sure there is a proper #include if not
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22184 a1c6a512-1295-4272-9138-f99709370657
2009-08-06 09:28:25 +00:00
Mohamed Tarek
cc68b632cb Add a couple of functions for the rm metadata parser for debugging, and add a comment to codecs/a52_rm.c to indicate the source of the decode
function.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22182 a1c6a512-1295-4272-9138-f99709370657
2009-08-06 05:45:54 +00:00
Mohamed Tarek
9ad071dcaf Fix yellow.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22163 a1c6a512-1295-4272-9138-f99709370657
2009-08-04 18:57:10 +00:00
Mohamed Tarek
ac2ce3a449 Enhance seeking in a52_rm ; it was a bit choppy, and fix a bug (request_buffer was called after eos and gave a seg fault) by changing the the
condition for the decoding loop.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22162 a1c6a512-1295-4272-9138-f99709370657
2009-08-04 18:36:44 +00:00
Mohamed Tarek
010bb8e6ba Rename codecs/dnet.c to codecs/a52_rm.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22158 a1c6a512-1295-4272-9138-f99709370657
2009-08-04 15:05:56 +00:00
Mohamed Tarek
26cee86a0c Add support for AC3 audio in RM container.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22155 a1c6a512-1295-4272-9138-f99709370657
2009-08-04 13:54:06 +00:00
Mohamed Tarek
3c58b26152 Move the DATA_HEADER_SIZE define to codecs/librm/rm.h and add a define
for PACKET_HEADER_SIZE. No functional changes.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22152 a1c6a512-1295-4272-9138-f99709370657
2009-08-04 06:10:03 +00:00
Magnus Holmgren
04be8dd7fe Fix inaccurate time display for 44.1 (and 22.05) kHz MP3 audio tracks. Time was off by about 0.2%. Doesn't sound much, but after one hour, that's 8 seconds. Also fix a problem when seeking to near the end of a file.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22145 a1c6a512-1295-4272-9138-f99709370657
2009-08-03 20:28:16 +00:00
Thomas Martitz
85ece84b1c Remove various ABS() definitions with a single one using typeof (if using gcc) to avoid multiple evaluations of the input expressions. Speex still uses its own as I didn't want to change this imported code too much.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22129 a1c6a512-1295-4272-9138-f99709370657
2009-08-03 01:38:58 +00:00
Nils Wallménius
65140a2cd5 Slight whitespace cleanup, add a const qualifier. No functional changes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22087 a1c6a512-1295-4272-9138-f99709370657
2009-07-30 13:52:11 +00:00
Michael Giacomelli
5bd339c9f9 Clean up a lot of old and ugly comments. Wrap some long lines. Remove unneeded fixed point function. Move some fixed point math functions out of wmadeci. No functional changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22077 a1c6a512-1295-4272-9138-f99709370657
2009-07-28 22:19:53 +00:00
Mohamed Tarek
c08a2c7c53 Change enum codecs in apps/codecs/librm/rm.h to follow the coding guidelines.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22067 a1c6a512-1295-4272-9138-f99709370657
2009-07-27 12:29:06 +00:00
Mohamed Tarek
5f5d105755 Change the naming scheme for codecs found in different containers.
Like changing AFMT_AAC to AFMT_MP4_AAC and AFMT_RAAC to AFMT_RM_AAC.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22066 a1c6a512-1295-4272-9138-f99709370657
2009-07-27 12:13:22 +00:00
Mohamed Tarek
c393b1dc5c Fix compilation of the standalone test program.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22064 a1c6a512-1295-4272-9138-f99709370657
2009-07-27 11:28:14 +00:00
Dave Hooper
a8d1cfdec8 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
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22055 a1c6a512-1295-4272-9138-f99709370657
2009-07-26 19:06:36 +00:00
Mohamed Tarek
b8cccb5ae1 Adding support for playback of aac audio in rm container, with seeking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22031 a1c6a512-1295-4272-9138-f99709370657
2009-07-25 15:47:13 +00:00
Mohamed Tarek
8f572ca525 Compile librm separately in preparation for addition of more codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22028 a1c6a512-1295-4272-9138-f99709370657
2009-07-25 15:13:50 +00:00
Michael Giacomelli
bd9156a4ad Remove a divide in the cook's init function. Harmless but might as well drop it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22019 a1c6a512-1295-4272-9138-f99709370657
2009-07-24 00:03:01 +00:00
Michael Sevakis
c77eae99a3 Commit FS#10458 by Christopher Williams - Fix incorrect AIFF and WAV encoding while recording in mono.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22014 a1c6a512-1295-4272-9138-f99709370657
2009-07-23 11:27:09 +00:00
Michael Giacomelli
debfd39882 Commited the wrong thing, fix zeroing in cook.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21989 a1c6a512-1295-4272-9138-f99709370657
2009-07-21 03:47:41 +00:00
Michael Giacomelli
c062259216 Rearrange loop to avoid one branch per iteration.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21988 a1c6a512-1295-4272-9138-f99709370657
2009-07-21 03:40:53 +00:00
Mohamed Tarek
6f4294219e Generic codec-extradata parsing, in preparation for addition of AAC/RM.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21941 a1c6a512-1295-4272-9138-f99709370657
2009-07-18 00:29:19 +00:00
Michael Giacomelli
6539b535ad Optimize overlap_math by only doing shifting if theres gain, and moving the 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-18 00:24:54 +00:00
Michael Giacomelli
b957f7214b Rearrange the MDCT library lookup tables so that codecs can access them. 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-17 23:53:40 +00:00
Jens Arnold
82dc91a102 Don't use ldrd/strd on ARMv5 since not all revisions support them and the gain from using them is minimal (basically code size only).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21916 a1c6a512-1295-4272-9138-f99709370657
2009-07-17 09:17:54 +00:00
Mohamed Tarek
20f8666b89 Remove a call to av_clip() which limits the PCM output of the decoder to 16-bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21911 a1c6a512-1295-4272-9138-f99709370657
2009-07-16 23:09:28 +00:00
Mohamed Tarek
cfd8b1444b Remove an overlooked, unused float from struct COOKContext.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21909 a1c6a512-1295-4272-9138-f99709370657
2009-07-16 22:42:11 +00:00
Antonius Hellmann
c92652ecb1 Collect encoder data chunks (usually < 1kB) before writing to disk. The reduced number of ci->write() calls give a nice write speedup to the mp3 encoder.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21865 a1c6a512-1295-4272-9138-f99709370657
2009-07-14 16:52:18 +00:00
Magnus Holmgren
fd6afc05f8 Remove a function accidentally added back in r21841.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21853 a1c6a512-1295-4272-9138-f99709370657
2009-07-14 07:53:57 +00:00
Jens Arnold
5f6998bde9 Fix cook on big endian targets. get_uint*be() is already endian agnostic due to reading
single bytes, so the "big endian" version was plain wrong.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21846 a1c6a512-1295-4272-9138-f99709370657
2009-07-13 19:19:05 +00:00
Magnus Holmgren
5e2f11ad65 Import Vorbis seeking improvements from Tremor SVN.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21841 a1c6a512-1295-4272-9138-f99709370657
2009-07-13 15:23:07 +00:00
Jens Arnold
afad93ae02 Fix another file for r12 being a scratch register. Overlooked earlier because this file used
literal 'r13' instead of 'sp'. Changed 'r13' to 'sp' for consistency.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21838 a1c6a512-1295-4272-9138-f99709370657
2009-07-13 13:15:28 +00:00
Mohamed Tarek
b5b9cb031d Modified the code for seeking to speed it up a bit. Instead of searching
the file for the required timestamp, we seek directly to a calcualted 
position. If we go to a point beyond the desired seek_time, we seek back 
in blocks (normally one or two blocks to the back) to get the required 
block.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21836 a1c6a512-1295-4272-9138-f99709370657
2009-07-13 10:06:19 +00:00
Andrew Mahone
f35db90efa Reorder some operands to increase frequency of multiply early termination on TDMI targets, reorder some operations to try to reduce stalls.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21834 a1c6a512-1295-4272-9138-f99709370657
2009-07-13 04:50:02 +00:00
Michael Giacomelli
15dc0750be Put COOKContext struct into IRAM. Speeds up decoding by 6MHz on PP5024 at the cost of 30.5 kbytes of IRAM.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21833 a1c6a512-1295-4272-9138-f99709370657
2009-07-13 01:59:32 +00:00
Mohamed Tarek
6258e24e0e Some fixes for the standalone test program.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21807 a1c6a512-1295-4272-9138-f99709370657
2009-07-12 14:43:24 +00:00
Mohamed Tarek
edf3af2c68 Add seeking support in cook codec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21806 a1c6a512-1295-4272-9138-f99709370657
2009-07-12 14:36:06 +00:00
Jens Arnold
02c031709c * ARM asm DSP and codec/plugin functions: Use r12 scratch register properly
* Fix saving another unused reg in dsp code
* Use less regs in the generic ARM mpegplayer adding idct pure DC case
* Fix ARMv6 mpegplayer adding idct using an unsaved register in pure DC case


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21803 a1c6a512-1295-4272-9138-f99709370657
2009-07-12 13:14:35 +00:00
Andrew Mahone
1bc67c81b6 Fix type mismatch warnings and errors exposed when building with EABI toolchain.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21769 a1c6a512-1295-4272-9138-f99709370657
2009-07-11 00:22:26 +00:00
Mohamed Tarek
d259568831 Add the ability to seek to the start of the track.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21728 a1c6a512-1295-4272-9138-f99709370657
2009-07-08 20:23:24 +00:00
Maurus Cuelenaere
7414140f7c Previous commit didn't fix compiling on Cygwin, this one should.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21724 a1c6a512-1295-4272-9138-f99709370657
2009-07-08 18:27:59 +00:00
Maurus Cuelenaere
269ed8a415 Fix compiling on Cygwin hosts.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21722 a1c6a512-1295-4272-9138-f99709370657
2009-07-08 18:06:38 +00:00
Maurus Cuelenaere
851b0e3234 Try at fixing 'cast to/from pointer to/from integer of different size' warnings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21719 a1c6a512-1295-4272-9138-f99709370657
2009-07-08 17:18:59 +00:00
Maurus Cuelenaere
24967bd552 Cook codec: make sure the RMContext get aligned correctly, or we won't be able to find it
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21717 a1c6a512-1295-4272-9138-f99709370657
2009-07-08 15:31:36 +00:00
Maurus Cuelenaere
8d4d4610b6 * FS#10411 - Fixed point math code is bloated by Jeffrey Goode
* Set svn:keywords properties


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21701 a1c6a512-1295-4272-9138-f99709370657
2009-07-07 13:36:34 +00:00
Mohamed Tarek
e184ef1027 Adding support for rm playback. Only cook codec is supported for now and no seeking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21695 a1c6a512-1295-4272-9138-f99709370657
2009-07-06 22:40:45 +00:00
Maurus Cuelenaere
802743a061 Take 2 at 'Consolidate all fixed point math routines in one library' (FS#10400) by Jeffrey Goode
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21664 a1c6a512-1295-4272-9138-f99709370657
2009-07-05 18:06:07 +00:00
Maurus Cuelenaere
c3bc8fda80 Revert "Consolidate all fixed point math routines in one library (FS#10400) by Jeffrey Goode"
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21635 a1c6a512-1295-4272-9138-f99709370657
2009-07-04 13:17:58 +00:00
Maurus Cuelenaere
4710a32800 Consolidate all fixed point math routines in one library (FS#10400) by Jeffrey Goode
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21633 a1c6a512-1295-4272-9138-f99709370657
2009-07-04 12:26:45 +00:00
Michael Giacomelli
bd70193e98 Commit rest of fix in FS#9866. Don't parse Vorbis comments again in libtremor. It wastes memory and we already have the comments in memory. Looking at the spec and code, I think this fix is proper, but if it breaks any files this may need to be revisited.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21581 a1c6a512-1295-4272-9138-f99709370657
2009-06-30 22:37:05 +00:00
Michael Giacomelli
3866755d28 Remove unused variable and assignment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21304 a1c6a512-1295-4272-9138-f99709370657
2009-06-15 22:36:57 +00:00
Mohamed Tarek
45f72e933a Move rm.[c/h] from libcook to librm. No functional changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21066 a1c6a512-1295-4272-9138-f99709370657
2009-05-24 14:10:51 +00:00
Mohamed Tarek
95fa7f6a2e Move the code segment that corrects the value of (number of packets) to
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-22 20:35:20 +00:00
Mohamed Tarek
b63028d80a Modify the test program to read audio frames from a memory buffer rather
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 20:23:38 +00:00
Mohamed Tarek
694b3b734f -Remove some unnecessary defines from rm.c.
-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-22 19:51:36 +00:00
Mohamed Tarek
9389a5a4d1 Rename rm2wav.[c/h] to rm.[c/h]. No functional changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21040 a1c6a512-1295-4272-9138-f99709370657
2009-05-22 19:42:00 +00:00
Mohamed Tarek
fde78ddcc0 Move wav related code to main.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21039 a1c6a512-1295-4272-9138-f99709370657
2009-05-22 19:36:32 +00:00
Mohamed Tarek
1775866fd3 Move bswap.h up from libavutil/ and remove libavutil/
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20931 a1c6a512-1295-4272-9138-f99709370657
2009-05-14 21:30:44 +00:00
Mohamed Tarek
49ba646d57 -Remove all dynamic allocations, hence remove cook_decode_close() which was 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 20:50:35 +00:00
Mohamed Tarek
f2c18d6922 -Remove calls to av_log() and use DEBUGF/printf instead, thuse removing
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-12 13:21:34 +00:00
Mohamed Tarek
950c4747e3 Remove bytestream.h and and a related comment from cook.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20917 a1c6a512-1295-4272-9138-f99709370657
2009-05-12 12:30:33 +00:00
Mohamed Tarek
0cb3ad58b3 -Took cook_random() from an old cook.c revision [6 mar 2007], which is a
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-11 23:35:50 +00:00
Dave Chapman
112f39379c Patch by Mohamed Tarek from FS#10182 - remove avcodec.h as it is no longer 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-11 07:59:10 +00:00
Dave Chapman
44afb00e26 Fix the $Id$ line broken by r20907.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20908 a1c6a512-1295-4272-9138-f99709370657
2009-05-11 07:47:02 +00:00
Michael Giacomelli
5c404a02fb Commited too much really this time.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20905 a1c6a512-1295-4272-9138-f99709370657
2009-05-10 23:38:06 +00:00
Michael Giacomelli
9c43aaa41b Actually remove the unneeded files in the last commit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20903 a1c6a512-1295-4272-9138-f99709370657
2009-05-10 23:32:53 +00:00
Michael Giacomelli
65649de515 Patch by Mohamed Tarek from FS #10182. Remove floating point code (FFT, MDCT, etc) from libcook.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20902 a1c6a512-1295-4272-9138-f99709370657
2009-05-10 23:18:04 +00:00
Dave Chapman
fc28cb4ed5 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.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20901 a1c6a512-1295-4272-9138-f99709370657
2009-05-10 22:26:02 +00:00
Dave Chapman
7ba6ef42de Patch by Mohamed Tarek from FS#10182: 1) Move the main() test program from 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
2009-05-09 23:24:02 +00:00
Dave Chapman
868652abaa Patch by Mohamed Tarek - add #define to protect against multiple inclusion
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20897 a1c6a512-1295-4272-9138-f99709370657
2009-05-09 23:14:55 +00:00
Dave Chapman
67695617a1 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.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20883 a1c6a512-1295-4272-9138-f99709370657
2009-05-09 01:21:49 +00:00
Dave Chapman
69db01e72f Initial commit of the minimal set of ffmpeg (r18079) files required for Cook (realaudio) decoding. These are the unmodified versions from ffmpeg, committed as a base for future changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20882 a1c6a512-1295-4272-9138-f99709370657
2009-05-09 01:04:20 +00:00
Dave Chapman
90f1e5caf2 Check some previously unchecked return values in the standalone FLAC test program - fixes some warnings spotted by Mohamed Tarek El Haddad (mt).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20875 a1c6a512-1295-4272-9138-f99709370657
2009-05-08 17:52:38 +00:00
Dave Hooper
b10ba5e8b3 Fix for noise after vorbis skipping introduced in r20783 - thanks to Aoyumi and learman
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20843 a1c6a512-1295-4272-9138-f99709370657
2009-05-02 11:26:53 +00:00
Michael Giacomelli
0a1baa36b1 Fix FS#10174 by correcting an oversimplification of the AAC window switching code I introduced with the unified IMDCT library. Should significantly improve accuracy for all AAC files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20821 a1c6a512-1295-4272-9138-f99709370657
2009-04-29 17:44:02 +00:00
Dave Hooper
67fb5415f7 Commit FS#9882 - make better use of iram at different quality encodings, remove redundant memsets, implement doublebuffer if it will fit in iram to save a mempcy each frame, and some alignment fixes for coldfire
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20783 a1c6a512-1295-4272-9138-f99709370657
2009-04-25 11:25:13 +00:00
Michael Giacomelli
738824ccdd Might as well enable SPC so that all codecs build on the Clip. Not yet real time.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20782 a1c6a512-1295-4272-9138-f99709370657
2009-04-25 04:10:50 +00:00
Michael Giacomelli
f5884fdeb6 Disable AAC-SBR, AAC-SSR, and AAC-PS on Sansa clip. Clean up warnings introduced by this. Enable compiling the AAC codec on the Clip. Due to lack of memory for seek tables, files over 10 minutes long or so will probably fail.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20781 a1c6a512-1295-4272-9138-f99709370657
2009-04-25 03:51:58 +00:00
Michael Giacomelli
87b231c68c Enable WMA, MPC, ASAP, NSF, APE, and SID playback on the Sansa clip as these codecs already fit into IRAM. SPC could be made to fit by changing BRRcache define, but without MMU I doubt it would be realtime anyway.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20780 a1c6a512-1295-4272-9138-f99709370657
2009-04-25 03:16:13 +00:00
Maurus Cuelenaere
17d9d80011 Fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20777 a1c6a512-1295-4272-9138-f99709370657
2009-04-22 15:04:26 +00:00
Maurus Cuelenaere
c89ac3460a Fix yellow
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20776 a1c6a512-1295-4272-9138-f99709370657
2009-04-22 14:48:07 +00:00
Andree Buschmann
f4ac75752e Allow higher precision in calculation of seek position and elapsed time for mpc codec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20756 a1c6a512-1295-4272-9138-f99709370657
2009-04-20 19:16:48 +00:00
Andree Buschmann
f7a9125781 Fix FS#10139 (broken seek for very long mp3 files) through avoiding int32 overflow in calculation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20755 a1c6a512-1295-4272-9138-f99709370657
2009-04-20 19:10:27 +00:00
Maurus Cuelenaere
2995c2d265 Clean code a bit (no functional changes)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20715 a1c6a512-1295-4272-9138-f99709370657
2009-04-16 14:34:49 +00:00
Maurus Cuelenaere
f3643181ae Fix header
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20714 a1c6a512-1295-4272-9138-f99709370657
2009-04-16 13:48:34 +00:00
Maurus Cuelenaere
66b078f643 Add setjmp implementation for MIPS targets from newlib
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20713 a1c6a512-1295-4272-9138-f99709370657
2009-04-16 13:41:48 +00:00
Boris Gjenero
cd6cbf5001 Fix FS#10111 - Pops and clicks when playing 24 bit FLAC files. This fixes decoding of RICE2 entropy coding. Backported from ffmpeg.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20671 a1c6a512-1295-4272-9138-f99709370657
2009-04-10 02:15:04 +00:00
Magnus Holmgren
efef625b3f Fix FS#10067: Crash when playing very short (less than a second) FLAC files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20567 a1c6a512-1295-4272-9138-f99709370657
2009-03-29 14:46:11 +00:00
Nicolas Pennequin
396aeafa6c Correct Björn's name in various file headers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20491 a1c6a512-1295-4272-9138-f99709370657
2009-03-23 17:08:46 +00:00
Michael Giacomelli
754ae4acba Enable libmad ASM optimized fixed point routines for MIPS.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20280 a1c6a512-1295-4272-9138-f99709370657
2009-03-10 02:13:35 +00:00
Michael Giacomelli
9f49657c6a Fix endianness defines in the mdctlib code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20279 a1c6a512-1295-4272-9138-f99709370657
2009-03-10 01:50:18 +00:00
Magnus Holmgren
f4515c3082 Add setjmp/longjmp for ARM and ColdFire to the codec lib, and use it in the Vorbis codec to better handle out of memory conditions (to exit rather than crash; the AAC codec could use it too). setjmp/longjmp comes from newlib 1.17.0 with a few minor changes (combine parts of some files, remove support for some architectures, change some ifdef's).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20235 a1c6a512-1295-4272-9138-f99709370657
2009-03-08 12:48:58 +00:00
Bertrik Sikken
4f87abf90a Cosmetic fix: remove duplicate semicolons
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20198 a1c6a512-1295-4272-9138-f99709370657
2009-03-04 18:15:06 +00:00
Jens Arnold
23e28f2b0c Overlooked one place where the 'archive created' warning needs to be suppressed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20197 a1c6a512-1295-4272-9138-f99709370657
2009-03-04 07:38:42 +00:00
Jens Arnold
6436b39d4c Fix some slight inconsistencies.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20172 a1c6a512-1295-4272-9138-f99709370657
2009-03-02 08:16:36 +00:00
Michael Giacomelli
912b24f078 Make tremor check for very long ogg tags and truncate them if they're larger then 10000 characters rather then seg faulting. Fixes FS#9866.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20156 a1c6a512-1295-4272-9138-f99709370657
2009-03-01 21:36:13 +00:00
Jens Arnold
6421f94c0d Silence warning from 'ar' if the archive had to be created.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20151 a1c6a512-1295-4272-9138-f99709370657
2009-03-01 09:04:15 +00:00
Tom Ross
5d190bc13c Mac doesn't handle placing variables in specific sections very well. Building the sim on OS X is now possible once again.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20124 a1c6a512-1295-4272-9138-f99709370657
2009-02-27 07:30:41 +00:00
Daniel Stenberg
2e6d604bb6 Stop hiding errors by redirecting stderr to /dev/null. If we really need to do re-introduce somewhere we should rather make it dependent on the V variable so that make V=1 would still show the error and only "normal" builds would hide it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20090 a1c6a512-1295-4272-9138-f99709370657
2009-02-23 08:45:16 +00:00
Michael Giacomelli
bd60270418 Commit FS#9915 by Sei Aoyumi. Adds hints to help GCC better optimize vorbis decoding. Gives a minor speed increase.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20030 a1c6a512-1295-4272-9138-f99709370657
2009-02-17 17:01:09 +00:00
Michael Sevakis
21f0c9a282 Make basic cache functions into calls, and get rid of CACHE_FUNCTION_WRAPPERS and CACHE_FUNCTIONS_AS_CALL macros. Rename flush/invalidate_icache to cpucache_flush/invalidate. They're inlined only if an implementation isn't provided by defining HAVE_CPUCACHE_FLUSH/INVALIDATE.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19971 a1c6a512-1295-4272-9138-f99709370657
2009-02-11 12:55:51 +00:00
Daniel Stenberg
dca7d391f1 make sure plugin.lds is not processed when building sims since it isn't used for anything then!
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19957 a1c6a512-1295-4272-9138-f99709370657
2009-02-09 18:31:56 +00:00
Michael Giacomelli
755ddc9fc2 Commit fix suggested by Siaoru Lee in FS#9776. Fixes a bug in our ASF parser.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19946 a1c6a512-1295-4272-9138-f99709370657
2009-02-08 22:05:15 +00:00
Michael Sevakis
b0befadad1 Include divide-by-zero handling within plugins and codecs for ARM processors.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19834 a1c6a512-1295-4272-9138-f99709370657
2009-01-24 03:47:09 +00:00
Andrew Mahone
44554e6075 initialize the codecs API in the codec loader, using the same method as used in the plugin loader
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19824 a1c6a512-1295-4272-9138-f99709370657
2009-01-23 09:51:26 +00:00
Michael Giacomelli
e1b01d4608 Remove floor0 stuff from IRAM. Results in a tiny speed decrease for files encoded with 6+ year old versions of the Xiph encoder, but saves IRAM which can be better used elsewhere. Thanks Nils Wallmenius in FS#7832 for the idea.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19811 a1c6a512-1295-4272-9138-f99709370657
2009-01-21 18:22:46 +00:00
Björn Stenberg
52320b83c0 Added missing dependencies for codeclib and pluginlib. This required renaming some files that have twins in other places.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19756 a1c6a512-1295-4272-9138-f99709370657
2009-01-12 21:56:46 +00:00
Björn Stenberg
6427d127aa Calculate watermark from bitrate and harddisk spinup time.
Use a smaller PCM buffer on targets with 2MB or less ram.
(FS#9703)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19743 a1c6a512-1295-4272-9138-f99709370657
2009-01-10 21:10:56 +00:00
Björn Stenberg
a36cdf5b37 Removed the sim_ prefix from the plugin api.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19704 a1c6a512-1295-4272-9138-f99709370657
2009-01-07 09:53:46 +00:00
Bertrik Sikken
32c2f455d1 static/const/#include/tab police on various files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19643 a1c6a512-1295-4272-9138-f99709370657
2009-01-02 21:43:52 +00:00
Bertrik Sikken
8e22f7f5b0 Make local functions static in codecs, where possible.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19612 a1c6a512-1295-4272-9138-f99709370657
2008-12-29 19:49:48 +00:00
Jens Arnold
ed945e31c1 Slight speedup for the APE filters. Most noticeable on coldfire (+3.5% for -c2000), but also helps on the arm targets (+0.9% for -c2000 on PP5002). This transformation is oveflow safe, as absres < 2^24 is guaranteed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19556 a1c6a512-1295-4272-9138-f99709370657
2008-12-22 08:33:49 +00:00
Jens Arnold
dca9f42cdf Fix decoding of stereo frames with silence in only one channel. * Make the standalone decoder contain debugging information.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19552 a1c6a512-1295-4272-9138-f99709370657
2008-12-21 23:49:02 +00:00
Jens Arnold
0bf6e36628 Fix handling of 8 bit mono and stereo APE files, and also optimise 16 and 24 bit output in the standalone decoder a bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19517 a1c6a512-1295-4272-9138-f99709370657
2008-12-21 01:29:36 +00:00
Tom Ross
e7afeff072 Sync some changes found in ffmpeg plus a spelling correction I forgot to commit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19503 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 06:40:46 +00:00
Tom Ross
c3615119ba Don't read a full byte if less than 8 bits are available. The change doesn't fix any problem samples, but the current code makes no sense. Also some spelling corrections in debugfs and comments.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19502 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 06:16:22 +00:00
Michael Giacomelli
6a635b20da Wrap some of the more ridiculously long lines introduced in the previous revision. Whitespace changes only.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19501 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 05:53:28 +00:00
Michael Giacomelli
2557251351 Correctly implement remaining portions of ffmpeg's r8627 that I'd forgotten about. This fixes a table overflow in low bitrate files that use noise coding, and in theory should be substantial improvement, but I haven't found any files were it makes a difference.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19500 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 05:43:58 +00:00
Michael Giacomelli
7a0baa3aa5 Fix occasional glitch when switching from stereo to mono tracks due to uninitialized m/s coding flag.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19498 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 02:38:35 +00:00
Michael Giacomelli
d909eee0ce Commit fix by Tom Ross in FS#7488 wherein a silly mistake noise coding initialization is corrected. This sample alone has probably resulted in more WMA fixes then all other combined and I suspect there will still be at least one more.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19496 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 01:49:27 +00:00
Michael Giacomelli
0301ed5594 Fix bug where a mono file using noise coding would be corrupted if it was played immediately after a stereo files using noise coding due to incorrect initialization of the decoder state. Thanks to Tom Ross for pointing out that initialization was incomplete on these files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19494 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 01:38:34 +00:00
Björn Stenberg
0d97a5f021 Better file suffix replacement. Bug fix by Nils Wallménius. Closes FS #9644.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19443 a1c6a512-1295-4272-9138-f99709370657
2008-12-15 09:55:20 +00:00
Michael Sevakis
8cfbd3604f Use cookies for thread identification instead of pointers directly which gives a buffer against wrongly identifying a thread when the slot is recycled (which has been nagging me for awhile). A slot gets 255 uses before it repeats. Everything gets incompatible so a full update is required.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19377 a1c6a512-1295-4272-9138-f99709370657
2008-12-10 08:57:10 +00:00
Jens Arnold
a29b659758 Assembler optimised mono predictor for ARM. Speedup for -c1000 mono is ~5% on PP, ~8% on Gigabeat S (less for higher compression levels). Also fix some overlooked comments in the stereo predictor.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19375 a1c6a512-1295-4272-9138-f99709370657
2008-12-09 23:20:59 +00:00
Jens Arnold
c1cd0469ca Implement mono predictor in assembler for coldfire, yielding a ~6% speedup for mono -c1000. Apply ideas gained from it back to the stereo predictor, saving 4 instructions. No speed increase for stereo, probably due to cache aliasing effects. * 80-column police.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19296 a1c6a512-1295-4272-9138-f99709370657
2008-12-02 02:26:04 +00:00
Jens Arnold
75bd4adbc2 Shuffling around register allocation allows to keep decoded0 and decoded1 in registers, for a slight speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19287 a1c6a512-1295-4272-9138-f99709370657
2008-12-01 13:21:06 +00:00
Nils Wallménius
5f7db212d5 Restore compiler optimization level for libmad, was lost in the buildsystem rework
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19272 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 14:46:38 +00:00
Jens Arnold
89a6fe7ae4 Remove extraneous semicolons, and fix a comment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19268 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 11:54:20 +00:00
Jens Arnold
b153133682 Remove extraneous semicolons, and fix a comment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19267 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 11:53:52 +00:00
Jens Arnold
797ef6585a Fix APE 16-bit mono output: mono signals need to be scaled for rockbox.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19264 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 01:01:04 +00:00
Jens Arnold
88270f7622 Resurrect the ARM7 16-bit packed vector addition/subtraction for ARMv5, giving a nice speedup for the higher compression levels (tested on Cowon D2).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19260 a1c6a512-1295-4272-9138-f99709370657
2008-11-28 23:50:22 +00:00
Michael Sevakis
546d0dd4e6 Recording: Change some encoder code the operation of which was apparantly unclear. It seems clearer now anyway. No functional changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19255 a1c6a512-1295-4272-9138-f99709370657
2008-11-28 07:23:13 +00:00
Jens Arnold
113c285045 On ARM9TDMI (e.g. Gigabeat F) it's faster to use a ldr/str pair than add+ldmia/stmia for 2 registers. On ARM7TDMI a str pair is equally fast, so go for the simpler macro and use it for all ARMv4.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19250 a1c6a512-1295-4272-9138-f99709370657
2008-11-27 22:07:46 +00:00
Jens Arnold
6d34e33b94 Speed up the predictor a little by using ldrd/strd on ARMv5+. This required shuffling around the register allocation somewhat. Performance on ARMv4 is unaffected.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19248 a1c6a512-1295-4272-9138-f99709370657
2008-11-27 20:52:23 +00:00
Jens Arnold
5b0d74a7d3 Get rid of unused return values, except the one from decode_chunk() which will be used in the dual core split.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19236 a1c6a512-1295-4272-9138-f99709370657
2008-11-26 18:01:18 +00:00
Björn Stenberg
a091d20ba0 Added 'keywords' and 'eol-style' properties.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19218 a1c6a512-1295-4272-9138-f99709370657
2008-11-25 19:54:23 +00:00
Jens Arnold
d7e4e54bcb Reorder instructions to avoid pipeline stalls on ARMv6 wherever possible (sometimes using different registers to allow this). Speeds up the predictor by almost 20% on ARMv6 (overall speedup for -c1000 is 5%), and might also help a bit on ARMv5. ARMv4 speed is unaffected.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19210 a1c6a512-1295-4272-9138-f99709370657
2008-11-24 23:09:09 +00:00
Jens Arnold
3761c0108c Branch optimisation in both C (giving hints to gcc - verified using -fprofile-arcs and gcov) and asm files. Biggest effect on coldfire (-c1000: +8%, -c2000: +5%), but ARM also profits a bit (less than 1% on ARM7TDMI, around 1% on ARM1136).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19199 a1c6a512-1295-4272-9138-f99709370657
2008-11-24 18:40:49 +00:00
Jens Arnold
66c0cf2eb1 Tweak the ARMv6 filter assembly a bit further.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19198 a1c6a512-1295-4272-9138-f99709370657
2008-11-24 18:40:43 +00:00
Nils Wallménius
95cf600b6c Macros should be ALL CAPS, so rename (un)likely() to (UN)LIKELY()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19181 a1c6a512-1295-4272-9138-f99709370657
2008-11-22 16:56:20 +00:00
Nils Wallménius
1284c127f8 Introduce likely() and unlikely() macros, use to give gcc hints about which branch is likely to be taken in a conditional, use them in the midi player for a small speedup, use instead of similar EXPECT macros in tremor and use in mpegplayer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19162 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 20:20:43 +00:00
Björn Stenberg
303b455ceb Remove .a files before running ar, to avoid problems with renamed files remaining in the library.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19160 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 16:49:55 +00:00
Björn Stenberg
4846b30607 codec.link must be created with -DCODEC
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19155 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 15:54:47 +00:00
Björn Stenberg
d273f663a1 Make sure codec directory exists before creating link file.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19151 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 13:45:57 +00:00
Björn Stenberg
8ce3556236 Bug fix again. Moved cp outside of $(shell) to force make to run it sequentially.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19149 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 12:44:49 +00:00
Björn Stenberg
d96ce0a87d Bug fix for previous bug fix. Too much copy/paste.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19148 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 12:17:43 +00:00
Björn Stenberg
838c74f79d Bug fix for simulator: Plugins and codecs were objcopied isntead of left as ELF.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19147 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 12:09:36 +00:00
Björn Stenberg
c6b3d38a15 New makefile solution: A single invocation of 'make' to build the entire tree. Fully controlled dependencies give faster and more correct recompiles.
Many #include lines adjusted to conform to the new standards.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19146 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 11:27:31 +00:00
Jens Arnold
2a5053f58c Several tweaks and cleanups: * Use .rept instead of repeated macros for repeating blocks. * Use MUL (variant) instead of MLA (variant) in the first step of the ARM scalarproduct() if there's no loop. * Unroll ARM assembler functions to 32 where not already done, plus the generic scalarproduct().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19144 a1c6a512-1295-4272-9138-f99709370657
2008-11-19 21:31:33 +00:00
Jens Arnold
77934cbc96 Compile-time choice between 16 bit and 32 bit integers for the filters. 32 bit filters are faster on ARMv4 (with assembler code), so use them there. Nice speedup on PP and Gigabeat F/X.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19140 a1c6a512-1295-4272-9138-f99709370657
2008-11-19 00:34:48 +00:00
Jens Arnold
1b14167861 Centralise compile-time configuration.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19121 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 17:49:37 +00:00
Jens Arnold
66ff812c4a Make it compile again on linux...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19120 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 17:44:59 +00:00
Jens Arnold
dfafd67948 Make the standalone decoder actually work on Windows (need to open the output file in binary mode).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19119 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 17:30:02 +00:00
Jens Arnold
bd49ec97b2 Make the standalone decoder build on cygwin.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19117 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 12:59:03 +00:00
Jens Arnold
b5c0afc442 Move the contents of rangecoding.h into entropy.c, and remove the former. It was only used there, and defined some variables in the .h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19116 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 12:58:15 +00:00
Jens Arnold
5ba11af855 Avoid unnecessary register copies on ARMv5.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19112 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 10:12:38 +00:00
Dave Chapman
3e8a2bfa12 Make the standalone demac program compile again
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19107 a1c6a512-1295-4272-9138-f99709370657
2008-11-15 00:35:07 +00:00
Jens Arnold
9a0224fd28 Fix comments.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19102 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 18:20:25 +00:00
Jens Arnold
60e16e8e7a Tiny speedup by simplifying the filter wrap check.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19101 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 18:16:27 +00:00
Jens Arnold
1600e4918e Tiny performance improvement for the (not yet usable) compression levels >= -c2000 on ARM7TDMI, utilizing the multiplier's early termination.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19099 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 09:18:36 +00:00
Jens Arnold
545b51e2e4 ARMv4 unsigned integer division: Using an overflow-safe comparison method in the main calculation allows to put back the 1.5 cyle (average) optimisation. Shaved off another instruction, as we don't need the remainder. * Use the very efficient ffs algorithm from ffs-arm.S for dividing by a power of 2.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19032 a1c6a512-1295-4272-9138-f99709370657
2008-11-06 21:21:33 +00:00
Nils Wallménius
24f551bc75 Correct a comment and police comment style, no functional change
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19030 a1c6a512-1295-4272-9138-f99709370657
2008-11-06 18:49:11 +00:00
Björn Stenberg
5791d1c658 Re-added libspc which got dropped in a black hole.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19019 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 14:38:14 +00:00
Björn Stenberg
45bd7e0246 Codec lib directories renamed, except for demac.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19018 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 13:30:58 +00:00
Björn Stenberg
7ec9ceeaaa Trimmed off redundant dependencies.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19017 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 12:14:06 +00:00
Björn Stenberg
0a8879b438 Added libcodec.a as dependency for all codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19014 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 10:29:05 +00:00
Jens Arnold
0eb6ae938e This optimisation breaks for very large divisors (MSB set), so remove it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19012 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 07:36:39 +00:00
Jens Arnold
0711c795e6 Set missing SVN properties.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19010 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 00:13:36 +00:00
Jens Arnold
fe04e40be7 Further optimised (vs. libgcc) unsigned 32 bit division for ARMv4 (based on the ARMv5(+) version from libgcc), in IRAM on PP for better performance on PP5002, and put into the codeclib for possible reuse. APE -c1000 is now usable on both PP502x and PP5002 (~138% realtime, they're on par now). Gigabeat F/X should also see an APE speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19009 a1c6a512-1295-4272-9138-f99709370657
2008-11-05 00:10:05 +00:00
Jens Arnold
7a835ee0c6 Some entropy decoder tweaks. Also removed unnecessary 'tmp' variables.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19008 a1c6a512-1295-4272-9138-f99709370657
2008-11-04 23:46:04 +00:00
Michael Sevakis
effceea229 Remove the event object in the kernel since it's rather extraneous at the moment. This makes the codecs and the plugins incompatible, so update fully.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18867 a1c6a512-1295-4272-9138-f99709370657
2008-10-23 13:13:00 +00:00
Nils Wallménius
2f50cd58b9 Codec memory reorganization
Based on a patch by Tomasz Malesinski
* Merge Codec buffer and Malloc buffer into one large buffer.
* The new merged buffer is now 1MB on targets with lots of memory.
* Renamed codec_get_memory to codec_get_buffer and made it behave more. 
like plugin_get_buffer.
* Bumped Codec api and min api versions.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18834 a1c6a512-1295-4272-9138-f99709370657
2008-10-19 12:35:53 +00:00
Björn Stenberg
51b45d5602 Split id3.c/h into metadata.c/h and metadata/mp3.c. Updated all references. Moved mp3data.c/h from firmware to apps.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18814 a1c6a512-1295-4272-9138-f99709370657
2008-10-15 06:38:51 +00:00
Michael Giacomelli
1620d1fd03 Correct poor assumption on my part that WMA frames are 2048 samples long. Fixed problems with sample rates < 44.1khz. Fixes FS#9242 and FS#9439.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18805 a1c6a512-1295-4272-9138-f99709370657
2008-10-14 01:41:26 +00:00
Peter D'Hoye
528fe442fc New recording setting to configure how mono recordings are made. Previously, this was always L+R, which was kinda silly if your signal was on L only. This setting allows for L, R or L+R. SWCODEC only for now, to be added for HWCODEC (although that will only be L and L+R probably)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18745 a1c6a512-1295-4272-9138-f99709370657
2008-10-08 22:18:16 +00:00
Jens Arnold
dd7cacdc88 Another minor improvement: better pipelining and one less register used in vector addition/ subtraction.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18739 a1c6a512-1295-4272-9138-f99709370657
2008-10-07 20:52:42 +00:00
Jens Arnold
6b84f60046 APE: Further ARMv6 filter optimisations: Save 4 'ror's per round by utilising the shift feature of the 'pack halfword' instructions in the unaligned vector addition/ subtraction, better pipelining in the aligned scalarproduct(), and a new method to calculate the unaligned scalarproduct().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18736 a1c6a512-1295-4272-9138-f99709370657
2008-10-07 19:40:17 +00:00
Jens Arnold
6219f4c862 Fix warnings on non-arm targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18702 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 21:52:47 +00:00
Jens Arnold
d1b19be423 Various speedups: (1) Put actual decoding functions into IRAM on PP5002. (2) Put the insane filter buffer into IRAM on coldfire and PP502x (just for completeness, as long as there's no better use). (3) Use the ARMv6 'ssat' instruction for saturation on Gigabeat S.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18701 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 21:40:32 +00:00
Jens Arnold
66fe9a462c Speed up decoding on Gigabeat F/X and S by lowering BLOCKS_PER_LOOP. This helps keeping things in the (L1) cache (except for -c5000).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18700 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 16:34:25 +00:00
Jens Arnold
5d29f5188f Put the rangecoder struct into IRAM for a nice speedup on coldfire.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18699 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 15:54:34 +00:00
Jens Arnold
d456460707 Further speedup for ARMv6 by better pipelining in scalarproduct().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18697 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 12:30:18 +00:00
Jens Arnold
67554591d9 Fix static noise on armv6.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18694 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 10:09:57 +00:00
Jens Arnold
46bf6bd493 Add preliminary ARMv5te optimisations (verified working, but can probably be sped up further), and fix a comment in the ARMv6 code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18693 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 09:33:36 +00:00
Jens Arnold
6fcf2765dd Add armv6 specific asm code for the APE filters, speeding up -c2000..-c5000 a bit on Gigabeat S.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18692 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 08:54:34 +00:00
Michael Sevakis
2041fed03a Opening function brace style police.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18574 a1c6a512-1295-4272-9138-f99709370657
2008-09-23 09:23:32 +00:00
Michael Sevakis
5c903724fb Simplify synchronizaton for MPA codec and make it fully atomic, let synth thread exist for life of codec, do a bit of cleanup and use number of cores do determine if it is compiled as multithread instead of CPU type.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18573 a1c6a512-1295-4272-9138-f99709370657
2008-09-23 08:09:04 +00:00
Michael Giacomelli
9bc16e491d Add simple ASMed fixed point multiply functions for ARM to AC3. Gives a 38% speed up on my one sample with a Sansa.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18570 a1c6a512-1295-4272-9138-f99709370657
2008-09-23 00:51:22 +00:00
Dave Chapman
726a63f309 Correct version of memory sizes in config-logikdax.h (previous values were just experimental and should not have been committed). We also need to remove two more codecs for this codec buffer size (128KB). The m200 and DAX builds now actually build.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18568 a1c6a512-1295-4272-9138-f99709370657
2008-09-22 19:38:28 +00:00
Dave Chapman
85807cd44e Trivial changes to make the main Rockbox builds for the Sansa m200 and Logik DAX ports compile. Note that some codecs are currently disabled (due to lowmem on these targets), but that needs more work and analysis to decide how much RAM we want to allocate to codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18566 a1c6a512-1295-4272-9138-f99709370657
2008-09-22 19:15:18 +00:00
Michael Giacomelli
0097198586 Fix careless typo on my part that broke MP3 playback on Coldfire.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18564 a1c6a512-1295-4272-9138-f99709370657
2008-09-22 15:27:27 +00:00
Michael Giacomelli
3dedcfc454 Hopefully fix glitches when seeking in MP3s on dual core processors. Also, clean up initialization and preprocessor commands.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18563 a1c6a512-1295-4272-9138-f99709370657
2008-09-22 01:29:50 +00:00
Michael Giacomelli
712931ca6e Opps, fix mp3 decoding in the sim.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18559 a1c6a512-1295-4272-9138-f99709370657
2008-09-20 22:20:58 +00:00
Michael Giacomelli
4e36a2b991 Commit FS#9318 - MP3 synthesis filter on COP. Loads the MP3 synth filer on to the CoProcessor on all PortalPlayer devices, resulting in an ~90% speedup according to test_codec on the Sansa. Real world improvement is somewhat less, but still considerable. Allows MP3 decoding at 30MHz without boosting, or use of more DSP/EQ with less boosting/skipping, thus improving battery life. Minor changes to mpegplayer to retain compatibility with libmad changes. Should be no significant changes for other targets or codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18557 a1c6a512-1295-4272-9138-f99709370657
2008-09-20 22:06:12 +00:00
Michael Giacomelli
850adb40d7 More files that were missed in the previous commit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18413 a1c6a512-1295-4272-9138-f99709370657
2008-09-04 18:03:30 +00:00
Michael Giacomelli
46f85c4c54 Combine the Vorbis, WMA and AAC IMDCT functions and put them into the codeclib. Combined IMDCT is now based on existing Tremor transform. Reduces CPU for 192k AAC by 21MHz on Coldfire, and 5MHz on PP5024. WMA and Vorbis should have no functional changes since they already used this code. Further optimization is possible and would benefit all 3 codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18412 a1c6a512-1295-4272-9138-f99709370657
2008-09-04 18:02:10 +00:00
Bertrik Sikken
1e3ed74479 Made local functions static for vorbis and speex codecs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18263 a1c6a512-1295-4272-9138-f99709370657
2008-08-12 22:01:55 +00:00
Bertrik Sikken
9fe4dbf33c Removed unused abort function implementation
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18261 a1c6a512-1295-4272-9138-f99709370657
2008-08-12 21:07:15 +00:00
Michael Giacomelli
54903eb7fa Use WMA windowing optimizations for AAC. Saves about 3.5MHz on Coldfire, and about 2 MHz on ARM. Thanks to amiconn for help with Coldfire ASM improvements. Next step: dump faad IMDCT.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18238 a1c6a512-1295-4272-9138-f99709370657
2008-08-10 20:19:38 +00:00
Michael Giacomelli
d016402fec Actually put the output in IRAM this time by combining some buffers that weren't used at the same time.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18231 a1c6a512-1295-4272-9138-f99709370657
2008-08-10 02:31:01 +00:00
Jens Arnold
ee39863459 Speed up WMA decoding on coldfire (14% speedup with a 128kbps test file).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18228 a1c6a512-1295-4272-9138-f99709370657
2008-08-09 22:32:34 +00:00
Michael Giacomelli
52bdcbae85 Commit FS#9170 by Dave Hooper. Adds support for profiling on ARM, and fixes various issues with compiling profile builds. Also, note that profile_reader.pl syntax has changed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18142 a1c6a512-1295-4272-9138-f99709370657
2008-07-28 22:43:41 +00:00
Dominik Wenger
9b7566e3ec asap: fix stereo mode and hopefully fix metadata handling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18140 a1c6a512-1295-4272-9138-f99709370657
2008-07-28 19:20:40 +00:00
Dominik Wenger
073d4a71c8 Asap codec: put outputbuffer into iram. Improves performance.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18129 a1c6a512-1295-4272-9138-f99709370657
2008-07-27 14:47:43 +00:00
Dominik Wenger
ec0177dd12 Asap: fix a warning.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18124 a1c6a512-1295-4272-9138-f99709370657
2008-07-26 15:41:50 +00:00
Dominik Wenger
49d318732f set svn:keywords on the new files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18123 a1c6a512-1295-4272-9138-f99709370657
2008-07-26 15:32:08 +00:00
Dominik Wenger
ddf9fdd30f ups: forgot a Makefile.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18122 a1c6a512-1295-4272-9138-f99709370657
2008-07-26 15:24:00 +00:00
Dominik Wenger
25bb37bb68 commit asap codec. plays .sap files. At the moment it only plays the default song. So subSongs are ignored.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18121 a1c6a512-1295-4272-9138-f99709370657
2008-07-26 15:16:10 +00:00
Dominik Wenger
4e4bf82fb7 import ASAP codec (http://asap.sourceforge.net/). Plays Amiga 8bit Sound. (.sap and more formats).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18120 a1c6a512-1295-4272-9138-f99709370657
2008-07-26 15:10:26 +00:00
Michael Giacomelli
6da45d4c56 Remove unused variable.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18095 a1c6a512-1295-4272-9138-f99709370657
2008-07-19 20:52:43 +00:00
Dave Chapman
ed2936ae70 Make the standalone FLAC test program work again (compile with make -f Makefile.test).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18093 a1c6a512-1295-4272-9138-f99709370657
2008-07-19 08:41:21 +00:00
Michael Giacomelli
b9eb18260f Too much on the last commit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18085 a1c6a512-1295-4272-9138-f99709370657
2008-07-17 18:36:47 +00:00
Michael Giacomelli
1334738071 Use Tremor IMDCT for WMA. Gives a ~20% speedup on ARM and coldfire. All my test samples gave equivilent or better accuracy (>>16 bit), but there may still be problems. Code becomes somewhat less readable since the IMDCT has bits of Vorbis in it, but this is not a serious issue and the old ffmpeg transform remains in SVN if anyone wants it. Also, WMA now passes Vorbis as the fastest transform codec on ARM, although MPC remains the fastest lossy codec overall.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18084 a1c6a512-1295-4272-9138-f99709370657
2008-07-17 17:43:49 +00:00
Michael Giacomelli
95fb20b7a8 Fix warning due to typo on my part.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17948 a1c6a512-1295-4272-9138-f99709370657
2008-07-05 22:55:09 +00:00
Michael Giacomelli
2a75a9045c More WMAv1 fixes by Rafael Carre.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17943 a1c6a512-1295-4272-9138-f99709370657
2008-07-05 00:44:01 +00:00
Michael Giacomelli
b50b38ae58 Forgot that the X5/M5 use a 64/64KB IRAM split, so they can't use the previous optimization.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17854 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 19:21:38 +00:00
Michael Giacomelli
a06f651c3e Put the WMA windowing and output buffer into IRAM on targets with > 96KB of it. Improves 192k WMA decoding speed by about 2MHz on PP5024, and maybe saves some more when applying DSP.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17853 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:56:19 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Andree Buschmann
25ffa8b198 Solve possible glitch after seeking in mpc files. Documented the special treatment after seek.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17829 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 12:55:34 +00:00
Michael Giacomelli
ff9f3f8c04 Revert r14786 which resulted in a substantial reduction in accuracy to save a 7.6KB of RAM. Accuracy should be greatly improved now, and if we want to make that trade off again, I think of better ways to do it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17783 a1c6a512-1295-4272-9138-f99709370657
2008-06-24 15:39:44 +00:00
Michael Giacomelli
dab9fa1ef7 Fix for WMAv1 decoding suggested by Rafael Carre. I don't think anyone out there will ever use V1, but its worth having correct code for its own sake.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17782 a1c6a512-1295-4272-9138-f99709370657
2008-06-24 15:17:14 +00:00
Andree Buschmann
f0087f06aa Small correction to avoid overflow within calculate_V()-function. Re-enable full precision for ARM as speed-optimized version is not that much faster anymore.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17750 a1c6a512-1295-4272-9138-f99709370657
2008-06-22 09:11:06 +00:00
Andree Buschmann
1671453992 Musepack speed optimization. Speep up 64 bit precision synthesizer by another 1.5MHz through using symmetries within D[] filter coefficients. For ARM only.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17724 a1c6a512-1295-4272-9138-f99709370657
2008-06-15 12:17:22 +00:00
Andree Buschmann
80af160fbf Minor code beautification.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17720 a1c6a512-1295-4272-9138-f99709370657
2008-06-14 22:10:16 +00:00
Andree Buschmann
c0951d95b3 Resort operands in mul/smull/mla/smlal to use D[] as second multiplication operand. Additionally do not pre-scale D[] for the 64 Bit precision synthesizer. Through this the 64 Bit multiplication is speed up by 1.5MHz without loss of precision.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17719 a1c6a512-1295-4272-9138-f99709370657
2008-06-14 11:22:31 +00:00
Andree Buschmann
f52696ef8a Correct DSP_SET_SAMPLE_DEPTH to 29 for mpc (18.14 fixed point samples). Higher precision for fast 32x32=32 multiplication in dewindowing part of synthesis filter.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17708 a1c6a512-1295-4272-9138-f99709370657
2008-06-10 06:11:50 +00:00
Andree Buschmann
84ca420ad1 Small mpc quality improvement. Guarantee symmetric synthesis window for pre-shifted signed coefficients.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17704 a1c6a512-1295-4272-9138-f99709370657
2008-06-08 09:55:57 +00:00
Andree Buschmann
cc11e9466a Further changes in mpc buffered seek. Remove magical number and replace it with a better commented #define. Use shift and bit mask instead of division and modulo operations when using the seek buffer. Saves some binary size for the codec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17686 a1c6a512-1295-4272-9138-f99709370657
2008-06-04 05:41:59 +00:00
Antonius Hellmann
758072173e Some quality improvements in the mp3 encoder engine. For more details
see FS#9007.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17679 a1c6a512-1295-4272-9138-f99709370657
2008-06-02 19:28:08 +00:00
Nils Wallménius
999d3e89a8 Put pointer arrays in the correct iram section, tiny const police to make it possible too
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17677 a1c6a512-1295-4272-9138-f99709370657
2008-06-02 17:56:37 +00:00
Jens Arnold
bc97952134 libmad: PP5002 does in fact profit more from -O2 than PP502x, so use it for all targets. The previous check was half-baked (excluded iPod 3rd Gen only, but 1st/2nd Gen are also PP5002).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17675 a1c6a512-1295-4272-9138-f99709370657
2008-06-01 20:07:09 +00:00
Michael Giacomelli
54ac25fcb2 Compile libmad with -O2 for the Ipods instead of just newer PP targets. Gives a 2% speedup on Ipods, but no change elsewhere. I've left the 3G alone, but its probably worth checking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17674 a1c6a512-1295-4272-9138-f99709370657
2008-06-01 17:50:06 +00:00
Andree Buschmann
d56016addd Fix for FS#9054. MPC-playback stopped after 3:34min caused by out-of-bounds access.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17671 a1c6a512-1295-4272-9138-f99709370657
2008-05-31 14:05:33 +00:00
Robert Kukla
d23f78b1c6 fix FS#9042 - MOD codec: SoundTracker variant MOD files will not play
- remove dubious format check and assume no formattag -> Soundtracker
- change method for remembering "periods converted" as the old one would corrupt Soundtracker files

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17635 a1c6a512-1295-4272-9138-f99709370657
2008-05-26 23:00:07 +00:00
Andree Buschmann
5670ca18bb Fixes backward seeking on resumed files and backward seeking to positions to which formerly was seeked forward to (sounds complicated and it is).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17606 a1c6a512-1295-4272-9138-f99709370657
2008-05-22 12:32:28 +00:00
Andree Buschmann
6a74a5dd3b Commit FS#9015. Rework of musepack buffered seek. Now a static seek buffer of 8192 entries is used. The seeking precision is adapted to the length of the file (e.g. 26ms for files <=3.5min and 0.4s for files ~60min).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17604 a1c6a512-1295-4272-9138-f99709370657
2008-05-22 09:58:19 +00:00
Thom Johansen
c0f7eb9f9d FS #8680. MOD codec by Rainer Sinsch.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17595 a1c6a512-1295-4272-9138-f99709370657
2008-05-21 11:19:58 +00:00
Andree Buschmann
1d28fe7d79 Musepack seek hotfix. Do not dynamically allocate seek buffer but use a buffer of constant size (~28.5min). Files larger than this will still not seek properly. Some additional rework has to be done for the seek buffer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17584 a1c6a512-1295-4272-9138-f99709370657
2008-05-19 18:06:00 +00:00
Andree Buschmann
18f13b149a Move ARM assembler of musepack synthesis filter to own file. Additionally add ICONST_ATTR to noise generator data.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17562 a1c6a512-1295-4272-9138-f99709370657
2008-05-17 21:26:34 +00:00