summaryrefslogtreecommitdiffstats
path: root/apps/buffering.c
AgeCommit message (Collapse)AuthorFilesLines
2010-05-14cast ssize_t to longRafaël Carré1-1/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26033 a1c6a512-1295-4272-9138-f99709370657
2010-05-06Move c/h files implementing/defining standard library stuff into a new libc ↵Thomas Martitz1-1/+0
directory, also standard'ify some parts of the code base (almost entirely #include fixes). This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
2010-03-25Make storage alignement use cache alignement macrosRafaël Carré1-7/+5
Introduce STORAGE_ALIGN_DOWN, STORAGE_PAD (using new CACHE_PAD) and STORAGE_OVERLAP (using new CACHE_OVERLAP), make them useful only when PROC_NEEDS_CACHEALIGN and STORAGE_NEEDS_ALIGN are defined Modify PP and nano2g system-target.h accordingly git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25336 a1c6a512-1295-4272-9138-f99709370657
2010-02-20Use a helpfer function to avoid ugly casting and correct some data types (no ↵Thomas Martitz1-14/+16
functional change). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24790 a1c6a512-1295-4272-9138-f99709370657
2010-02-18Hopefully fix yellow now, I don't understand why %ld works for ssize_t but ↵Thomas Martitz1-1/+2
%lu not for size_t (and still no warnings on my system). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24757 a1c6a512-1295-4272-9138-f99709370657
2010-02-18Fix yellow caused by signedness.Thomas Martitz1-1/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24756 a1c6a512-1295-4272-9138-f99709370657
2010-02-18Fix FS#11004 - Buffering crashes when skipping back from end of song.Thomas Martitz1-19/+23
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24755 a1c6a512-1295-4272-9138-f99709370657
2010-02-12Convert RINGBUF_* macros to inline functions, saving binsize and improving ↵Thomas Martitz1-44/+68
type safety. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24618 a1c6a512-1295-4272-9138-f99709370657
2010-02-01Align addresses in the buffering code to STORAGE_ALIGN_MASK if the target ↵Torne Wuff1-4/+33
has one. The PP502x DMA controller can only deal with doing DMA to 16-byte-aligned addresses because we have inadequate control over the cache to prevent interference. Other targets may also *prefer* cacheline aligned DMAs to reduce the number of cache operations required. Almost all disk reads in buffering.c will now be suitably aligned, allowing DMA to be used on PP502x. Original change from FS#9708 by Boris Gjenero (dreamlayers). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24440 a1c6a512-1295-4272-9138-f99709370657
2009-11-22buffering.c: cosmeticsRafaël Carré1-16/+16
remove tabs, remove trailing spaces, indentation git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23697 a1c6a512-1295-4272-9138-f99709370657
2009-11-21Commit FS#10605 - stable playback on low memory swcodec targets by Matthias ↵Michael Giacomelli1-43/+46
Schneider. Should allow stable playback on targets with less then 4MB of RAM and sofware decoding such as the Sandisk Clip, c200v2, m200v4 and probably others. Fixes several problems in buffering that occured when the files to be buffered weren't much smaller then the ring buffer size. Fixes a bug where move_handle would corrupt the audio buffer when trying to copy a handle that both wrapped around the highest address in the ring buffer and overlapped part of the source and desination ranges. Moves the decision in playback.c about when to update the current track handle from audio_check_new_track to after the metadata has been buffered. Corrects several other minor pieces of code. I've logged about 100 hours without a crash on various players with this patch but its possible it breaks some combination of players and features I haven't thought to test. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23680 a1c6a512-1295-4272-9138-f99709370657
2009-11-09Removed unneeded includesJeffrey Goode1-1/+0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23578 a1c6a512-1295-4272-9138-f99709370657
2009-10-25buffering: leave a comment to explain what is broken in the code and link to ↵Rafaël Carré1-0/+25
FS#10605 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23344 a1c6a512-1295-4272-9138-f99709370657
2009-10-16Rework albumart buffering internally to allow for mutliple albumart sizes.Thomas Martitz1-5/+15
Playback now has a few albumart slots. Anything (most importantly: skins) can obtain such a slot. The slot has fields for the size which is passed to bufopen then to image_load to buffer the albumart with the proper size. Currently there's 1 slot. We can increase it for remotes if we want. Custom statusbar will increase it. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23209 a1c6a512-1295-4272-9138-f99709370657
2009-07-14FS#10080Nils Wallménius1-2/+2
* Move strncpy() from core to the pluginlib * Introduce strlcpy() and use that instead in most places (use memcpy in a few) in core and some plugins * Drop strncpy() from the codec api as no codec used it * Bump codec and plugin api versions git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21863 a1c6a512-1295-4272-9138-f99709370657
2009-05-26Fix yellow when building with HAVE_ALBUMART, without HAVE_JPEG/HAVE_BMP_SCALING.Andrew Mahone1-1/+3
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21092 a1c6a512-1295-4272-9138-f99709370657
2009-05-15Fix the lock contention stall during cover art load, by adding a separate ↵Andrew Mahone1-2/+19
modify mutex for the buffer. Operations that modify contents of a buffer entry can still proceed, but ones that add or remove buffer entries, or move them in memory, will still block. Some members of struct memory_handle also need an earlier init in bufopen to make sure that buffer stats aren't trashed. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20932 a1c6a512-1295-4272-9138-f99709370657
2009-05-04Make JPEG and BMP scaler optional with HAVE_JPEG and HAVE_BMP_SCALING, both ↵Andrew Mahone1-1/+3
defined for all targets that have HAVE_ALBUMART. Disable JPEG in PictureFlow and pluginlib album art search with 32KiB plugin buffer until PictureFlow gets overlay support. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20851 a1c6a512-1295-4272-9138-f99709370657
2009-05-01Search for, and load, JPEG album art files.Andrew Mahone1-4/+10
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20837 a1c6a512-1295-4272-9138-f99709370657
2009-03-08Clean up some #includesBertrik Sikken1-1/+0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20238 a1c6a512-1295-4272-9138-f99709370657
2009-02-23Show the watermark in the "Show buffering thread" screen (in bytes).Thomas Martitz1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20096 a1c6a512-1295-4272-9138-f99709370657
2009-02-22This should fix the occasional data aborts mainly in conjunction with ↵Antonius Hellmann1-9/+3
AlbumArt on PP targets. See FS#9827 for details. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20081 a1c6a512-1295-4272-9138-f99709370657
2009-01-10Calculate watermark from bitrate and harddisk spinup time.Björn Stenberg1-22/+3
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
2008-12-26Make scaler output truly pluggable, add an 8-bit greyscale output toAndrew Mahone1-1/+1
pluginlib for use with greylib, and add source for a test scaled bmp viewer using greylib. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19593 a1c6a512-1295-4272-9138-f99709370657
2008-12-10Use cookies for thread identification instead of pointers directly which ↵Michael Sevakis1-4/+4
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-09resize-on-load for bitmap files on 2bpp and color targetsAndrew Mahone1-2/+10
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19374 a1c6a512-1295-4272-9138-f99709370657
2008-12-02Fix FS#9319 and its (probably) duplicate, FS#9576. They both describe the ↵Nicolas Pennequin1-0/+5
boost remaining active after a change of the dynamic playlist, an issue added in r17109. The fix is to notify the buffering thread whenever an ID3 handle is created via bufopen (as is done in the other cases of bufopen). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19304 a1c6a512-1295-4272-9138-f99709370657
2008-11-01Apply FS#9500. This adds a storage_*() abstraction to replace ata_*(). To do ↵Frank Gevaerts1-3/+3
that, it also introduces sd_*, nand_*, and mmc_*. This should be a good first step to allow multi-driver targets, like the Elio (ATA/SD), or the D2 (NAND/SD). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18960 a1c6a512-1295-4272-9138-f99709370657
2008-10-16Accept FS#9480 - centralise and organise the events in the apps/ layer. Jonathan Gordon1-7/+7
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18819 a1c6a512-1295-4272-9138-f99709370657
2008-10-05Fix a possible deadlock if the album art loading failsJonathan Gordon1-2/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18711 a1c6a512-1295-4272-9138-f99709370657
2008-07-18Add handle values to the buffering LOGFQUEUE messages for easier debugging.Nicolas Pennequin1-9/+9
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18092 a1c6a512-1295-4272-9138-f99709370657
2008-07-18Fix FS#9137 and FS#8194 (the end of a track is cut off after rebuffering): ↵Nicolas Pennequin1-1/+1
the cause was a confusion between regular subtraction and subtraction in a ring-buffer. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18090 a1c6a512-1295-4272-9138-f99709370657
2008-07-11Hopefully fix FS #9153, as well as another bug (in fill_buffer) that could ↵Magnus Holmgren1-5/+4
cause problems when rebuffering. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18009 a1c6a512-1295-4272-9138-f99709370657
2008-07-02Fix FS#8964 (CPU remains boosted after buffering). 'filling' needs to be set ↵Nicolas Pennequin1-0/+2
to false when there's nothing left to buffer. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17923 a1c6a512-1295-4272-9138-f99709370657
2008-06-28Updated our source code header to explicitly mention that we are GPL v2 orDaniel Stenberg1-2/+4
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-05-13Lock the linked list mutex when accessing the memory handles. This should ↵Nicolas Pennequin1-0/+4
fix the invalid values appearing for short times in the buffering debug screen. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17497 a1c6a512-1295-4272-9138-f99709370657
2008-04-30Remove unused #define.Steve Bavin1-4/+0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17294 a1c6a512-1295-4272-9138-f99709370657
2008-04-28Cleaned up playblack.h header file and usage of it.Bertrik Sikken1-1/+0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17276 a1c6a512-1295-4272-9138-f99709370657
2008-04-16Fix FS#8902 (NSF files get skipped). The cause was too strict metadata ↵Nicolas Pennequin1-1/+5
checking (the NSF metadata parser doesn't fill the 'length' field). Hopefully there won't be any problems with that anymore. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17142 a1c6a512-1295-4272-9138-f99709370657
2008-04-14A rather big change to how tracks are loaded: there are now two parts to the ↵Nicolas Pennequin1-1/+39
process and metadata loading is done by the buffering thread (except for the first unbuffered track). The audio thread now calls audio_load_track, and once the metadata is loaded, the buffering thread sends an event which will make the audio thread call audio_finish_load_track. This one then takes care of the rest of the loading. This method makes skipping noticeably faster for unbuffered tracks, and especially backwards. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17109 a1c6a512-1295-4272-9138-f99709370657
2008-04-13Make mpegplayer sleep the disk after buffering to save battery. * Add a ↵Jens Arnold1-2/+0
simulator stub for ata_sleep(), and un-ifdef most calls to it. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17096 a1c6a512-1295-4272-9138-f99709370657
2008-04-03Migrate the buffering code to the new events system.Nicolas Pennequin1-59/+6
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16950 a1c6a512-1295-4272-9138-f99709370657
2008-03-29Just change PRIORITY_BUFFERING to 15. Seems a teeny tiny bit helpful to ↵Michael Sevakis1-1/+1
mpegplayer as well. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16884 a1c6a512-1295-4272-9138-f99709370657
2008-03-29Change the default buffer filechunk back to 32KB and bump the buffering ↵Michael Sevakis1-2/+2
thread priority up by one. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16883 a1c6a512-1295-4272-9138-f99709370657
2008-03-29Fix sim warnings.Nicolas Pennequin1-1/+2
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16881 a1c6a512-1295-4272-9138-f99709370657
2008-03-29Boost the audio thread while it's filling the buffer. In the audio and the ↵Nicolas Pennequin1-2/+4
buffering threads, only cancel cpu boost when not filling. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16880 a1c6a512-1295-4272-9138-f99709370657
2008-03-29Correct some windows line endings back to unix.Nicolas Pennequin1-8/+8
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16877 a1c6a512-1295-4272-9138-f99709370657
2008-03-28Revert my earlier const madness, we'll keep the parameter lists simple.Steve Bavin1-30/+30
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16863 a1c6a512-1295-4272-9138-f99709370657
2008-03-28The const police raid playback.c, should be no change to behaviour.Steve Bavin1-29/+34
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16860 a1c6a512-1295-4272-9138-f99709370657
2008-03-26More consts that require no functional change.Steve Bavin1-36/+38
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16814 a1c6a512-1295-4272-9138-f99709370657