summaryrefslogtreecommitdiff
path: root/apps/pcmbuf.c
AgeCommit message (Collapse)Author
2007-11-18Make speex the new voice format for SWCODEC targets (non-Archos). Remove ↵Michael Sevakis
codec swapping and build speex voice decoding directly into the core binary. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15668 a1c6a512-1295-4272-9138-f99709370657
2007-11-16Couple more tiny changes. :)Michael Sevakis
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15639 a1c6a512-1295-4272-9138-f99709370657
2007-11-16Missed a couple changesMichael Sevakis
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15638 a1c6a512-1295-4272-9138-f99709370657
2007-11-16Use sized data types for audio data in the pcm buffer. Speed up the clipping ↵Michael Sevakis
routine. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15636 a1c6a512-1295-4272-9138-f99709370657
2007-10-06Unify PCM interface just above the hardware driver level for all targets ↵Michael Sevakis
including the sims. Perform lockout of audio callback when changing states. Weird new playback or recording trouble? Check before and after this revision first though things seem quite sound. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15006 a1c6a512-1295-4272-9138-f99709370657
2007-06-24SWCODEC: Get rid of unneeded pcm_mute() calls. Leave the only ones that seem ↵Michael Sevakis
to be needed for WM codecs. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13704 a1c6a512-1295-4272-9138-f99709370657
2007-03-19SWCODEC: Get rid of extra swap buffer and get back 512K of RAM or 100K if ↵Michael Sevakis
the players RAM is <= 1MB. Make any needed changes to things to stabilize and facilitate this including removing flattening out initialization. Comment some things heavily. Fix a few logfs I didn't want to see the compiler complaining about. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12843 a1c6a512-1295-4272-9138-f99709370657
2007-03-06Put the sims in their place.Michael Sevakis
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12650 a1c6a512-1295-4272-9138-f99709370657
2007-03-06Fix problem with recording screen creep and bag a bigfoot. Voice clips ↵Michael Sevakis
aren't long enough now to untrigger the thread boost that was supposed to be applied to the codec thread. The voice thread was needlessly boosting the codec thread and leaving it boosted which explains the encoders' ability to flood the output buffer when everything else was stopped in its tracks. Check which thread is calling pcmbuf_under_watermark and only initiate the boost when it's the codec thread. Always return the codec thread to its usual priority in pcmbuf_play_stop. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12649 a1c6a512-1295-4272-9138-f99709370657
2007-02-07Fix resampling clicking as much as possible at the moment. 1) Upsampling ↵Michael Sevakis
clicked because of size inaccuracies returned by DSP. Fix by simplifying audio system to use per-channel sample count from codec to pcm buffer. 2) Downsampling affected by 1) and was often starting passed the end of the data when not enough was available to generate an output sample. Fix by clamping input range to last sample in buffer and using the last sample value in the buffer. A perfect fix will require a double buffering scheme on the resampler to sufficient data during small data transients on both ends at all times of the down ratio on input and the up ratio on output. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12218 a1c6a512-1295-4272-9138-f99709370657
2006-12-25Next round of static'ing and related fixes.Jens Arnold
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11836 a1c6a512-1295-4272-9138-f99709370657
2006-11-22Priority overriding was not working correctly.Miika Pekkarinen
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11573 a1c6a512-1295-4272-9138-f99709370657
2006-11-16Removed muting from pcm buffer during starts, stops and pauses for tlv320 ↵Michael Sevakis
and uda1380. Far less in the way of pops now. Voice during FM radio playback keeps radio steady. If it is determined that other audio codecs don't benefit from this remove the muting code and defines altogether. Saving the state and not resetting more than needed seems to prevent popping more effectively than muting at DMA starts and stops. Voice can click a little if truncating a clip (not annoyingly though) but that should be handled by a DSP fade out over a few ms instead-- a side benefit would be a general DSP fade rather than using volume control. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11538 a1c6a512-1295-4272-9138-f99709370657
2006-11-07Calculation was wrong in pcmbuf_is_same_size such that is would almost ↵Michael Sevakis
certainly return false. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11460 a1c6a512-1295-4272-9138-f99709370657
2006-11-06Big Patch adds primarily: Samplerate and format selection to recording for ↵Michael Sevakis
SWCODEC. Supprort for samplerates changing in playback (just goes with the recording part inseparably). Samplerates to all encoders. Encoders can be configured individually on a menu specific to the encoder in the recording menu. File creation is delayed until flush time to reduce spinups when splitting. Misc: statusbar icons for numbers are individual digits to display any number. Audio buffer was rearranged to maximize memory available to recording and properly reinitialized when trashed. ColdFire PCM stuff moved to target tree to avoid a complicated mess when adding samplerate switching. Some needed API changes and to neaten up growing gap between hardware and software codecs. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11452 a1c6a512-1295-4272-9138-f99709370657
2006-10-15Removed ugly boosting solutions from playback code and let schedulerMiika Pekkarinen
handle unboosting instead. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11226 a1c6a512-1295-4272-9138-f99709370657
2006-10-15Don't unboost CPU in an ISRSteve Bavin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11224 a1c6a512-1295-4272-9138-f99709370657
2006-10-13Just take out some out-of-date TODOs from playback.c and put a big FIXME in ↵Brandon Low
pcmbuf.c git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11217 a1c6a512-1295-4272-9138-f99709370657
2006-10-05Add CPU boost tracker to see where boosts are coming fromSteve Bavin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11125 a1c6a512-1295-4272-9138-f99709370657
2006-09-27Fix for crossfade crashes if in or out delay are zeroSteve Bavin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11078 a1c6a512-1295-4272-9138-f99709370657
2006-09-26Fix a crash and CPU being left boosted when using voice - FS#6024Steve Bavin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11053 a1c6a512-1295-4272-9138-f99709370657
2006-09-17FS#5992 Reworked playback.c to fix voice bugs by Steve Bavin. Fixed toMiika Pekkarinen
work with the new scheduler and handled properly and fast the track skipping. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10966 a1c6a512-1295-4272-9138-f99709370657
2006-09-16New scheduler, with priorities for swcodec platforms. Frequent taskMiika Pekkarinen
switching should be more efficient and tasks are stored in linked lists to eliminate unnecessary task switching to improve performance. Audio should no longer skip on swcodec targets caused by too CPU hungry UI thread or background threads. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10958 a1c6a512-1295-4272-9138-f99709370657
2006-08-13Memory size checks in .c/.h files should use MEM, not MEMORYSIZEDave Chapman
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10557 a1c6a512-1295-4272-9138-f99709370657
2006-08-12Various lower limits and sizes for targets with 1MB of RAM (Iriver iFP7xx).Tomasz Malesinski
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10556 a1c6a512-1295-4272-9138-f99709370657
2006-08-02Adjusted buffer watermarks for better crossfade and playback stability.Miika Pekkarinen
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10416 a1c6a512-1295-4272-9138-f99709370657
2006-05-14Correctly enable crossfade mixmode only when not skipping tracksMiika Pekkarinen
manually. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9926 a1c6a512-1295-4272-9138-f99709370657
2006-05-08Revert a previous change, works around the problem of freezing on ↵Brandon Low
stop-while-paused, and skipping with crossfade git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9889 a1c6a512-1295-4272-9138-f99709370657
2006-05-05Hopefully fix some old audio playing during manual track skip w/o crossfade. ↵Brandon Low
Worst case was 1/5 second of audio from pcmbuflen bytes later than the playign position of the old track would play. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9876 a1c6a512-1295-4272-9138-f99709370657
2006-04-25Make crossfade less twitchy moreBrandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9801 a1c6a512-1295-4272-9138-f99709370657
2006-04-25GOTO POWER. Improve crossfade performance, and cleanliness, and termination ↵Brandon Low
conditions. Make consistent insert vs. request/complete types of buffering. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9800 a1c6a512-1295-4272-9138-f99709370657
2006-04-25Make crossfade less twitchy about buffer levelBrandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9799 a1c6a512-1295-4272-9138-f99709370657
2006-04-25Fix asymetric crossfade cases that were broken, and also a not yet reported ↵Brandon Low
bug where a buffer underrun during crossfade would take a long time to resume playing git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9798 a1c6a512-1295-4272-9138-f99709370657
2006-04-25Fix crossfade. Again.Brandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9797 a1c6a512-1295-4272-9138-f99709370657
2006-04-25More crossfade work, should fix crossfade on coldfire, and possibly improve ↵Brandon Low
crossfade performance in some cases. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9796 a1c6a512-1295-4272-9138-f99709370657
2006-04-24Fix another possible glitch causer on crossfadeBrandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9789 a1c6a512-1295-4272-9138-f99709370657
2006-04-24Fix crossfade locational settingBrandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9785 a1c6a512-1295-4272-9138-f99709370657
2006-04-24Remove accidentally commited commented code, no functional changesBrandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9784 a1c6a512-1295-4272-9138-f99709370657
2006-04-23Rework crossfade to properly follow pcmbuf chunks instaed of blindly ↵Brandon Low
inserting into the ring buffer git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9780 a1c6a512-1295-4272-9138-f99709370657
2006-04-23Whoops, forgot to 'duck' the music below the voice when I redid the mixBrandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9772 a1c6a512-1295-4272-9138-f99709370657
2006-04-22First commit of reworking voice to be mroe stable on swcodecBrandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9758 a1c6a512-1295-4272-9138-f99709370657
2006-04-20Fix a crossfade problem (not initializing quite right), and a end of track ↵Brandon Low
problem (should solve some problemwith last bits of audio not playing). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9736 a1c6a512-1295-4272-9138-f99709370657
2006-04-14Fix some stop/pause/boost stuffBrandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9662 a1c6a512-1295-4272-9138-f99709370657
2006-04-13Ensure that the buffer doesn't get out of sync on rebuffer track changes. ↵Brandon Low
Remove the concept of pcmuf_boost_mode as it doesn't seem necessary, and adds an unnecessary way for the CPU to stay boosted. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9646 a1c6a512-1295-4272-9138-f99709370657
2006-04-07Add a comment onlyBrandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9554 a1c6a512-1295-4272-9138-f99709370657
2006-04-05Fix bug #4896 and make the beep code a bit cleanerBrandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9514 a1c6a512-1295-4272-9138-f99709370657
2006-04-05More work on swcodec. No significant pcmbuf functions are called from the ↵Brandon Low
audio thread now. Do not be surprised if seek or skip behavior gets weird after this, but it Works for Me (TM), and is a significant step in the right direction. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9510 a1c6a512-1295-4272-9138-f99709370657
2006-03-30New 'Track Skip Only' option for Crossfading; crossfading is disabled except ↵Zakk Roberts
for manual track changes. NOTE: If you were using 'Always' mode previously, check again after updating: you'll now be in the new 'Track Skip Only' mode. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9353 a1c6a512-1295-4272-9138-f99709370657
2006-03-30Add comments, and avoid throw-away calculations in crossfade buffer processBrandon Low
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9352 a1c6a512-1295-4272-9138-f99709370657
2006-03-25Fix lockups people have been having with track skipping during buffer fill, ↵Brandon Low
this is a reversion of a previous commit pending more fixes to playback engine git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9250 a1c6a512-1295-4272-9138-f99709370657