Commit graph

1082 commits

Author SHA1 Message Date
Dave Hooper
e90deded40 Remove ICONST_ATTR from some tables, to fit into PP5020 iram (now that mdct is in iram it's a bit of a squeeze). (per Buschel on irc)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24787 a1c6a512-1295-4272-9138-f99709370657
2010-02-20 12:44:52 +00:00
Dave Hooper
730a618fae Adding ICODE for imdct (and its constituent ifft bits) gives 0.5MHz boost on arm (ipod video) and about 5MHz boost on coldfire (H120)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24786 a1c6a512-1295-4272-9138-f99709370657
2010-02-20 11:00:16 +00:00
Yoshihisa Uchida
9f63f4f2fc libpcm: linear pcm decode logic separates according to each bitspersample, endian, and signess.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24785 a1c6a512-1295-4272-9138-f99709370657
2010-02-20 10:15:36 +00:00
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