Commit graph

14166 commits

Author SHA1 Message Date
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
Andree Buschmann
46d7fb9b4a Roll back r30328. Sorry for any inconvenience.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30329 a1c6a512-1295-4272-9138-f99709370657
2011-08-18 15:17:25 +00:00
Andree Buschmann
1466519bd8 Allow to use different compiler settings for codecs built from 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@30328 a1c6a512-1295-4272-9138-f99709370657
2011-08-18 14:01:31 +00:00
Andree Buschmann
4d01ace73f Submit a patch to the VGM codec by Mauricio Gama which saves some more RAM through changes of the buffer configuration and an update of the resampler code. Additionally enable VGM for low memory targets and update the manual.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30327 a1c6a512-1295-4272-9138-f99709370657
2011-08-17 22:20:09 +00:00
Andree Buschmann
4070f4f17b Reduce memory consumption of VGM codec for low memry targets at the costs of some performance for tracks using the 2616 emulator.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30326 a1c6a512-1295-4272-9138-f99709370657
2011-08-17 21:48:28 +00:00
Thomas Martitz
1da1b70e26 Fix panic after usb extraction if lastfm logging is enabled.
Previously the scrobbler was shutdown, probably to force a log flush,
and the cache was re-allocated afterwards. Now don't shut down or
re-allocate, but instead rely on the ata idle callback which is
called called on usb insertion to do the log flush.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30325 a1c6a512-1295-4272-9138-f99709370657
2011-08-17 11:27:33 +00:00
Björn Stenberg
2e154df92f Removed attribution, at author's request.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30322 a1c6a512-1295-4272-9138-f99709370657
2011-08-16 14:22:59 +00:00
Michael Chicoine
2ec357248c Update American English language
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30320 a1c6a512-1295-4272-9138-f99709370657
2011-08-16 12:17:15 +00:00
Andree Buschmann
9477675f04 Save some RAM in a libgme emulator used for VGM codec. LFO_ENV_TAB[] and LFO_FREQ_TAB[] are obselete.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30319 a1c6a512-1295-4272-9138-f99709370657
2011-08-15 18:24:50 +00:00
Thomas Martitz
2c07d238db Fix tempbuf assignment in tagcache and bump plugin API/ABI for r30308.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30314 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 18:08:40 +00:00
Andree Buschmann
d559492603 Remove further float operations from emu2413 in libgme to speed up synthesis.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30313 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 18:04:40 +00:00
Thomas Martitz
89c8cbebf2 Add change that got lost somehow in r30308.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30312 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 15:51:08 +00:00
Thomas Martitz
b8fabfef84 Fix remaining problems.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30311 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 15:43:43 +00:00
Thomas Martitz
8a701e5488 Fix errors and warnings.
The buffer_offset paramter of audio_init_recording() is removed as it
was unused in both implementations.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30310 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 15:37:05 +00:00
Thomas Martitz
d1322b7159 GSoC/Buflib: Replace all direct accesses to audiobuf with buffer API functions.
Namely, introduce buffer_get_buffer() and buffer_release_buffer().
buffer_get_buffer() aquires all available and grabs a lock, attempting to
call buffer_alloc() or buffer_get_buffer() while this lock is locked will cause
a panicf() (doesn't actually happen, but is for debugging purpose).
buffer_release_buffer() unlocks that lock and can additionally increment the
audiobuf buffer to make an allocation. Pass 0 to only unlock if buffer was
used temporarily only.
buffer_available() is a replacement function to query audiobuflen, i.e. what's
left in the buffer.
Buffer init is moved up in the init chain and handles ipodvideo64mb internally.

Further changes happened to mp3data.c and talk.c as to not call the above API
functions, but get the buffer from callers. The caller is the audio system
which has the buffer lock while mp3data.c and talk mess with the buffer.
mpeg.c now implements some buffer related functions of playback.h, especially
audio_get_buffer(), allowing to reduce #ifdef hell a tiny bit.

audiobuf and audiobufend are local to buffer.c now.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30308 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 15:13:00 +00:00
Frank Gevaerts
9b9bd73dfb Fix last charcell warning
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30307 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 14:13:16 +00:00
Jonathan Gordon
c3fe7b0f88 need... sleep... try again to fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30306 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 14:12:21 +00:00
Jonathan Gordon
810e9c4dcb fix charcell again.... wouldnt it be nice to remove charcell support all together? :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30305 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 14:04:46 +00:00
Jonathan Gordon
4ed1340a7c Fix player errors
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30303 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 13:56:10 +00:00
Jonathan Gordon
281f1a1ed6 New skin tags: %Vs() to set the text style and %Vg() to get the viewports gradient colours
%Vs(mode[, param]) : mode can be "invert", "color" (where param is the colour to use", "clear" to disable the current style, "gradient" where param is the number of lines the gradient should draw over.
%Vg(start colour, end colour, [text colour]), if this tag isnt used the list selection colours from the settings will set the gradient colours

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30302 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 13:50:07 +00:00