summaryrefslogtreecommitdiff
path: root/firmware/pcm_record.c (follow)
Commit message (Collapse)AuthorAge
* Moved pcm_record from firmware to apps. Cleaned up some. Now all code using ↵Björn Stenberg2008-10-14
| | | | | | struct mp3entry is in apps. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18807 a1c6a512-1295-4272-9138-f99709370657
* New recording setting to configure how mono recordings are made. Previously, ↵Peter D'Hoye2008-10-08
| | | | | | this was always L+R, which was kinda silly if your signal was on L only. This setting allows for L, R or L+R. SWCODEC only for now, to be added for HWCODEC (although that will only be L and L+R probably) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18745 a1c6a512-1295-4272-9138-f99709370657
* Updated our source code header to explicitly mention that we are GPL v2 orDaniel Stenberg2008-06-28
| | | | | | | | | 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
* Enable nocache sections using the linker. PP5022/4 must use SW_CORELOCK now ↵Michael Sevakis2008-04-06
| | | | | | with shared variables in DRAM (it seems swp(b) is at least partially broken on all PP or I'm doing something very wrong here :\). For core-shared data use SHAREDBSS/DATA_ATTR. NOCACHEBSS/DATA_ATTR is available whether or not single core is forced for static peripheral-DMA buffer allocation without use of the UNCACHED_ADDR macro in code and is likely useful on a non-PP target with a data cache (although not actually enabled in config.h and the .lds's in this commit). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16981 a1c6a512-1295-4272-9138-f99709370657
* Add a complete priority inheritance implementation to the scheduler (all ↵Michael Sevakis2008-03-25
| | | | | | 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
* Move encoder CPU boost control to the core. Allow CPU to sleep a bit when ↵Michael Sevakis2007-11-30
| | | | | | PCM buffer is empty and save some power. Codec API becomes incompatible so full updates! :) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15854 a1c6a512-1295-4272-9138-f99709370657
* Finally full multicore support for PortalPlayer 502x targets with an eye ↵Michael Sevakis2007-10-16
| | | | | | towards the possibility of other types. All SVN targets the low-lag code to speed up blocking operations. Most files are modified here simple due to a name change to actually support a real event object and a param change to create_thread. Add some use of new features but just sit on things for a bit and leave full integration for later. Work will continue on to address size on sensitive targets and simplify things if possible. Any PP target having problems with SWP can easily be changed to sw corelocks with one #define change in config.h though only PP5020 has shown an issue and seems to work without any difficulties. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15134 a1c6a512-1295-4272-9138-f99709370657
* Fix FS #5852 by trying to properly close and update the recorded file, and ↵Peter D'Hoye2007-10-10
| | | | | | give the FAT the correct file info. Add filehandle checks to some file functions. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15072 a1c6a512-1295-4272-9138-f99709370657
* Unify PCM interface just above the hardware driver level for all targets ↵Michael Sevakis2007-10-06
| | | | | | 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
* Enable auto reply for queue messages sent with queue_send. It's only ↵Michael Sevakis2007-09-30
| | | | | | nescessary to use queue_reply to return a value other than zero or to return a result before waiting on the queue again. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14923 a1c6a512-1295-4272-9138-f99709370657
* Remove the PCMREC_PARANOID support since the issues have been identified and ↵Michael Sevakis2007-09-30
| | | | | | fixed however detecting an encoder writing too many samples to a chunk will remain and be enabled in a DEBUG build as an aid for adding encoders. Do some cleanup on the filename queue. Loosen up the control interface where synchronous thread blocking isn't required for pause/stop/resume. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14918 a1c6a512-1295-4272-9138-f99709370657
* Commit a subset of the dual core changes that have to do with cache ↵Michael Sevakis2007-09-28
| | | | | | handling, stacks, firmware startup and thread startup. Tested on e200, H10-20GB, iPod Color and 5.5G. Thread function return implemented for all targets. Some changes to plugins to follow shortly. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14879 a1c6a512-1295-4272-9138-f99709370657
* Straighten out some audio path APIs and misc. audio stuff. Having recording ↵Michael Sevakis2007-06-08
| | | | | | is not a prerequisite to having input/output source selection which is probably most useful when adding a audio input features like FM to a new port without forcing recording to be implemented first. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13599 a1c6a512-1295-4272-9138-f99709370657
* Make recording complain about every little file I/O problem (error on ↵Michael Sevakis2007-04-25
| | | | | | close() failure and fsync() failure). Why? I guess we will find out the disk is full about 1/2 sector sooner on average when the file APIs actually detect this correctly. :/ git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13262 a1c6a512-1295-4272-9138-f99709370657
* Recording queue should be set to IRQ safe mode as well.Miika Pekkarinen2007-03-31
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12983 a1c6a512-1295-4272-9138-f99709370657
* Accept FS#6918 - Remove Nested Functions by Tim Ross. Adjust some names. ↵Michael Sevakis2007-03-29
| | | | | | Hunt down and remove the remaining ones in the recording system as well. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12955 a1c6a512-1295-4272-9138-f99709370657
* More logf fixes. speex.c wants to format 64bit args so I didn't change that ↵Michael Sevakis2007-03-20
| | | | | | one nor add any formatting for that. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12858 a1c6a512-1295-4272-9138-f99709370657
* More catching up on old work. Refine audio interface setup on Coldfire. Stop ↵Michael Sevakis2007-03-05
| | | | | | the funky glitching on the iAudio stuff when starting recording esp. at 88.2kHz. (probably due to the bidi interface). iRivers don't seem to care what you do. TLV320 still seems to have a little trouble selecting it's filters correctly for 88.2kHz or it could be some odd phasing effect. Get rid of the horrible reset parameter in pcm_apply_settings as it can decide for itself. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12618 a1c6a512-1295-4272-9138-f99709370657
* Dual core support for PP502x players (iPod G4 and later, iriver h10, Sansa - ↵Daniel Ankers2007-03-04
| | | | | | iPod G3 will be coming soon.) This allows threads to be run on either core provided that all communications between the cores is done using uncached memory. There should be no significant change in battery life from doing this. Documentation (on the RockboxKernel wiki page) will follow shortly. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12601 a1c6a512-1295-4272-9138-f99709370657
* Fix errors I hope.Michael Sevakis2007-02-16
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12333 a1c6a512-1295-4272-9138-f99709370657
* SWCODEC Recording: Improve buffer handling by 1) Lowering watermark for ↵Michael Sevakis2007-02-16
| | | | | | flushing 2) Flushing down to a low watermark instead of a fixed number of chunks 3) Allowing in-process automatic flushes to be interrupted so file splits and stops can be marked in a timely manner (especially important when approaching 2GB limit) 4) Flush small amounts if buffer is filled during a split to protect integrity of streams 5) Boost both pcmrec and codec threads then thread priority boost is needed so that encoder doesn't fail to run and keep up with incoming data git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12332 a1c6a512-1295-4272-9138-f99709370657
* Finish putting all the code and data that depends upon ↵Michael Sevakis2007-01-31
| | | | | | HAVE_PRIORITY_SCHEDULING into the #ifdef blocks git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12163 a1c6a512-1295-4272-9138-f99709370657
* Make recording compile without priority schedulingBrandon Low2006-12-25
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11837 a1c6a512-1295-4272-9138-f99709370657
* Convert queues to use intptr_t for event data and return values as most of ↵Michael Sevakis2006-12-19
| | | | | | the time pointer are not passed and it should make some things a bit cleaner. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11818 a1c6a512-1295-4272-9138-f99709370657
* SWCODEC recording: More cleanup of stuff after queue additions and audio ↵Michael Sevakis2006-12-17
| | | | | | driver unification. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11783 a1c6a512-1295-4272-9138-f99709370657
* SWCODEC: More recording simplifications and less UI hanging in some cases ↵Michael Sevakis2006-12-17
| | | | | | using queue_send. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11781 a1c6a512-1295-4272-9138-f99709370657
* Commit the kinds of changes that queue_send is mean for.Michael Sevakis2006-12-16
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11778 a1c6a512-1295-4272-9138-f99709370657
* Place all recording functionality on pcmrec thread to serialize all ↵Michael Sevakis2006-12-10
| | | | | | recording operations. Button mash problems should be ruled out of pcm_record.c. Add additional lightweight checks by default and display any warnings that occurred during recording in first line of recording screen when they occur by blinking back and forth from warning display to normal line (Warning: <hex bitmask>). Warnings are cleared when beginning a new recording so write the number down if you see it and file a report. Add heavier checks when PCMREC_PARANOID is defined in the player config header (encoders and pcm_record must be aware of the define since it changes the chunk header format). These checks are mainly concerned with things that may cause skipping but also add unwanted overhead for normal operation. Best used with logf enabled. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11705 a1c6a512-1295-4272-9138-f99709370657
* SWCODEC Recording: 1) Fix minor bug of not subtracting line aligment ↵Michael Sevakis2006-12-07
| | | | | | adjustment from buffer size. 2) Handle stop and pause better and let pcmrec thread lock the DMA as that could cause prerecording to get disabled internally 3) Make sure to snapshot DMA write index to ensure compiler doesn't perform multiple access when calculating available data (probably just paranoia on my part) 4) Handle USB connect in recording thread a little better by resetting hardware to defaults after closing 5) Make power managment stop recording properly when powering off (ie. no yield() from interrupt handler! :) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11685 a1c6a512-1295-4272-9138-f99709370657
* Small change to PCM recording API for low latency effects. Latency can be as ↵Michael Sevakis2006-12-06
| | | | | | low as 14 samples from input to output including the FIFOs (ColdFire) but 16 is more reasonable an expectation if only tranferring one sample per interrupt (\!). May convert PCM playback to use the same method as it can still be used in the old manner with some slight mods but has the potential to enable new features since it is more flexible. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11668 a1c6a512-1295-4272-9138-f99709370657
* Removed the cpu boost tracking debug feature for now because ofMiika Pekkarinen2006-12-05
| | | | | | | different kind of problems. Better implementation can be done later. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11665 a1c6a512-1295-4272-9138-f99709370657
* PCM: A few tiny changes. 1) Recording a) Flush all pending files if filename ↵Michael Sevakis2006-11-29
| | | | | | queue is full or else perpetual flushing of 1 will occur at low bitrates and short split times. b) #ifdef out currently unused bits and save little less than 1/2K 2) Cleanup some declarations. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11623 a1c6a512-1295-4272-9138-f99709370657
* iRiver/iAudio: Added audio_set_recording gain and sound_default to plugin ↵Michael Sevakis2006-11-23
| | | | | | API. Simplified plugin recording by target/-ing some audio functions. UDA1380 records with WSPLL as a result. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11577 a1c6a512-1295-4272-9138-f99709370657
* Audio bugfixes. Should wait for voice codec to reload before returning ↵Michael Sevakis2006-11-22
| | | | | | buffer when stealing voice. Certain variables that get or may get used during an IRQ should be declared 'volatile'. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11572 a1c6a512-1295-4272-9138-f99709370657
* H100/General: HAL for S/PDIF and refinement/bufixes in optical output ↵Michael Sevakis2006-11-13
| | | | | | powering/source selection. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11523 a1c6a512-1295-4272-9138-f99709370657
* Big Patch adds primarily: Samplerate and format selection to recording for ↵Michael Sevakis2006-11-06
| | | | | | 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
* Add CPU boost tracker to see where boosts are coming fromSteve Bavin2006-10-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11125 a1c6a512-1295-4272-9138-f99709370657
* Forgot to remove a must_boost reference. Unboost after fsyncMichael Sevakis2006-09-20
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11008 a1c6a512-1295-4272-9138-f99709370657
* Make sure CPU is boosted when writing recorded dataMichael Sevakis2006-09-20
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11007 a1c6a512-1295-4272-9138-f99709370657
* New scheduler, with priorities for swcodec platforms. Frequent taskMiika Pekkarinen2006-09-16
| | | | | | | | | | 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
* Display bitrate (Q value for Archos), samplerate, channels and recording ↵Martin Scarratt2006-09-02
| | | | | | format (M = MP3) in the statusbar in the recording screen. This is all new info for archos targets and I-river targets now have this info on the remote as well as the main screen git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10856 a1c6a512-1295-4272-9138-f99709370657
* Added FS#2939 Encoder Codec Interface + Codecs by Antonius Hellmann with ↵Michael Sevakis2006-08-28
| | | | | | additional FM Recording support and my modifications git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10789 a1c6a512-1295-4272-9138-f99709370657
* Patch #5347 by Rani Hod - Adds FM radio and recording features to the iAudio X5.Linus Nielsen Feltzing2006-07-21
| | | | | | | Also includes a rewrite of the Coldfire I2C driver to include both read and write. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10272 a1c6a512-1295-4272-9138-f99709370657
* For iriver recording: do not boost while recording unless source is spdif. ↵Peter D'Hoye2006-06-30
| | | | | | When saving to disk, boost if needed. Decreased max file size a bit for safety. Increases runtime while recording analog sources. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10159 a1c6a512-1295-4272-9138-f99709370657
* Iriver: Moved the handling of the UDA1380 split gain (analog preamp + ↵Jens Arnold2006-05-14
| | | | | | decimator gain) into the UDA driver. * All: Settings structure sorted & cleaned up. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9927 a1c6a512-1295-4272-9138-f99709370657
* H1x0: Obey SPDIF power setting for monitoring SPDIF recordings as far as ↵Jens Arnold2006-05-12
| | | | | | possible. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9923 a1c6a512-1295-4272-9138-f99709370657
* Iriver recording: Always route the signals through the coldfire audio ↵Jens Arnold2006-05-12
| | | | | | interface for monitoring. Advantages: (H1x0) Enables parallel analog and SPDIF monitoring of both analog or SPDIF sources. When recording from SPDIF, the SPDIF monitor signal is pure pass-through. (all) Digital clipping is now audible in the analog monitor signal. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9918 a1c6a512-1295-4272-9138-f99709370657
* Optical S/PDIF recording and monitoring for Iriver H1x0. Removed unsupported ↵Thom Johansen2006-05-11
| | | | | | recording options on Iriver. Sample rate displayed in recording screen reflects the real S/PDIF sample rate when doing S/PDIF recording. Testing would be appreciated. Thanks to Jens Arnold for fixing the DMA hang issue. Will reset settings! git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9916 a1c6a512-1295-4272-9138-f99709370657
* Recording buffer offset must be passed on to the firmware calls, not the ↵Peter D'Hoye2006-04-30
| | | | | | other way around. Should fix yellow builds. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9842 a1c6a512-1295-4272-9138-f99709370657
* The recording buffer should not try to use the voice buffer, so map our ↵Peter D'Hoye2006-04-30
| | | | | | buffer after it. On swcodec targets, recording always uses this buffer so always notify the others that we did. Fixes bug 4754. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9841 a1c6a512-1295-4272-9138-f99709370657