Andrew Mahone
950b2dfa2c
Clarify comments in ARMv6 divider regarding special-case handling of large (high bit set) numerators.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24783 a1c6a512-1295-4272-9138-f99709370657
2010-02-20 06:29:23 +00:00
Yoshihisa Uchida
3716abba92
commit FS#10424 and FS#10425
...
- wav(RIFF) supports Microsoft ADPCM, Dialogic OKI ADPCM, YAMAHA ADPCM, Adobe SWF ADPCM.
- AIFF supports QuickTime IMA ADPCM.
- DVI ADPCM(IMA ADPCM) reworks.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24782 a1c6a512-1295-4272-9138-f99709370657
2010-02-20 02:04:56 +00:00
Michael Giacomelli
93caf52db5
Use new MDCT library for libfaad. Speeds up AAC-LC by 2.5MHz.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24781 a1c6a512-1295-4272-9138-f99709370657
2010-02-20 00:29:31 +00:00
Dave Hooper
3a9852be1c
I don't yet fully understand why this is required, but without it the output is signed-inverted (compared to e.g. the output of oggdec). ac3 confirmed to be ok so the problem must be in the imdct not the ifft. but the algo seems correct (in that seems same as original ffmpeg version)..
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24739 a1c6a512-1295-4272-9138-f99709370657
2010-02-18 00:14:13 +00:00
Dave Hooper
eb943e9495
split_radix_permutation also unused (since now a hardcoded table) - but left intact so we can/could regenerate the table
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24716 a1c6a512-1295-4272-9138-f99709370657
2010-02-17 01:09:45 +00:00
Dave Hooper
7f01b7479a
FIx typo in coldfire asm which caused yellow
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24715 a1c6a512-1295-4272-9138-f99709370657
2010-02-17 01:00:45 +00:00
Dave Hooper
6552412027
Fix yellow (bad function declaration)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24714 a1c6a512-1295-4272-9138-f99709370657
2010-02-17 00:58:54 +00:00
Dave Hooper
a5ca79edb5
Fix yellow (ff_fft_permute_c an unused function in codeclib)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24713 a1c6a512-1295-4272-9138-f99709370657
2010-02-17 00:56:57 +00:00
Dave Hooper
42774d3128
Merge from branches/mdctexp - faster ifft+imdct in codec lib
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24712 a1c6a512-1295-4272-9138-f99709370657
2010-02-17 00:49:53 +00:00
Mohamed Tarek
2c25fa88a5
Add the Rockbox GNU header to some files in libatrac.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24692 a1c6a512-1295-4272-9138-f99709370657
2010-02-16 10:35:22 +00:00
Mohamed Tarek
82f05895af
Initial support for ATRAC3 streams in wav containers.
...
Current state :
- Playback and seeking are possible.
- We now support ATRAC3 in any of its possible containers (wav/at3, oma/aa3, and rm/ra).
TODO :
- Fix joint-stereo decoding for ATRAC3 - the decoder currently produces lots of glitches.
- Rename atrac3_oma.c since it works for both oma and wav containers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24689 a1c6a512-1295-4272-9138-f99709370657
2010-02-16 03:34:39 +00:00
Mohamed Tarek
6e5dcaed29
Fix yellow.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24684 a1c6a512-1295-4272-9138-f99709370657
2010-02-16 02:00:28 +00:00
Mohamed Tarek
2e314093c8
"Detach" ATRAC3 from RM. Since ATRAC3 isn't really specific to RM, it must not be obligatory to initialize the decoder through RMContext.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24682 a1c6a512-1295-4272-9138-f99709370657
2010-02-16 01:47:22 +00:00
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