Andree Buschmann
800e3d9a97
Major optimization of atrac3 codec for Coldfire targets. Moving several number cruncher arrays to IRAM. Decoder is sped up by +50% on h300, decoder now finally is realtime on Coldfire targets as well.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24677 a1c6a512-1295-4272-9138-f99709370657
2010-02-15 22:38:01 +00:00
Andree Buschmann
86fc47c33a
Minor atrac3 codec optimization. Refacturate requantization of spectral lines, unroll loops.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24672 a1c6a512-1295-4272-9138-f99709370657
2010-02-15 20:20:52 +00:00
Andree Buschmann
51a8be1a0f
Further optimization of atrac3 codec. Refacturate gainCompensateAndOverlap(), avoid multiplication if not needed, unroll loops. Speeds up codec by 1.1 MHz (+2%) on ARM.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24668 a1c6a512-1295-4272-9138-f99709370657
2010-02-15 16:11:49 +00:00
Andree Buschmann
ad1ba429b9
Minor speed up of atrac3 codec. Applying 2 bits fract part to scalefactors instead of brute force adding it to the full spectrum. Move decodeSpectrum() to IRAM. Speeds up codec by 1.2 MHz (+2%) on ARM.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24667 a1c6a512-1295-4272-9138-f99709370657
2010-02-15 13:14:43 +00:00
Andree Buschmann
57461d7c4f
Work on atrac Joint Stereo mode. Correct calculation in getChannelWeights(), introduce lookup table and remove obsolete code. Optimize interpolation macro.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24665 a1c6a512-1295-4272-9138-f99709370657
2010-02-15 13:00:02 +00:00
Jens Arnold
b8eb272e48
libdemac: Add x86/x86_64 MMX asm for the filters. Not relevant for target but speeds up decoding on x86/x86_64 sims. Average speedup ranges from 25% for -c2000 to 3 times for -c5000; on Intel Atom it's even 45% for -c2000 to 6 times for -c5000.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24663 a1c6a512-1295-4272-9138-f99709370657
2010-02-15 01:27:04 +00:00
Mohamed Tarek
1bef4c6650
revert last commit (r24660). There was a mistake in the location of the
...
shifts leading to a deteriorated sound quality for some samples.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24662 a1c6a512-1295-4272-9138-f99709370657
2010-02-15 00:04:33 +00:00
Mohamed Tarek
b540be8f4b
Fold a 2-bit shift into decodeSpectrum(), saves 1MHz on ARM, +2%
...
speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24660 a1c6a512-1295-4272-9138-f99709370657
2010-02-14 23:41:32 +00:00
Andree Buschmann
f5a0d61a1b
Further optimization and minor clean up of atrac codec: Unroll iqmf_dewindowing for non-ARM speeds up decoder by +10% on H300. Removed some non-used arrays. Codec is still not fully realtime on Coldfire targets.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24648 a1c6a512-1295-4272-9138-f99709370657
2010-02-14 14:38:18 +00:00
Mohamed Tarek
8722c6f2bb
Make deceodeSpectrum() store the spectral coefficients of odd bands in reverse order, rather than having to reverse them in IMLT(). Also saves 0.11MHz, ~0.16% speedup on PP5024.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24641 a1c6a512-1295-4272-9138-f99709370657
2010-02-14 01:59:14 +00:00
Andree Buschmann
35024bd54e
Speed up atrac codec for ARM through simple loop unrolling. Saves 9 MHz on PP5022 (14% speed up).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24637 a1c6a512-1295-4272-9138-f99709370657
2010-02-13 22:01:24 +00:00
Mohamed Tarek
23ac6ffaa1
Add support for Sony OMA file format. Currently only supports ATRAC3 (without DRM), and seeks. Tested on sansa
...
e200.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24615 a1c6a512-1295-4272-9138-f99709370657
2010-02-12 03:21:37 +00:00
Jens Arnold
6edf71e9b9
Remove leftover from before make system rework.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24602 a1c6a512-1295-4272-9138-f99709370657
2010-02-11 20:33:34 +00:00
Jens Arnold
0a291fff12
APE: Fused vector math for the filters on ARMv5te. Speedup on Cowon D2 is ~4% for -c2000..-c4000 (less for -c5000). Thanks to Frank Gevaerts for testing.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24590 a1c6a512-1295-4272-9138-f99709370657
2010-02-10 23:23:17 +00:00
Jens Arnold
1cc4bd8f86
APE: Fused vector math for the filters on ARMv6. Speedup is ~2.5% for -c2000, ~7% for -c3000 and higher.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24569 a1c6a512-1295-4272-9138-f99709370657
2010-02-08 21:59:24 +00:00
Dominik Wenger
ba45adbafc
correctly set playback time in the asap codec. (metadata parser might not do it for all fileformats).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24567 a1c6a512-1295-4272-9138-f99709370657
2010-02-08 16:48:56 +00:00
Andree Buschmann
4d5e88245a
Remove more tabs
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24550 a1c6a512-1295-4272-9138-f99709370657
2010-02-07 18:38:47 +00:00
Andree Buschmann
cc572378fc
Submit FS#10974: Speed up mpc-codec through changing the dct32-algorithm. +5% on PP5020, +12% on M5.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24544 a1c6a512-1295-4272-9138-f99709370657
2010-02-07 14:04:46 +00:00
Jens Arnold
69fe1ad830
Put back the insane buffer where it belongs on non-ARM, and simplify the selection.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24512 a1c6a512-1295-4272-9138-f99709370657
2010-02-04 20:20:10 +00:00
Dominik Wenger
35472fe7f1
sync asap codec to ASAP 2.1
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24511 a1c6a512-1295-4272-9138-f99709370657
2010-02-04 17:31:10 +00:00
Andrew Mahone
723d5c6da6
Fix yellow: add newline at EOF in udiv32_arm-pre.S
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24508 a1c6a512-1295-4272-9138-f99709370657
2010-02-04 08:55:36 +00:00
Andrew Mahone
b1caf4a07d
Use all available codec iram for reciprocal table in APE codec on ARMv4. Done by linking first with the table empty to determine free space, then sizing table to fill it.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24507 a1c6a512-1295-4272-9138-f99709370657
2010-02-04 08:45:38 +00:00
Andrew Mahone
8ed7bda64c
Move udiv32_arm.S into libdemac, as this divider is specialized for the APE codec and an optimized divider is already provided for general use in codeclib.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24506 a1c6a512-1295-4272-9138-f99709370657
2010-02-04 05:49:37 +00:00
Tom Ross
db64bf9ea4
FS #10690 : Add support for 24 bit ALAC files based on libalac 0.2.0
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24475 a1c6a512-1295-4272-9138-f99709370657
2010-02-03 00:37:24 +00:00
Jens Arnold
b2ffb3e08f
Reduce reciprocal table size a bit on Nano 2nd Gen as well (fix red).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24474 a1c6a512-1295-4272-9138-f99709370657
2010-02-02 23:06:28 +00:00
Jens Arnold
9f6586698a
APE codec: Speed up decoding of -c2000 and higher on ARMv4 and coldfire by fusing vector math for the filters. Speedup is roughly 3.5% for -c2000, 8% for -c3000 and 12% for -c4000. To be extended to other architectures.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24473 a1c6a512-1295-4272-9138-f99709370657
2010-02-02 22:50:21 +00:00
Andrew Mahone
bff5a35c3c
FS#10943, optimized division and clz routines to replace libgcc routines for ARM. Replaces libgcc support functions for unsigned and signed 32-bit division on ARMv4 and up, and leading-zero count on ARMv4.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24432 a1c6a512-1295-4272-9138-f99709370657
2010-02-01 01:36:46 +00:00
Andree Buschmann
db4d7a313e
1st part of fix for FS#10637. Correction of mpc header parsing.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24408 a1c6a512-1295-4272-9138-f99709370657
2010-01-31 11:43:42 +00:00
Andrew Mahone
436f4d3a20
Improve libdemac SATURATE slightly on ARMv4/5, move filter buffers and code out of IRAM for sizes that aren't near realtime and extend udiv32_arm reciprocal table.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24376 a1c6a512-1295-4272-9138-f99709370657
2010-01-30 02:20:54 +00:00
Bertrik Sikken
e3e436e2b5
libpcm: add missing #include and set svn:keywords
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24365 a1c6a512-1295-4272-9138-f99709370657
2010-01-28 17:28:27 +00:00
Andrew Mahone
2347a7dc65
Small fix for ARMv5e/v6 APE divider, correct large-divisor path and remove specialized version of it for small dividend, as the test and branch can't be fit into delay slots on that path.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24360 a1c6a512-1295-4272-9138-f99709370657
2010-01-28 09:04:38 +00:00
Andrew Mahone
a6bd83a315
Fix red: smlal operand ordering in udiv32_arm.S
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24355 a1c6a512-1295-4272-9138-f99709370657
2010-01-28 02:40:33 +00:00
Andrew Mahone
e76f30a57c
Improvements to specialized dividers for APE codec:
...
* Use Newton-Raphson divider on ARMv5e and ARMv6, about 7% speedup on Gigabeat S.
* On ARMv4 targets using IRAM, remove insane filter buffer from IRAM, fill available IRAM with LUT of reciprocals for small divisors - speedup varies according to target and available IRAM, APE normal sample is approx. 109% RT on e200.
* Rename apps/codecs/lib/udiv32_armv4.S to apps/codecs/lib/udiv32_arm.S, which includes dividers for all ARM targets specialized for APE.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24354 a1c6a512-1295-4272-9138-f99709370657
2010-01-28 02:28:52 +00:00
Michael Giacomelli
32265959c8
Try one more time to fix bitness warnings in WAV.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24349 a1c6a512-1295-4272-9138-f99709370657
2010-01-27 18:12:42 +00:00
Michael Giacomelli
e04e2938e7
Commit FS#10423 by Yoshihisa Uchida. Adds support for floating point PCM to libpcm.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24348 a1c6a512-1295-4272-9138-f99709370657
2010-01-27 18:10:08 +00:00
Michael Giacomelli
4de4a3fa1c
Fix warnings on 32 bit sim.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24347 a1c6a512-1295-4272-9138-f99709370657
2010-01-27 18:05:28 +00:00
Michael Giacomelli
c9183bf15e
Commit FS#10422 by Yoshihisa Uchida. Seperates WAV and AIFF parsing from PCM decoding by introducing libpcm, a library for decoding linear and non-uniform PCM independently of the container format.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24346 a1c6a512-1295-4272-9138-f99709370657
2010-01-27 17:25:10 +00:00
Rafaël Carré
a9e2a7148f
*.link: depends on config file where plugin buffer size is set
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24322 a1c6a512-1295-4272-9138-f99709370657
2010-01-24 15:32:23 +00:00
Nils Wallménius
135d983433
This should fix FS#10917, and also fix channel swapping i introduced in r23784. Lets hope the third time's the charm
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24271 a1c6a512-1295-4272-9138-f99709370657
2010-01-18 04:32:47 +00:00
Nils Wallménius
cf39c86d3d
This should fix FS#10917, unfortunately i have no target evailable to test on
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24270 a1c6a512-1295-4272-9138-f99709370657
2010-01-18 03:08:17 +00:00
Nils Wallménius
f9b05db006
Fix typo causing l+r mono encoding to use only one channel
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24269 a1c6a512-1295-4272-9138-f99709370657
2010-01-18 03:00:59 +00:00
Andrew Mahone
5313bf52b5
Invert divisor earlier in udiv32_arm, allowing the div0 test to be done before entering the 32-bit divide portion of the code, and making the handling of div0 simpler.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24166 a1c6a512-1295-4272-9138-f99709370657
2010-01-03 15:57:03 +00:00
Bertrik Sikken
6fef14bd16
Set svn:keywords property on .c and .h files that didn't already have it. Correct svn:executable property on some files.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24165 a1c6a512-1295-4272-9138-f99709370657
2010-01-03 14:28:09 +00:00
Andree Buschmann
5cebdcd06b
More tabs removed
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24157 a1c6a512-1295-4272-9138-f99709370657
2010-01-03 11:12:31 +00:00
Andrew Mahone
686c4e53ce
Use long jump to reach __div0 from udiv32_arm if building with IRAM and without EABI.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24152 a1c6a512-1295-4272-9138-f99709370657
2010-01-03 04:48:19 +00:00
Andrew Mahone
c1f4d4037a
More comments for udiv32_armv4.S, reduce zero divisor test to one cycle for the skipped branch by setting flags when inverting divisor, 32-bit numerators are handled by calling the 31-bit divider and fixing the results.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24151 a1c6a512-1295-4272-9138-f99709370657
2010-01-03 04:30:13 +00:00
Michael Giacomelli
ce8640d7b8
Second part of FS#10832 by Juliusz Chroboczek. Ignore empty mdat chunks in mp4 files.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24148 a1c6a512-1295-4272-9138-f99709370657
2010-01-02 21:02:13 +00:00
Michael Giacomelli
008c368c87
Commit first part of FS#10832 by Juliusz Chroboczek. Allows playback of unstreamable AAC/ALAC files by stepping through the file to find the index, potientially rebuffering. This is likely to impose a battery life hit on files which are unstreamable and not much smaller then the buffer, but should not impact streamable files at all.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24147 a1c6a512-1295-4272-9138-f99709370657
2010-01-02 20:54:55 +00:00
Andrew Mahone
d03768bc14
Add missing EOF newline.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24143 a1c6a512-1295-4272-9138-f99709370657
2010-01-02 15:25:34 +00:00
Andrew Mahone
934514558b
Remove special cases from udiv32_armv4.S, except for zero divisor and large numerator. Improvement of 1.23MHz on e200 with ape normal.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24142 a1c6a512-1295-4272-9138-f99709370657
2010-01-02 15:15:21 +00:00
Bertrik Sikken
5c4ef78cc9
Simplify some expressions using the ? operator
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24136 a1c6a512-1295-4272-9138-f99709370657
2010-01-01 22:47:25 +00:00
Andrew Mahone
822abc1236
Add 31/31-bit unsigned division in apps/codecs/lib/udiv_arm.S, with 2 cycles / iteration, falling back to previous 32-bit, 3 cycle / iteration code when needed (well under 1% of divisions in sample file). APE normal sample is now 96.90% realtime, approx 1.3% improved vs svn. TODO: unify divisor normalization for both trial subtraction routines, possibly use divisor bits to select 31- vs 32-bit division.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24130 a1c6a512-1295-4272-9138-f99709370657
2009-12-31 08:32:15 +00:00
Jens Arnold
9e45b27e08
Assembler optimised bitreverse for ARM, again a little bit faster and smaller. * Separated 'x' and 'ret' gives gcc a bit more freedom regarding register allocation (except on coldfire where it doesn't matter).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24107 a1c6a512-1295-4272-9138-f99709370657
2009-12-23 23:44:56 +00:00
Nils Wallménius
87ecc7020e
Improved bitrev with approach suggested by Jens Arnold, gives 0.5%-1% speedup for tremor decoding on sansa c200 (PP) and a tiny speedup on coldfire as well
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24102 a1c6a512-1295-4272-9138-f99709370657
2009-12-23 18:05:11 +00:00
Nils Wallménius
7b24423180
Use optimised byteswap function in bitrev for a tiny speedup on coldfire and pp and about 1-2% speedup on gigabeat s (due to the armv6 rev instruction)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24095 a1c6a512-1295-4272-9138-f99709370657
2009-12-21 19:52:01 +00:00
Michael Giacomelli
d6ae8edc13
Commit both patches in FS#10833 - Protect against division by zero in AAC (mp4) codec by Juliusz Chroboczek. Adds some return value checking so that faad errors don't crash rockbox when decoding broken or unsupported files.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23983 a1c6a512-1295-4272-9138-f99709370657
2009-12-14 01:09:01 +00:00
Nils Wallménius
b2a27b4280
Improved bitrev12, using a larger LUT to save one lookup, speeds up vorbis about 2% on beast, about 0.5% on h300
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23973 a1c6a512-1295-4272-9138-f99709370657
2009-12-13 15:00:20 +00:00
Andrew Mahone
5783bef32c
Fix red, DESCALE_SHIFT macro was missing a right-parenthesis.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23968 a1c6a512-1295-4272-9138-f99709370657
2009-12-13 04:06:45 +00:00
Andrew Mahone
af5bad46d8
Libfaad pow2/log2 improvements:
...
Correct pow2_* to calculate correct output for input < 0.0 or between 0.0 and 1.0 instead of returning 0. This will change output, but the float version of this codec uses pow(2.0,x) in place of these functions, so this behavior was probably a bug
Replace 64-bit multiply in pow2_* with left or right shift by whole part of input, rounding if shifting right. An ARM-specific optimized version is provided as a C inline function, other targets use a C macro.
Increase constant size of table for pow2 to improve accuracy, also avoid early truncation in linear interpolation of result.
Move constant tables for pow2 and log2 to iram.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23967 a1c6a512-1295-4272-9138-f99709370657
2009-12-13 03:45:40 +00:00
Nils Wallménius
de159ceb3d
Comment var only used by already commented out debug code, delete #if 0'ed block move a comment and fix some broken indentation
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23945 a1c6a512-1295-4272-9138-f99709370657
2009-12-12 16:37:44 +00:00
Nils Wallménius
c0dc3c7a74
Remove inline asm that hasn't been useful for years, no speed difference
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23928 a1c6a512-1295-4272-9138-f99709370657
2009-12-10 21:43:59 +00:00
Andrew Mahone
bafe14db55
Remove some sample functions from codeclib - these were for verifying the generated asm for bs_generic and never intended for use.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23911 a1c6a512-1295-4272-9138-f99709370657
2009-12-09 17:13:06 +00:00
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