Andree Buschmann
4b49ef2ade
Another minor ARM speedup for libwmapro. Drop lsb of multiplication result in fixmul31(). The difference to current implementation is +/-1 in the output signal. Same routines are used for other codecs and in the codec lib as well.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27728 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 21:59:29 +00:00
Andree Buschmann
cc7fac27b5
Minor of libwmapro on ARM. Swap operands for fixmul31, is 1% faster.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27727 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 21:43:49 +00:00
Mohamed Tarek
13167d2389
Remove the comment about Coldfire asm. The current code (using fixmul16 macros) is fast enough; even faster than an equivalent CF asm version, as pointed out by Nils Wallménius.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27724 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 18:53:42 +00:00
Nils Wallménius
a0dd4cd057
libwmapro: remove coldfire fixmul24 as it is both incorrect and unused, fix fixmul 31 comment.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27715 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 10:35:06 +00:00
Mohamed Tarek
430eb651a2
update wmapro's README.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27710 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 06:37:53 +00:00
Mohamed Tarek
9176f35f77
Fix reds.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27707 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 06:17:18 +00:00
Mohamed Tarek
9dddfa78e6
oops ! shouldn't have removed mdct_tables.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27706 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 06:10:14 +00:00
Mohamed Tarek
12ecbf82fc
Drop the the mdct files from libwmapro since they are no longer needed.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27705 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 06:02:26 +00:00
Mohamed Tarek
4674518787
Increase wmapro decoder output sample depth to 24 bits, makes the mean error between our output and the original floating point decoder ~5e-8. (FS#11498 by Buschel)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27703 a1c6a512-1295-4272-9138-f99709370657
2010-08-04 23:21:35 +00:00
Mohamed Tarek
2054ca8b98
Fix red by removing sine_512 from iram (2KB). minor slowdown for PP5024 (~0.05MHz) on a 320kbps sample, and ~0.03MHz slowdown for Coldfire on a 55kbps sample.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27702 a1c6a512-1295-4272-9138-f99709370657
2010-08-04 23:14:31 +00:00
Mohamed Tarek
3bbbb96395
Use codeclib's mdct in wmapro. Input coeffs to the transform needed to be scaled down first by (log2(frame_size) - 3). Increases decoding speed by 1.3MHz on PP5022 and saves ~32KB that were previously needed by the mdct tables. (FS#11511 by Buschel and myself)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27701 a1c6a512-1295-4272-9138-f99709370657
2010-08-04 22:29:50 +00:00
Mohamed Tarek
5da2304f85
Fix the sample count in wma pro.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27687 a1c6a512-1295-4272-9138-f99709370657
2010-08-03 22:59:03 +00:00
Andree Buschmann
f84cb98b37
Use higher precision for libwmapro's quant_tab[].
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27662 a1c6a512-1295-4272-9138-f99709370657
2010-08-01 22:02:57 +00:00
Andree Buschmann
f971deed6d
Housekeeping for libwmapro. Define some multiple used constants, use more precise value for cos(pi/4).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27644 a1c6a512-1295-4272-9138-f99709370657
2010-07-31 21:07:17 +00:00
Nils Wallménius
8082ae089d
libwmapro: fix comment for coldfire fixmul31.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27626 a1c6a512-1295-4272-9138-f99709370657
2010-07-30 09:14:28 +00:00
Andree Buschmann
aa2fca384a
Maintenance and minor speedup of libwmapro. Comment unused arrays, fix comment, remove tabs and introduce WMAPRO_FRACT to wma.h to remove magic numbers. Swap operands of fixmul16-call for minor speedup on ARM (+1%).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27617 a1c6a512-1295-4272-9138-f99709370657
2010-07-29 22:18:04 +00:00
Nils Wallménius
1de66faa8e
Make codeclib_misc.h include the asm headers to simplify inclusion magic.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27615 a1c6a512-1295-4272-9138-f99709370657
2010-07-29 12:52:04 +00:00
Nils Wallménius
e436483b66
libmwapro: use codeclib asm macros for XNPROD31, speeds up decoding of a 55kbps wma pro file by 40% on h300.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27612 a1c6a512-1295-4272-9138-f99709370657
2010-07-29 11:01:30 +00:00
Nils Wallménius
79ae416b95
libwmapro: coldfire asm for vector_fixmul_scalar, 1% speedup
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27607 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 23:25:45 +00:00
Andree Buschmann
17069799a9
Refactor asm macros in libwmapro's vector_fixmul_() functions. No change to output samples.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27604 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 20:46:51 +00:00
Andree Buschmann
3bb8020f78
Add ARM assembler to libwmapro vector_fixmul_scalar(). Speeds up decoding by 1% on PP5022.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27603 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 19:36:15 +00:00
Andree Buschmann
2fefcdf31c
Refinement of initial lowmem handling for libwmapro (r27593). Set maximum supported channels to 2 instead of 8 for low memory targets. This solution saves more RAM than the former solution and does avoid possible NULLPTR access. As add-on remove tabs.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27602 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 19:01:45 +00:00
Mohamed Tarek
7722c1d459
Correct the scaling of the coeffs to 17bits.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27599 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 18:39:10 +00:00
Andree Buschmann
8cc8bb9bde
Submit next part of FS#11498. Unroll loop for minor speedup of libwmapro on ARM (1%).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27595 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 18:15:53 +00:00
Mohamed Tarek
f2ed7ffaaa
Enable wmapro compilation for lowmem targets by excluding multichannel buffers for them.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27593 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 14:01:10 +00:00
Nils Wallménius
24bde73d1e
libwmapro: build with -O2 for coldfire, 5% speedup.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27586 a1c6a512-1295-4272-9138-f99709370657
2010-07-27 06:48:15 +00:00
Nils Wallménius
ac16071399
libwmapro: tiny tweak fo coldfire fixmul24 for a very slight speedup.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27585 a1c6a512-1295-4272-9138-f99709370657
2010-07-27 06:30:38 +00:00
Nils Wallménius
30d286d859
libwmapro: slightly shorter and faster inline asm fixed point multiplication routines, speedup is ~0.5%. Also don't lie to gcc about which vars are changed by the asm.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27584 a1c6a512-1295-4272-9138-f99709370657
2010-07-26 23:00:22 +00:00
Mohamed Tarek
5dd8c53b96
Modify the wma pro decoder to produce non-interleaved samples, and work directly on the buffers in WMAProDecCtx instead to avoid the redundant copying of the output data. ~10% speedup (-2MHz) on pp502x and ~1.5% speedup (-3.8Mhz)
...
on mcf2049.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27583 a1c6a512-1295-4272-9138-f99709370657
2010-07-26 22:03:20 +00:00
Andree Buschmann
87d59ab56c
Submit part of FS#11498. Major speedup for WMA Professional on ARM and Coldfire CPUs. Introduce asm routines for multiplications, move arrays with major impact on decoding speed to IRAM. Speeds up decoding by 25% on PP5022 and 34% on mcf5249.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27582 a1c6a512-1295-4272-9138-f99709370657
2010-07-26 21:43:07 +00:00
Nils Wallménius
025eed5c74
libwmapro: coldfire asm for vector_fixmul_window, gives a speedup of ~13%, drop the add_bias argument for the vector_fixmul_window function, since it was always 0
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27573 a1c6a512-1295-4272-9138-f99709370657
2010-07-26 11:15:25 +00:00
Mohamed Tarek
56161967c6
Increase the size of quant table in libwmapro to accomodate more values for exp. Fixes wma pro failure on test files in download.rockbox.org/test_files.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27460 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 09:13:55 +00:00
Mohamed Tarek
53d13a8e76
libwmapro no longer needs libm in the sim; update the makefile and README.rockbox.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27456 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 08:19:05 +00:00
Mohamed Tarek
86c3765246
libwmapro : remove dead/unneeded code from wma.[ch]
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27455 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 08:09:17 +00:00
Mohamed Tarek
b339963567
libwmapro : Rename all FIXED occurrances to int32_t and remove types.h
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27454 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 08:00:13 +00:00
Mohamed Tarek
0f94710410
More cleaning for libwmapro; use codeclib's bitstream functions and drop those from the libwmapro.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27453 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 07:53:14 +00:00
Mohamed Tarek
387af97a26
Initial cleanup for libwmapro.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27425 a1c6a512-1295-4272-9138-f99709370657
2010-07-15 05:38:09 +00:00
Rafaël Carré
4a3e6de32a
wmapro: silence some warnings related to function prototypes unused in rockbox
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27421 a1c6a512-1295-4272-9138-f99709370657
2010-07-14 20:19:57 +00:00
Rafaël Carré
7a1e04920e
wmapro: don't force little endianness
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27420 a1c6a512-1295-4272-9138-f99709370657
2010-07-14 20:19:50 +00:00
Mohamed Tarek
d63abfc7eb
Add WMA Pro to the main build. WMA Pro now plays on target and decodes in 151% realtime in a 320kbps sample on a sansa e200. Lots of cleanup still need to be done, and optimisations should start soon too.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27417 a1c6a512-1295-4272-9138-f99709370657
2010-07-14 19:37:52 +00:00
Mohamed Tarek
16284ae8ae
Remove the floating point code from wmaprodec.c and change variable names accordingly.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27416 a1c6a512-1295-4272-9138-f99709370657
2010-07-14 17:55:17 +00:00
Mohamed Tarek
ec4ee48318
Complete the conversion of WMA Pro to fixed point. Floating point code is still there for better history and to have a returning point in svn should something go wrong.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27402 a1c6a512-1295-4272-9138-f99709370657
2010-07-12 15:41:10 +00:00
Thomas Martitz
57613ea5fa
Rename/change SIMVER to APP_TYPE in the Makefiles.
...
SIMVER was really only used to detect a simulator build. With APP_TYPE you can
now differentiate between simulator, application, checkwps and database builds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27372 a1c6a512-1295-4272-9138-f99709370657
2010-07-10 13:49:49 +00:00
Rafaël Carré
d05a24e64e
wmapro codec sim build needs to link with libm
...
Override generic rule in libwmapro/*.make
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27336 a1c6a512-1295-4272-9138-f99709370657
2010-07-07 17:10:26 +00:00
Mohamed Tarek
d884af2b99
Partial conversion of the wmapro decoder to fixed point arithmetic. Currently inverse quantization & rescaling,
...
imdct and windowing are all in fixed point.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27302 a1c6a512-1295-4272-9138-f99709370657
2010-07-05 22:33:37 +00:00
Mohamed Tarek
e481e887db
Add a patch file in libwmapro to make it easier to add the library and the decoder to the main build and modify README.rockbox accordingly.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27012 a1c6a512-1295-4272-9138-f99709370657
2010-06-21 12:38:08 +00:00
Mohamed Tarek
8eeec17041
Remove the stubbed main() from wmaprodec.c since it's useless now and remove Makefile for the same reason.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27010 a1c6a512-1295-4272-9138-f99709370657
2010-06-21 12:29:48 +00:00
Mohamed Tarek
816fca820c
Wrote apps/codecs/wmapro.c and modified libwmapro to make the codec work in the sim. Neither libwmapro nor wmapro.c have been added to the main build yet, codecs.make should be edited to compile both with rockbox.
...
current status of the decoder :
- Plays and seeks in the sim
- Still in floating point
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27006 a1c6a512-1295-4272-9138-f99709370657
2010-06-21 10:48:34 +00:00
Mohamed Tarek
270f136fd2
Fix ffmpeg revision number in libwmapro/README.rockbox
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25923 a1c6a512-1295-4272-9138-f99709370657
2010-05-09 21:52:35 +00:00
Mohamed Tarek
fe147cec65
Modify the ffmpeg source files in apps/codecs/libwmapro in order to compile the codec standalone.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25764 a1c6a512-1295-4272-9138-f99709370657
2010-04-30 12:20:25 +00:00