Commit graph

14185 commits

Author SHA1 Message Date
Thomas Martitz
35b0c613d0 Bump plugin api version.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30388 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 16:50:16 +00:00
Thomas Martitz
42f10e04df Remove buflib from the pluginlib and use the core one.
buflib_get_data() isn't inlined for plugins anymore, but can be if really needed.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30387 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 16:48:36 +00:00
Michael Sevakis
456170afdf Clean up and simplify the voice thread code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30386 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 15:35:25 +00:00
Thomas Martitz
0c4c81620f Fix h100 red and other warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30384 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:32:16 +00:00
Thomas Martitz
41b04e55eb Fix hwcodec red.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30383 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:28:01 +00:00
Thomas Martitz
e0aeca12ad Bump plugin API.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30382 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:18:29 +00:00
Thomas Martitz
baa070cca6 GSoC/Buflib: Enable compaction in buflib.
This enables the ability to allocate (and free) memory dynamically
without fragmentation, through compaction. This means allocations can move
and fragmentation be reduced. Most changes are preparing Rockbox for this,
which many times means adding a move callback which can temporarily disable
movement when the corresponding code is in a critical section.

For now, the audio buffer allocation has a central role, because it's the one
having allocated most. This buffer is able to shrink itself, for which it
needs to stop playback for a very short moment. For this,
audio_buffer_available() returns the size of the audio buffer which can
possibly be used by other allocations because the audio buffer can shrink.

lastfm scrobbling and timestretch can now be toggled at runtime without
requiring a reboot.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30381 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:01:45 +00:00
Thomas Martitz
d0b72e2590 GSoC/Buflib: Add buflib memory alocator to the core.
The buflib memory allocator is handle based and can free and
compact, move or resize memory on demand. This allows to effeciently
allocate memory dynamically without an MMU, by avoiding fragmentation
through memory compaction.

This patch adds the buflib library to the core, along with
convinience wrappers to omit the context parameter. Compaction is
not yet enabled, but will be in a later patch. Therefore, this acts as a
replacement for buffer_alloc/buffer_get_buffer() with the benifit of a debug
menu.

See buflib.h for some API documentation.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30380 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:01:33 +00:00
Andree Buschmann
c940811ade Introduce CPU dependent IRAM configuration for libgme. Use ICODE_ATTR for an emu2413-function to speed up PP5022 by up to 6%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30379 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 12:35:12 +00:00
Michael Sevakis
72213e6b1b Make tdspeed.c a bit nicer to read. No functional changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30378 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 07:42:22 +00:00
Andree Buschmann
152c4fb819 Final commit to get test_codec working properly for both freq-scaling and non-freq-scaling targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30375 a1c6a512-1295-4272-9138-f99709370657
2011-08-29 13:48:31 +00:00
Andree Buschmann
656625b30e Fix logic of test_codec for targets with HAVE_ADJUSTABLE_CPU_FREQ.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30374 a1c6a512-1295-4272-9138-f99709370657
2011-08-29 13:00:35 +00:00
Michael Sevakis
e137e9e47f codec_main() prototype inside codec_crt0.c is no longer needed since it's in codecs.h now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30373 a1c6a512-1295-4272-9138-f99709370657
2011-08-28 22:53:40 +00:00
Nils Wallménius
91ba09b099 libtremor: comment out some more unused functions, make a function param unsigned to simplify generated code, gives a small speedup on cf.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30372 a1c6a512-1295-4272-9138-f99709370657
2011-08-28 17:28:44 +00:00
Nils Wallménius
1be2290bfa libtremor: remove some inline cf asm that is no longer needed with the new toolchain, no speed diff.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30371 a1c6a512-1295-4272-9138-f99709370657
2011-08-28 16:36:42 +00:00
Nils Wallménius
12e159dcb4 libtremor: comment out some unused functions and mark some file local functions static, saves a few hundred bytes and might give a tiny speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30370 a1c6a512-1295-4272-9138-f99709370657
2011-08-28 16:35:45 +00:00
Michael Sevakis
31567306e7 Restore functionality of pcmbuf_is_lowdata. It fell out of sync since the mixer code and then an incorrect change unintentionally remained in r30366.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30369 a1c6a512-1295-4272-9138-f99709370657
2011-08-28 14:26:59 +00:00
Andree Buschmann
cc6a780a13 Remove obsolete 'ci->set_elapsed()' from mpc.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30368 a1c6a512-1295-4272-9138-f99709370657
2011-08-28 14:25:38 +00:00
Michael Sevakis
9384cda2bb Remove INT_MAX from pcmbuf.c. Win32 sim compained about it and it isn't specifically important enough for another #include - it just needs a great enough value to cover any remaining data.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30367 a1c6a512-1295-4272-9138-f99709370657
2011-08-28 08:59:14 +00:00
Michael Sevakis
7ad2cad173 Commit work started in FS#12153 to put timing/position information in PCM
buffer chunks.

* Samples and position indication is closely associated with audio data
  instead of compensating by a latency constant. Alleviates problems with
  using the elapsed as a track indicator where it could be off by several
  steps.

* Timing is accurate throughout track even if resampling for pitch shift,
  whereas before it updated during transition latency at the normal 1:1 rate.

* Simpler PCM buffer with a constant chunk size, no linked lists.

In converting crossfade, a minor change was made to not change the WPS until
the fade-in of the incoming track, whereas before it would change upon the
start of the fade-out of the outgoing track possibly having the WPS change
with far too much lead time.

Codec changes are to set elapsed times *before* writing next PCM frame because
 time and position data last set are saved in the next committed PCM chunk. 


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30366 a1c6a512-1295-4272-9138-f99709370657
2011-08-28 07:45:35 +00:00
Bertrik Sikken
463b3ed8b2 Initial framework for the Sandisk Sansa Clip Zip
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30365 a1c6a512-1295-4272-9138-f99709370657
2011-08-27 16:21:19 +00:00
Nils Wallménius
3aeb7fad9a FS#12163 by Sean Bartell
get_long_be shifts an unsigned char left--which results in a signed int.
It then implicitly casts to unsigned long, which sign-extends the int,
leaving unwanted 1's in the upper bits. This affects AIFF.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30364 a1c6a512-1295-4272-9138-f99709370657
2011-08-27 12:34:21 +00:00
Bertrik Sikken
813b7623c1 FS#12207 - Fast second july update of Czech language by Marek Salaba
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30363 a1c6a512-1295-4272-9138-f99709370657
2011-08-27 10:24:30 +00:00
Andree Buschmann
ae2233b338 Change the cuesheet fix from r30359 to have a minor binsize increase on SH1.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30362 a1c6a512-1295-4272-9138-f99709370657
2011-08-26 16:46:23 +00:00
Steve Bavin
89f704bfb1 Utterly pointless fix for an unused Doom module (but while the code is in our source it ought not to have buffer overrides in, right?).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30361 a1c6a512-1295-4272-9138-f99709370657
2011-08-26 16:12:51 +00:00
Steve Bavin
953a073a4d Minor libwmavoice fixes; initialise the entire VBM tree and remove file handle leak from test util.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30360 a1c6a512-1295-4272-9138-f99709370657
2011-08-26 16:03:48 +00:00
Andree Buschmann
9931b3c7a8 Avoid overflow in cuesheet marker positioning. Fixes FS#12246. Thanks to Nick Peskett.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30359 a1c6a512-1295-4272-9138-f99709370657
2011-08-26 15:52:22 +00:00
Steve Bavin
dbee923b34 Fix marginal buffer overflow in chessbox.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30358 a1c6a512-1295-4272-9138-f99709370657
2011-08-26 15:50:16 +00:00
Steve Bavin
89ee922ab6 Remove a slightly silly null dereference. (a.k.a. I'm playing with cppcheck too.)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30357 a1c6a512-1295-4272-9138-f99709370657
2011-08-26 15:46:18 +00:00
Andree Buschmann
e3b3547e20 Fix an issue in libfaad found by static code analysis. Two arrays within the drc_info structure require a size of 64 due to the related implementation. This code section would not have been called as the decoder checks the number of channels and rejects decoding for files using more than MAX_CHANNELS (2). Closes FS#12245.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30356 a1c6a512-1295-4272-9138-f99709370657
2011-08-26 12:37:13 +00:00
Bertrik Sikken
a33625bd06 Add the codec_main declaration to apps/codecs.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30355 a1c6a512-1295-4272-9138-f99709370657
2011-08-25 20:52:50 +00:00
Thomas Jarosch
9dcde3571c Also fix uninitialized variables in xlcd_scroll_up()/xlcd_scroll_down()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30354 a1c6a512-1295-4272-9138-f99709370657
2011-08-25 20:47:44 +00:00
Thomas Jarosch
faf354c4f3 Fix file descriptor leak on error
Credit goes to "cppcheck" again.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30350 a1c6a512-1295-4272-9138-f99709370657
2011-08-25 19:42:00 +00:00
Thomas Jarosch
12ac381408 Fix file descriptor leak on error
Credit goes to "cppcheck".

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30349 a1c6a512-1295-4272-9138-f99709370657
2011-08-25 19:39:01 +00:00
Thomas Jarosch
bc6dd127e3 Fix use of uninitialized memory in xlcd_scroll_left() / xlcd_scroll_right() in special cases
Only valid for:
LCD_PIXELFORMAT == HORIZONTAL_PACKING && LCD_DEPTH != 2

Found by "cppcheck".

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30348 a1c6a512-1295-4272-9138-f99709370657
2011-08-25 19:34:15 +00:00
Thomas Jarosch
4ccb6e4f27 Clean up redundant assignment
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30347 a1c6a512-1295-4272-9138-f99709370657
2011-08-25 19:27:31 +00:00
Thomas Jarosch
0d651ddc48 Remove now unneeded variable
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30346 a1c6a512-1295-4272-9138-f99709370657
2011-08-25 19:24:16 +00:00
Thomas Jarosch
59b8c7816f Fix off-by-one memory corruption in resistor plugin.
I'm wondering if that also was the cause
for the lines exactly next to it:

---------------------------------
     /* This cleans out the mysterious garbage that appears */
     rb->lcd_clear_display();
---------------------------------
-> Atleast I see no garbage in the sim.

Credit for this bug goes to "cppcheck".

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30345 a1c6a512-1295-4272-9138-f99709370657
2011-08-25 19:18:20 +00:00
Michael Sevakis
697aa7f499 Do sync between pcmbuf volume controls without explicit IRQ masking, which is nicer and also allows pcmbuf.c to compile again as thumb code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30344 a1c6a512-1295-4272-9138-f99709370657
2011-08-25 00:12:19 +00:00
Thomas Martitz
9d4cd7c0bd Fix FS#12239, data abort after going from FMS to WPS.
The data abort was in find_handle() because current_handle was corrupted. This
most probably happened due to the FMS allocating Radio AA on the buffer without
resetting the buffer, corrupting buffering/playback state.

The fix is to grab buffer control explicitely.

r30308 isn't actually related, regardless of the task title.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30342 a1c6a512-1295-4272-9138-f99709370657
2011-08-23 18:43:17 +00:00
Michael Sevakis
4d903f27c3 Fix a miscomment in pcmbuf.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30341 a1c6a512-1295-4272-9138-f99709370657
2011-08-23 05:58:28 +00:00
Michael Sevakis
5078d460c6 Fix FS#12238 - WPS delay on pause introduced by r30097 which was the excuse I wanted anyway to do a better PCM fade on stop/pause implementation. New fade is asynchronous tick-based. Restores skin update points in the WPS that were removed when fading mechanism was changed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30340 a1c6a512-1295-4272-9138-f99709370657
2011-08-23 01:37:59 +00:00
Thomas Martitz
fbde6baab5 Move stuff a bit down to fix red on TALK_PARTIAL_LOAD.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30339 a1c6a512-1295-4272-9138-f99709370657
2011-08-22 10:23:11 +00:00
Thomas Martitz
b66d07a9e3 Fix red on hwcodec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30338 a1c6a512-1295-4272-9138-f99709370657
2011-08-22 09:56:58 +00:00
Michael Sevakis
c3e5625a7f Fix FS#12234 - Simulator crashes when playing mp3 file with cuesheet. The cuesheet in a lookahead mp3entry should not be taken to be valid, since it won't be the cue for the current track. Be sure id3->cuesheet is set NULL if grabbing the info from the buffer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30337 a1c6a512-1295-4272-9138-f99709370657
2011-08-22 00:14:56 +00:00
Michael Sevakis
29b5b32c33 Bookmarking no longer need worry about inability to speak while paused on SWCODEC.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30336 a1c6a512-1295-4272-9138-f99709370657
2011-08-21 21:21:40 +00:00
Thomas Martitz
29abe81889 Talk: Unify hwcodec and swcodec handling.
Do it the hwcodec way which doesn't need a buffer_alloc(). The buffer for the
.talk files is now allocated together with the voicefile buffer.

Should also fix a panic when the .talk file buffer was allocated late at runtime.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30335 a1c6a512-1295-4272-9138-f99709370657
2011-08-21 15:05:57 +00:00
Alex Parker
fca9518fa4 Make basque.lang be built. Fixes FS#12235
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30333 a1c6a512-1295-4272-9138-f99709370657
2011-08-19 11:52:32 +00:00
Andree Buschmann
0aa2fcb3b6 Optimized compiler settings for libgme. ARM now uses -O1 except for the 2413 emulator. The speed on PP5022 increases by 0-5% (NSF, YM2413-VGM), 5-10% (GBS, VGM) and 10-15% (SGC, KSS, AY).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30331 a1c6a512-1295-4272-9138-f99709370657
2011-08-18 21:01:08 +00:00
Nils Wallménius
b086458e4e FS#12231
Centralize the selection of codec compilation flags to codec.make
to avoid having to duplicate the per cpu selection logic and the
build rule in the individual codec lib make files and make tweaking
easier.

The two special cases, libmad and libspeex were left alone.

I plan to introduce a var for arm generation so that appropriate flags
can be selected per generation as benchmarking results have shown that
different arm arches might have different optimal flags.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30330 a1c6a512-1295-4272-9138-f99709370657
2011-08-18 16:33:41 +00:00