Commit graph

126 commits

Author SHA1 Message Date
Jeffrey Goode
cc4d92c270 pcmbuf: simplify crossfade logic
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23593 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 19:34:01 +00:00
Jeffrey Goode
874c911464 pcmbuf: refactoring
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23592 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 18:12:20 +00:00
Jeffrey Goode
5c69a42d51 pcmbuf: more refactoring
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23588 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 17:11:53 +00:00
Jeffrey Goode
73c4791da0 pcmbuf: eliminate add_chunk as a separate function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23582 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 06:53:22 +00:00
Jeffrey Goode
d0ac045f44 pcmbuf: fix yellow. More renaming.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23579 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 05:58:02 +00:00
Jeffrey Goode
8edac6ec82 pcmbuf: refactoring, renamed confusing variables, moved some code around, but still no functional changes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23577 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 05:45:05 +00:00
Jeffrey Goode
b6f15f2c95 pcmbuf: moved some functions around, no functional changes yet
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23565 a1c6a512-1295-4272-9138-f99709370657
2009-11-08 04:27:27 +00:00
Jeffrey Goode
e9f389a9e7 pcmbuf: need ifdef to fix yellow
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23542 a1c6a512-1295-4272-9138-f99709370657
2009-11-06 04:25:28 +00:00
Jeffrey Goode
37adbee236 pcmbuf: sorted functions into logical sections for readability. Tiny changes, nothing functional
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23541 a1c6a512-1295-4272-9138-f99709370657
2009-11-06 04:13:36 +00:00
Jeffrey Goode
04b01e1831 pcmbuf: clarify and simplify crossfade code, etc.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23538 a1c6a512-1295-4272-9138-f99709370657
2009-11-05 21:59:36 +00:00
Jeffrey Goode
013fe35992 pcmbuf: better latency calculation, added debug code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23537 a1c6a512-1295-4272-9138-f99709370657
2009-11-05 17:32:32 +00:00
Jeffrey Goode
5ce8e2cb0d Clarify track transition code in pcmbuf and playback. No functional changes yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23506 a1c6a512-1295-4272-9138-f99709370657
2009-11-04 03:58:33 +00:00
Jeffrey Goode
e8eefe98bf Code cleanup in codec_thread, playback and pcmbuf; more elegant solution to leftover samples
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23471 a1c6a512-1295-4272-9138-f99709370657
2009-11-01 19:39:23 +00:00
Jeffrey Goode
96bb9efdb7 Consolidate almost identical code in pcmbuf.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23318 a1c6a512-1295-4272-9138-f99709370657
2009-10-23 01:01:00 +00:00
Jeffrey Goode
faa47bf1b7 Code cleanup in dsp.c and misc.c, some comments
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23314 a1c6a512-1295-4272-9138-f99709370657
2009-10-22 00:59:42 +00:00
Jeffrey Goode
cf19ba5599 Replace limiter with dynamic range compressor
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22832 a1c6a512-1295-4272-9138-f99709370657
2009-09-25 15:46:38 +00:00
Jeffrey Goode
2b7ef6b928 FS#10199: Adds limiter DSP function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22394 a1c6a512-1295-4272-9138-f99709370657
2009-08-18 03:24:45 +00:00
Jeffrey Goode
e3f36a1f47 FS#10446: Bug defense in dsp.c, minor tweaks and comments
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22282 a1c6a512-1295-4272-9138-f99709370657
2009-08-12 19:00:31 +00:00
Michael Giacomelli
6469926b88 FS#10506. Don't compile various crossfade only functions in pcmbuf.c on low memory targets (mainly AMS) to save memory. Some crossfade related items remain in the code, but they're not worth cluttering the code with ifdefs over. Also, introduce HAVE_CROSSFADE define for neatness.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22248 a1c6a512-1295-4272-9138-f99709370657
2009-08-11 02:05:38 +00:00
Dan Everton
d52c6614c5 Commit FS#10335 from Jeffrey Goode.
Ensure that the PCM buffer is flushed at the end of the last track in a
playlist.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21316 a1c6a512-1295-4272-9138-f99709370657
2009-06-17 08:47:51 +00:00
Bertrik Sikken
66cf3a3329 Clean up some #includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20238 a1c6a512-1295-4272-9138-f99709370657
2009-03-08 16:10:40 +00:00
Michael Sevakis
6c399b8254 Use DMA for audio playback on PP502x (FS#9910 + some further mods). I can't say at this point about any change in battery life but it frees up a percent or two of CPU cycles as measured in the buffering screen. No change in recording transfers yet. Testing seemed to check out so put it out for general use and see what happens.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20052 a1c6a512-1295-4272-9138-f99709370657
2009-02-19 20:40:03 +00:00
Michael Sevakis
e86ece4d34 Fix too-soon frequency unboost when pcm buffer crosses watermark from the low side. It's supposed to stay boosted until full again. Also align the static beep buffer to 4 bytes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20017 a1c6a512-1295-4272-9138-f99709370657
2009-02-16 18:45:43 +00:00
Michael Sevakis
94537f954e Gigabeat S: Implement an SDMA API and use it in the PCM driver. Some other miscellaneous adjustments to recording and PCM buffer to accomodate use of physical addresses and cache coherency.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19949 a1c6a512-1295-4272-9138-f99709370657
2009-02-08 22:32:41 +00:00
Björn Stenberg
ff498519d0 Red build fix.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19744 a1c6a512-1295-4272-9138-f99709370657
2009-01-10 21:38:56 +00:00
Björn Stenberg
6427d127aa Calculate watermark from bitrate and harddisk spinup time.
Use a smaller PCM buffer on targets with 2MB or less ram.
(FS#9703)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19743 a1c6a512-1295-4272-9138-f99709370657
2009-01-10 21:10:56 +00:00
Michael Sevakis
26bf32c8aa Check that PCM is playing/recording *after* getting the current position from the hardware layer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19435 a1c6a512-1295-4272-9138-f99709370657
2008-12-14 11:42:47 +00:00
Michael Sevakis
93572e2a9e Keyclick fixup take two. It is only 88 samples (2msec) long so keep a small static buffer around for beeps less than or equal to keyclick duration. This way it operates no matter the buffer state and still won't interfere with alternate PCM operations like recording or plugin playback.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19415 a1c6a512-1295-4272-9138-f99709370657
2008-12-13 06:01:08 +00:00
Michael Sevakis
5e73f9ff20 Fix FS#8660-Recording hardlocks with keyclick enabled and FS#9388-keyclicks too late. Introduce audio_buffer_state to check whether PCM buffer is useable or disabled (trashed).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19411 a1c6a512-1295-4272-9138-f99709370657
2008-12-13 01:32:39 +00:00
Michael Sevakis
f2f394793c Fix red and a couple other things I somehow missed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19378 a1c6a512-1295-4272-9138-f99709370657
2008-12-10 09:11:43 +00:00
Michael Sevakis
8cfbd3604f Use cookies for thread identification instead of pointers directly which gives a buffer against wrongly identifying a thread when the slot is recycled (which has been nagging me for awhile). A slot gets 255 uses before it repeats. Everything gets incompatible so a full update is required.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19377 a1c6a512-1295-4272-9138-f99709370657
2008-12-10 08:57:10 +00:00
Michael Sevakis
89da4328a0 Meg F/X can beep and click using a hardware timer so let us try it out. To match things up better, fix PCM beeping to give correct frequency (and get a pointer wrap bug too). Do some minor adjustments to compensate for corrections.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19355 a1c6a512-1295-4272-9138-f99709370657
2008-12-07 00:07:47 +00:00
Nils Wallménius
c616520dc5 Style police, place opening braces for function definitions on new lines
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19312 a1c6a512-1295-4272-9138-f99709370657
2008-12-03 12:04:52 +00:00
Michael Sevakis
0e97b1a1eb Fix FS#9507 - video audio is not played if song is paused. Audio was not being unmuted by playback.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19308 a1c6a512-1295-4272-9138-f99709370657
2008-12-02 23:30:10 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Michael Sevakis
405e90eecf PCM buffer muting doesn't seem benificial for wm8978 so turn it off.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17384 a1c6a512-1295-4272-9138-f99709370657
2008-05-05 14:52:07 +00:00
Bertrik Sikken
7f4a713af4 Removed unused function get_pcmbuf_descsize from pcmbuf.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17175 a1c6a512-1295-4272-9138-f99709370657
2008-04-19 23:08:13 +00:00
Steve Bavin
b24ed65faf Simplify pcmbuf_beep() a little, should be no functional change but it seems to mysteriously change the PortalPlayer 'keyclick beep of death' problem into a 'barely-there keyclick' problem.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16947 a1c6a512-1295-4272-9138-f99709370657
2008-04-03 14:24:37 +00:00
Andree Buschmann
21870cfd9b Fixes FS#8651 (noise and/or crash while crossfading). Latest ARM-asm submit for dsp showed we had a possible alignment issue with pcm-buffer when using crossfade.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16890 a1c6a512-1295-4272-9138-f99709370657
2008-03-30 10:11:31 +00:00
Steve Bavin
135cc757bd Revert my earlier const madness, we'll keep the parameter lists simple.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16863 a1c6a512-1295-4272-9138-f99709370657
2008-03-28 12:51:33 +00:00
Steve Bavin
c9df8fd87b The const police raid playback.c, should be no change to behaviour.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16860 a1c6a512-1295-4272-9138-f99709370657
2008-03-28 11:24:24 +00:00
Michael Sevakis
27cf677339 Add a complete priority inheritance implementation to the scheduler (all mutex ownership and queue_send calls are inheritable). Priorities are differential so that dispatch depends on the runnable range of priorities. Codec priority can therefore be raised in small steps (pcmbuf updated to enable). Simplify the kernel functions to ease implementation and use the same kernel.c for both sim and target (I'm tired of maintaining two ;_). 1) Not sure if a minor audio break at first buffering issue will exist on large-sector disks (the main mutex speed issue was genuinely resolved earlier). At this point it's best dealt with at the buffering level. It seems a larger filechunk could be used again. 2) Perhaps 64-bit sims will have some minor issues (finicky) but a backroll of the code of concern there is a 5-minute job. All kernel objects become incompatible so a full rebuild and update is needed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16791 a1c6a512-1295-4272-9138-f99709370657
2008-03-25 02:34:12 +00:00
Nicolas Pennequin
ca55f133de Fix typo.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16026 a1c6a512-1295-4272-9138-f99709370657
2008-01-08 14:33:17 +00:00
Michael Sevakis
99617d71ba Make speex the new voice format for SWCODEC targets (non-Archos). Remove 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-18 17:12:19 +00:00
Michael Sevakis
88c4748a4b Couple more tiny changes. :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15639 a1c6a512-1295-4272-9138-f99709370657
2007-11-16 14:49:17 +00:00
Michael Sevakis
18330a050c Missed a couple changes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15638 a1c6a512-1295-4272-9138-f99709370657
2007-11-16 14:34:15 +00:00
Michael Sevakis
5398125fb3 Use sized data types for audio data in the pcm buffer. Speed up the clipping routine.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15636 a1c6a512-1295-4272-9138-f99709370657
2007-11-16 14:26:05 +00:00
Michael Sevakis
6077e5b7c8 Unify PCM interface just above the hardware driver level for all targets 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-10-06 22:27:27 +00:00
Michael Sevakis
3bec38e442 SWCODEC: Get rid of unneeded pcm_mute() calls. Leave the only ones that seem to be needed for WM codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13704 a1c6a512-1295-4272-9138-f99709370657
2007-06-24 20:36:58 +00:00
Michael Sevakis
e1dd10ddfb SWCODEC: Get rid of extra swap buffer and get back 512K of RAM or 100K if 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-19 22:04:17 +00:00