summaryrefslogtreecommitdiff
path: root/apps/buffering.c (follow)
Commit message (Collapse)AuthorAge
* Rework albumart buffering internally to allow for mutliple albumart sizes.Thomas Martitz2009-10-16
| | | | | | | | 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
* FS#10080Nils Wallménius2009-07-14
| | | | | | | | | | * 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
* Fix yellow when building with HAVE_ALBUMART, without HAVE_JPEG/HAVE_BMP_SCALING.Andrew Mahone2009-05-26
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21092 a1c6a512-1295-4272-9138-f99709370657
* Fix the lock contention stall during cover art load, by adding a separate ↵Andrew Mahone2009-05-15
| | | | | | | | 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
* Make JPEG and BMP scaler optional with HAVE_JPEG and HAVE_BMP_SCALING, both ↵Andrew Mahone2009-05-04
| | | | | | | | 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
* Search for, and load, JPEG album art files.Andrew Mahone2009-05-01
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20837 a1c6a512-1295-4272-9138-f99709370657
* Clean up some #includesBertrik Sikken2009-03-08
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20238 a1c6a512-1295-4272-9138-f99709370657
* Show the watermark in the "Show buffering thread" screen (in bytes).Thomas Martitz2009-02-23
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20096 a1c6a512-1295-4272-9138-f99709370657
* This should fix the occasional data aborts mainly in conjunction with ↵Antonius Hellmann2009-02-22
| | | | | | AlbumArt on PP targets. See FS#9827 for details. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20081 a1c6a512-1295-4272-9138-f99709370657
* Calculate watermark from bitrate and harddisk spinup time.Björn Stenberg2009-01-10
| | | | | | | | 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
* Make scaler output truly pluggable, add an 8-bit greyscale output toAndrew Mahone2008-12-26
| | | | | | | 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
* Use cookies for thread identification instead of pointers directly which ↵Michael Sevakis2008-12-10
| | | | | | 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
* resize-on-load for bitmap files on 2bpp and color targetsAndrew Mahone2008-12-09
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19374 a1c6a512-1295-4272-9138-f99709370657
* Fix FS#9319 and its (probably) duplicate, FS#9576. They both describe the ↵Nicolas Pennequin2008-12-02
| | | | | | | | | 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
* Apply FS#9500. This adds a storage_*() abstraction to replace ata_*(). To do ↵Frank Gevaerts2008-11-01
| | | | | | | | | 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
* Accept FS#9480 - centralise and organise the events in the apps/ layer. Jonathan Gordon2008-10-16
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18819 a1c6a512-1295-4272-9138-f99709370657
* Fix a possible deadlock if the album art loading failsJonathan Gordon2008-10-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18711 a1c6a512-1295-4272-9138-f99709370657
* Add handle values to the buffering LOGFQUEUE messages for easier debugging.Nicolas Pennequin2008-07-18
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18092 a1c6a512-1295-4272-9138-f99709370657
* Fix FS#9137 and FS#8194 (the end of a track is cut off after rebuffering): ↵Nicolas Pennequin2008-07-18
| | | | | | 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
* Hopefully fix FS #9153, as well as another bug (in fill_buffer) that could ↵Magnus Holmgren2008-07-11
| | | | | | cause problems when rebuffering. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18009 a1c6a512-1295-4272-9138-f99709370657
* Fix FS#8964 (CPU remains boosted after buffering). 'filling' needs to be set ↵Nicolas Pennequin2008-07-02
| | | | | | to false when there's nothing left to buffer. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17923 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
* Lock the linked list mutex when accessing the memory handles. This should ↵Nicolas Pennequin2008-05-13
| | | | | | 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
* Remove unused #define.Steve Bavin2008-04-30
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17294 a1c6a512-1295-4272-9138-f99709370657
* Cleaned up playblack.h header file and usage of it.Bertrik Sikken2008-04-28
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17276 a1c6a512-1295-4272-9138-f99709370657
* Fix FS#8902 (NSF files get skipped). The cause was too strict metadata ↵Nicolas Pennequin2008-04-16
| | | | | | 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
* A rather big change to how tracks are loaded: there are now two parts to the ↵Nicolas Pennequin2008-04-14
| | | | | | | | | 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
* Make mpegplayer sleep the disk after buffering to save battery. * Add a ↵Jens Arnold2008-04-13
| | | | | | 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
* Migrate the buffering code to the new events system.Nicolas Pennequin2008-04-03
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16950 a1c6a512-1295-4272-9138-f99709370657
* Just change PRIORITY_BUFFERING to 15. Seems a teeny tiny bit helpful to ↵Michael Sevakis2008-03-29
| | | | | | mpegplayer as well. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16884 a1c6a512-1295-4272-9138-f99709370657
* Change the default buffer filechunk back to 32KB and bump the buffering ↵Michael Sevakis2008-03-29
| | | | | | thread priority up by one. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16883 a1c6a512-1295-4272-9138-f99709370657
* Fix sim warnings.Nicolas Pennequin2008-03-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16881 a1c6a512-1295-4272-9138-f99709370657
* Boost the audio thread while it's filling the buffer. In the audio and the ↵Nicolas Pennequin2008-03-29
| | | | | | buffering threads, only cancel cpu boost when not filling. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16880 a1c6a512-1295-4272-9138-f99709370657
* Correct some windows line endings back to unix.Nicolas Pennequin2008-03-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16877 a1c6a512-1295-4272-9138-f99709370657
* Revert my earlier const madness, we'll keep the parameter lists simple.Steve Bavin2008-03-28
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16863 a1c6a512-1295-4272-9138-f99709370657
* The const police raid playback.c, should be no change to behaviour.Steve Bavin2008-03-28
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16860 a1c6a512-1295-4272-9138-f99709370657
* More consts that require no functional change.Steve Bavin2008-03-26
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16814 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
* Notify the buffering thread when a handle is added, so it can go into ↵Nicolas Pennequin2008-02-12
| | | | | | | | | filling mode. This is some sort of a replacement for the ATA idle callback. It will interrupt an ongoing buffering process (buffer_handle), but not for long enough to be a problem. Should fix a problem reported by Dave Hooper where inserting tracks into the playlist would flush the buffer and not refill it, sometimes causing the inserted tracks to be skipped. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16295 a1c6a512-1295-4272-9138-f99709370657
* Fix FS#6215 (player crashes after trying to resume deleted music file). As ↵Nicolas Pennequin2008-01-08
| | | | | | mentioned in the lastest comment, the problem was in trying to resume at an offset larger than the size of the file following the one that was deleted. This revealed a crash in the buffering code, which gets a fix, but we also need to intervene earlier in the track loading so that the track that gets played will be from its start. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16028 a1c6a512-1295-4272-9138-f99709370657
* Check that the pointer isn't NULL before dereferencing it, just to be safe ↵Nicolas Pennequin2007-12-16
| | | | | | and to allow using bufgetdata to know how much data is available. Also remove a few trailing spaces. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15940 a1c6a512-1295-4272-9138-f99709370657
* Possibly save a few bytes when stripping the tags of the last allocated handleBrandon Low2007-11-28
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15844 a1c6a512-1295-4272-9138-f99709370657
* Fix FS8069, because Nico_P made it easyBrandon Low2007-11-28
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15840 a1c6a512-1295-4272-9138-f99709370657
* Checking for total free buffer space isn't correct. What we need to check is ↵Nicolas Pennequin2007-11-26
| | | | | | the space available for the particular handle we want to rebuffer. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15821 a1c6a512-1295-4272-9138-f99709370657
* Buffering callbacks rework. There is now one callback for all the events ↵Nicolas Pennequin2007-11-26
| | | | | | | | | that can occur. Callbacks are now registred only once instead of being removed after having been called. Fix FS#8092 by flushing the audio when a rebuffer is needed. Also add some comments here and there. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15816 a1c6a512-1295-4272-9138-f99709370657
* Hopefully the last word on getting rid of yield_codecs loops (cut read chunk ↵Michael Sevakis2007-11-20
| | | | | | to 16kB). Sansa ata driver also didn't yield enough so buffering would starve other threads. Bump priority of audio thread to keep UI more responsive. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15724 a1c6a512-1295-4272-9138-f99709370657
* Make threads responsible for explicit cancellation of their own boosted ↵Michael Sevakis2007-11-20
| | | | | | status. Sleeping and timeouts will no longer cancel it. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15709 a1c6a512-1295-4272-9138-f99709370657
* Make the sim sleep between each file chunk, so that its buffering behaves ↵Nicolas Pennequin2007-11-19
| | | | | | more like that of a real target. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15694 a1c6a512-1295-4272-9138-f99709370657
* The error checking for bitmap handling in bufopen was serioulsy broken, as ↵Nicolas Pennequin2007-11-12
| | | | | | loading a huge bitmap showed. Fix it and reorganise the code slightly. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15597 a1c6a512-1295-4272-9138-f99709370657
* Really fix red this time.Nicolas Pennequin2007-11-11
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15576 a1c6a512-1295-4272-9138-f99709370657