Commit graph

27 commits

Author SHA1 Message Date
Andree Buschmann
609c526d56 Use more IRAM on S5L870x to speed up wmapro by ~2%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29906 a1c6a512-1295-4272-9138-f99709370657
2011-05-20 23:28:09 +00:00
Andree Buschmann
27d153db93 Fix nearly all residual 'variable set but not used' warnings reported from GCC 4.6.0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29810 a1c6a512-1295-4272-9138-f99709370657
2011-05-01 14:44:20 +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
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
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
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
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
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
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
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
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
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
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
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
Mohamed Tarek
cf43e5083b Add libwmapro to apps/codecs. These files comprise a set of unmodified files needed from ffmpeg's libavcodec and libavutil to compile and use the wma pro decoder standalone. The files were taken from ffmpeg's svn r22886 dated 15 April 2010.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25763 a1c6a512-1295-4272-9138-f99709370657
2010-04-30 11:11:56 +00:00
Mohamed Tarek
67f7ecf731 Revert r25739 which added libwmapro to apps/codecs, in preparation to commit the unmodified ffmpeg files first, for the sake of a consistent/complete svn history.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25758 a1c6a512-1295-4272-9138-f99709370657
2010-04-29 15:14:43 +00:00
Mohamed Tarek
dda7fab1d6 Add libwmapro to trunk.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25739 a1c6a512-1295-4272-9138-f99709370657
2010-04-27 18:04:34 +00:00