Commit graph

1154 commits

Author SHA1 Message Date
Andrew Mahone
85aad9b397 Extend av_log2 in codeclib into a generic for scanning for set bits, which can provide either log2 or leading-zero-count output, and can force mapping 0 input to 0 output if needed (otherwise 0 input produces undefined result). Replace av_log2 in lib/codeclib.h, floor_log2 and wl_min_lzc in libfaad/common.c and common.h, and count_leading_zeros in libalac/alac.c with macros using bs_generic.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23903 a1c6a512-1295-4272-9138-f99709370657
2009-12-09 02:24:45 +00:00
Andrew Mahone
50512cdeac Fix red: av_log2 undefined for ARM_ARCH <= 4, missing codeclib.h includes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23869 a1c6a512-1295-4272-9138-f99709370657
2009-12-06 04:43:23 +00:00
Nils Wallménius
cd22b32450 slightly faster asm av_log2 for armv6 (currently only Gigabeat S)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23868 a1c6a512-1295-4272-9138-f99709370657
2009-12-06 02:03:03 +00:00
Andrew Mahone
491e0978ec Fix yellow: mixed signed/unsigned in conditional.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23867 a1c6a512-1295-4272-9138-f99709370657
2009-12-05 21:53:49 +00:00
Andrew Mahone
2aeb6c781d Slightly improve av_log2 in codeclib on ARMv6.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23866 a1c6a512-1295-4272-9138-f99709370657
2009-12-05 21:32:23 +00:00
Nils Wallménius
b9d7f98f8c Move av_log2 function and asociated table to the codec lib, remove 3 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-12-05 16:47:43 +00:00
Nils Wallménius
5750daa2ac Oops, correct typo that made the previous commit useless
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23794 a1c6a512-1295-4272-9138-f99709370657
2009-11-29 21:41:58 +00:00
Nils Wallménius
3cc0796a37 Disable strict aliasing for speex for now to get rid of warnings, some very nasty casting in here
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23793 a1c6a512-1295-4272-9138-f99709370657
2009-11-29 21:37:57 +00:00
Nils Wallménius
d502086e7f Fix yellow by making the ifdef hell slightly worse
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23790 a1c6a512-1295-4272-9138-f99709370657
2009-11-29 21:22:23 +00:00
Nils Wallménius
13f08d70fd Enable strict aliasing optimizations for codecs on gcc versions >= 4.0, fix alising violations that this uncovered, gives small speedups for most codecs, FS#10801
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23784 a1c6a512-1295-4272-9138-f99709370657
2009-11-29 18:11:49 +00:00
Nils Wallménius
685ca2672e Use clz instruction to calculate integer logarithms, speeds up decoding of one flac 8 sample by 12%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23783 a1c6a512-1295-4272-9138-f99709370657
2009-11-29 15:21:00 +00:00
Nils Wallménius
07fe3562a1 #if 0 out unused stuff
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23782 a1c6a512-1295-4272-9138-f99709370657
2009-11-29 14:29:18 +00:00
Nils Wallménius
727984b4ff Use clz instruction to count leading zeroes on armv5+, gives about 2% speedup with one sample on the Gigabeat S
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23781 a1c6a512-1295-4272-9138-f99709370657
2009-11-29 10:57:21 +00:00
Nils Wallménius
3c1cffae70 These macros have been replaced by (UN)LIKELY macros and were not used anywhere.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23780 a1c6a512-1295-4272-9138-f99709370657
2009-11-29 09:44:15 +00:00
Magnus Holmgren
6b6463c8b7 Add support for the MP4 file type 'isom'. Based on FS#10790 with an additional fix, making the sample file play. Also updated some debug prints.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23708 a1c6a512-1295-4272-9138-f99709370657
2009-11-22 16:37:36 +00:00
Andrew Mahone
36deb0a315 Fix warning on new gcc for checking value or truth of undefined _WIN32 and MIPS.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23670 a1c6a512-1295-4272-9138-f99709370657
2009-11-20 02:51:10 +00:00
Nils Wallménius
ad9f554eb2 Avoid possible memory corruption
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23666 a1c6a512-1295-4272-9138-f99709370657
2009-11-19 17:12:58 +00:00
Mohamed Tarek
a67deef2b6 Set svn:keywords property.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23660 a1c6a512-1295-4272-9138-f99709370657
2009-11-18 01:00:43 +00:00
Mohamed Tarek
9669bbc135 Handle mid-track resumes in RM.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23659 a1c6a512-1295-4272-9138-f99709370657
2009-11-18 00:41:46 +00:00
Michael Sparmann
099df2fb71 Make the codecs use more IRAM on S5L870x, as we have plenty of it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23594 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 20:01:07 +00:00
Michael Giacomelli
b92e778fd7 Reenable -O2 for Wavpack, which appears to have been lost during makefile clean up. Improves wavpack decoding performance by several MHz on ARM and Coldfire.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23566 a1c6a512-1295-4272-9138-f99709370657
2009-11-08 07:04:14 +00:00
Dave Chapman
9546e4093d Add STATICIRAM_NOT_MDCT as a workaround for the gcc bug where static functions are not long called. This is currently only an issue on the Nano2G (S5L8701 CPU) which is the only ARM target with enough IRAM for these functions. Also add multiple-inclusion protection for config-tremor.h. All plugins and codecs now compile cleanly for the Nano2G.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22914 a1c6a512-1295-4272-9138-f99709370657
2009-10-04 08:49:23 +00:00
Mohamed Tarek
f0c6c88f6d Smarter check for failed packet parsing in RM. Also fixes a bug in playback where sometimes "codec failure" is splashed at the end of playback.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22880 a1c6a512-1295-4272-9138-f99709370657
2009-10-03 00:18:42 +00:00
Michael Giacomelli
e4fb3dc14c Commit unrolled version of WMA's exponent decode taken from latest ffmpeg. Gives a 1% speedup @ 192kbps.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22871 a1c6a512-1295-4272-9138-f99709370657
2009-10-02 00:47:15 +00:00
Jens Arnold
5f3fbd1bb9 Actually qualify the tables put into .irodata in r22849 as 'const'. Also mark fftorder[] as 'const'.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22860 a1c6a512-1295-4272-9138-f99709370657
2009-09-30 19:36:06 +00:00
Tomer Shalev
a0eadade30 FS#10122 - Fix wrong format type of logf functions in speex.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22857 a1c6a512-1295-4272-9138-f99709370657
2009-09-30 12:56:33 +00:00
Michael Giacomelli
065e8e082a Change IDATA to ICONST for lookup tables since they're actually constant.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22849 a1c6a512-1295-4272-9138-f99709370657
2009-09-29 01:34:11 +00:00
Magnus Holmgren
f733ec194f Fix for FS#10492, by Aoyumi: Data abort errors when playing some Vorbis files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22653 a1c6a512-1295-4272-9138-f99709370657
2009-09-07 19:39:51 +00:00
Andree Buschmann
2dbb424eb9 Further performance optimization of the atrac3 decoder. Rework the internal sample representation and usage of dsp routines. For now a quick and dirty solution is used to add a fract part of 2 bits. Through this several buffers and functions as well as copy loops could be removed. Furthermore add some ASM for coldfire and place some additional data in IRAM on PP5022/24 and X5/M5. Speedup on ARM: +3%, speedup on Coldfire: +639%. Both ARM and Coldfire can decode in realtime now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22561 a1c6a512-1295-4272-9138-f99709370657
2009-08-30 14:14:22 +00:00
Andree Buschmann
f62125bb72 fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22549 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 19:57:21 +00:00
Andree Buschmann
f4774bf5bf Submit interim version of FS#10565. Performance optimization of atrac3 decoder for ARM. Introduce ASM routines for multiplications and two synthesis loops, refactured parts of synthesis and windowing. Speeds up decoding by a factor of 2.4 on PP502x.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22548 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 19:44:27 +00:00
Dave Hooper
d43bcb7dc4 C code is NOT faster on S3C2440 - tested by AlexP on r22529
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22530 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 13:03:40 +00:00
Magnus Holmgren
0dad8d5ae9 Don't know why svn decided to delete tlsf/src... Maybe due to some aborted tests I did to see where it would be best to place TLSF.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22529 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 12:42:47 +00:00
Magnus Holmgren
3fad1523c7 FS#10466: Introduce a real malloc for tremor.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22528 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 12:23:40 +00:00
Dave Hooper
260ed99139 Removed remaining MB usage
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22527 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 12:20:04 +00:00
Dave Hooper
e9dcb0f145 Fix condition code clobbers (and one TAB) for inline arm code in lib and libtremor
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22526 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 12:07:32 +00:00
Dave Hooper
59cdbf5efc Rerrange some registers in butterfly_generic to combine some 2-word stores into 4-word stores and remove some redundant mov instructions. Shave off some additional instructions (stacking and additions) in butterfly_32 by getting butterfly_8 and butterfly_16 to do the address incrementing for us. Add a few comments.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22525 a1c6a512-1295-4272-9138-f99709370657
2009-08-29 11:50:15 +00:00
Michael Giacomelli
873d266199 Add stdint.h to the codeclib when compiled outside of rockbox so that int32_t is typedef'ed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22502 a1c6a512-1295-4272-9138-f99709370657
2009-08-24 18:14:56 +00:00
Mohamed Tarek
950534b13c Put ATRAC3Context in IRAM, 2.5% speedup on PP502x, 20% on ColdFire.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22374 a1c6a512-1295-4272-9138-f99709370657
2009-08-17 10:16:59 +00:00
Mohamed Tarek
042bbad6d6 revert r22337 for libwma for now since it broke wma playback on ARM due to alignment issues.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22347 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 15:36:32 +00:00
Mohamed Tarek
6c5714a6ee Put the lookup tables into iram ; 2% speedup on ColdFire 1% on ARM
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22345 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 12:51:17 +00:00
Jens Arnold
3d6f86eb2f Make those functions actually inline. Around 20% speedup on coldfire, 10% speedup on arm.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22344 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 12:41:04 +00:00
Dominik Riebeling
6e5e625596 Remove svn:executable on source file and set keywords.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22342 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 12:24:50 +00:00
Jens Arnold
aa24b677e0 Revert r22339 as it causes immediate stack overflow on target, at least on coldfire.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22341 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 11:32:41 +00:00
Michael Giacomelli
3b81dd4749 Put QMF coefficients into IRAM. Update test program to still compile with IBSS_ATTR defined.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22340 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 04:05:40 +00:00
Michael Giacomelli
415546921b Make the IMDCT temporary working buffer a local variable instead of keeping one for each channel. Saves 4KB of RAM.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22339 a1c6a512-1295-4272-9138-f99709370657
2009-08-16 02:24:09 +00:00
Mohamed Tarek
c74319b2f4 Fix red.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22338 a1c6a512-1295-4272-9138-f99709370657
2009-08-15 22:20:25 +00:00
Mohamed Tarek
adf3f09251 Move bitstream.[ch] to codecs/lib/ffmpeg_bitstream.[ch] to avoid duplicate copies across codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22337 a1c6a512-1295-4272-9138-f99709370657
2009-08-15 22:06:42 +00:00
Mohamed Tarek
2402aecbb5 remove duplicates of bswap.h from libwma, libcook and libatrac. Create 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-15 16:50:52 +00:00
Mohamed Tarek
bd4fc82b3b Fix handling of unaligned input buffers in libatrac.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22322 a1c6a512-1295-4272-9138-f99709370657
2009-08-15 14:52:28 +00:00
Mohamed Tarek
2ae585273e Correct the ffmpeg revision of libatrac and write more import details.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22316 a1c6a512-1295-4272-9138-f99709370657
2009-08-15 09:44:39 +00:00
Mohamed Tarek
1b87b45e40 Fix yellow.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22312 a1c6a512-1295-4272-9138-f99709370657
2009-08-14 17:43:19 +00:00
Mohamed Tarek
685628cf18 Support for playback of atrac3 audio in rm, in sim.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22311 a1c6a512-1295-4272-9138-f99709370657
2009-08-14 17:36:57 +00:00
Mohamed Tarek
4f26112b1b Revert the asm fixmul stuff for now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22310 a1c6a512-1295-4272-9138-f99709370657
2009-08-14 17:31:08 +00:00
Mohamed Tarek
3ee45ab7be Use the bytestream reading functions form librm and drop bytestream.h and libavutil/
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22309 a1c6a512-1295-4272-9138-f99709370657
2009-08-14 15:26:04 +00:00
Mohamed Tarek
466b2ae248 Factor out bytestream reading functions needed in rm parsers/codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22308 a1c6a512-1295-4272-9138-f99709370657
2009-08-14 15:13:14 +00:00
Mohamed Tarek
0b6aa38516 Move main() outside atrac3.c and create atrac3.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22307 a1c6a512-1295-4272-9138-f99709370657
2009-08-14 08:24:39 +00:00
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