summaryrefslogtreecommitdiff
path: root/lib/rbcodec/dsp/tdspeed.c (follow)
Commit message (Collapse)AuthorAge
* Remove explicit config.h and system.h includes from DSP code.Michael Sevakis2013-05-27
| | | | | | | Replace with rbcodecconfig.h and platform.h includes. Remove now- unneeded ones as well. Change-Id: I6111b71e90bf86d9fe272a7916f2d34a5c6dd724
* Cleanup and simplify latest DSP code incarnation.Michael Sevakis2013-05-04
| | | | | | | | | | | | | | Some things can just be a bit simpler in handling the list of stages and some things, especially format change handling, can be simplified for each stage implementation. Format changes are sent through the configure() callback. Hide some internal details and variables from processing stages and let the core deal with it. Do some miscellaneous cleanup and keep things a bit better factored. Change-Id: I19dd8ce1d0b792ba914d426013088a49a52ecb7e
* Stop timestretch freezing things during format changes.Michael Sevakis2012-05-21
| | | | | | | | When it was inactive but enabled, the format change hook was dropping through to code that it shouldn't execute without it also being active in processing samples. Change-Id: Ie7899df0395d3f0d10f2bf2b55ea549dd06749a7
* TDSpeed: Fix crackling on some systemsNils Wallménius2012-05-12
| | | | | | | | Use memmove instead of memcpy for overlapping copy, fixes crackling in sims and warble on my system. Native targets seem to have been unaffected. Change-Id: I265d4ce373e224581bd2f5ba15c75b473ec231f2
* TDSpeed settings to setup call need to be recorded, always.Michael Sevakis2012-05-11
| | | | | | | | If the settings, like samplerate, were to go out of range where timestretch drops out of processing and then go back to the same as when they were valid, it would fail to switch back on by itelf. Change-Id: Ic5bcb268540b0db8e0483117b8a5a0ce5c5a9db0
* TDSpeed: Minor assembly optimization to frame fade on Coldfire.Michael Sevakis2012-05-11
| | | | | | | | Makes quite a huge difference to get rid of 64-bit math in a hot area. Cuts about 12 MHz. Generic routine generates good code on ARM and asm cuts no instructions there. Change-Id: I4ac647406006c42004f9f5ab396cbf4e85688854
* TDSpeed: Fix up samples consumed return (FS#12666) + other stuff like...Michael Sevakis2012-05-10
| | | | | | | | | Wrap up the the stereo case into loops and remove unused calculations hanging out in tdspeed_update(). A wee little bit of code style and column policing. Change-Id: I8dd3ab4b3e7e56b55dc00c00f3e32996228cc457
* rbcodec: abstract tdspeed buffer allocationNils Wallménius2012-05-07
| | | | | | | | | | | | | Move code dealing with rockbox specific buflib allocations into a rockbox specific file and implement buffer allocation with malloc/free for warble/stand alone lib. Based on patch by Sean Bartell. Change-Id: I8cb85dad5890fbd34c1bb26abbb89c0b0f6b55cf Reviewed-on: http://gerrit.rockbox.org/144 Tested-by: Nils Wallménius <nils@rockbox.org> Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Reviewed-by: Nils Wallménius <nils@rockbox.org>
* Make rbcodec/dsp includes more specific.Michael Sevakis2012-04-29
| | | | Change-Id: Idb6af40df26f5b8499a40e8b98602261ef227044
* Fundamentally rewrite much of the audio DSP.Michael Sevakis2012-04-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Creates a standard buffer passing, local data passing and messaging system for processing stages. Stages can be moved to their own source files to reduce clutter and ease assimilation of new ones. dsp.c becomes dsp_core.c which supports an engine and framework for effects. Formats and change notifications are passed along with the buffer so that they arrive at the correct time at each stage in the chain regardless of the internal delays of a particular one. Removes restrictions on the number of samples that can be processed at a time and it pays attention to destination buffer size restrictions without having to limit input count, which also allows pcmbuf to remain fuller and safely set its own buffer limits as it sees fit. There is no longer a need to query input/output counts given a certain number of input samples; just give it the sizes of the source and destination buffers. Works in harmony with stages that are not deterministic in terms of sample input/output ratio (like both resamplers but most notably the timestretch). As a result it fixes quirks with timestretch hanging up with certain settings and it now operates properly throughout its full settings range. Change-Id: Ib206ec78f6f6c79259c5af9009fe021d68be9734 Reviewed-on: http://gerrit.rockbox.org/200 Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Tested-by: Michael Sevakis <jethead71@rockbox.org>
* Add a more correct absolute difference function to dsp-util.Michael Sevakis2012-04-26
| | | | | | | | | Differences between signed samples cover the entire unsigned 32-bit range. "abs" will think any difference exceeding INT32_MAX is negative which is not corrent. Test which argument is greater and subtract the lesser from it, outputting unsigned difference. Change-Id: I73a8e5e418d49ff73d1a7c98eeb4731946dcfe84
* Build librbcodec with DSP and metadata.Sean Bartell2012-03-18
All associated files are moved to /lib/rbcodec. Change-Id: I572ddd2b8a996aae1e98c081d06b1ed356dce222