• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Music playback
  • Assigned To
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Release 3.8.1
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by MikeS - 2011-06-11
Last edited by MikeS - 2011-08-28

FS#12153 - Put Elapsed and Offset in PCM buffer frames.

Here we slice up PCM frames into about 1/20s chunks. Codecs set elapsed times and offset before the next PCM insert which associates those values with the audio data it subsequently commits to the buffer.

Codecs are modified only minimally so that they set elapsed/offset before outputting anything.


* Accurate position reporting of samples, especially when using the time index in an uncoventional way (as a sub-track indicator for instance).

* Timing is accurate through track duration regarless of pitch changes.

Now, this is still pretty prelimary. There will likely be short time-reporting glitches in the WPS when switching tracks. Crossfade is not properly converted so don’t use it here!

I don’t want to invest too much into the current way of doing mixing to accomodate a new buffer format. I’d like  FS#12150  in first before making changes to the format.

Primarily I put this up early so that videogame music enthusiasts can enjoy the benefits.

Closed by  MikeS
2011-08-28 08:44
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

r30366 - with acceptable solution to annoying sticky wicket

MikeS commented on 2011-07-20 06:02

Update this to the multichannel PCM system.

Crossfade now operates. Some subtle differences exist. Manual skips don’t have a fade-in delay and the WPS is updated when the fade-in of the new track happens rather than immediately at the beginning of the crossfade. WPS stays in better sync with what is being heard.

One last thing to work on that I haven’t yet is progress reporting glitches at track transitions, probably by suppressing updates and reenabling them at the right time.

Sync to r30189.

MikeS commented on 2011-07-23 09:25

Some cleanups. Fix a minor bungle or two. Still thinking-over the progress stuff mentioned above.

MikeS commented on 2011-07-26 03:58

This one seems pretty well to take care of issues previously mentioned with other version. There is one more nagging thing that is a consequence of this method and that is: because playing back the audio sets the time, if tracks are resumed with playback paused (using auto-resume), the time isn’t set until unpausing but shows “0:00”.

So, gotta get that one right too.

MikeS commented on 2011-08-08 17:04

That one issue of getting paused times is really a sticky wicket indeed. Still looking for a magic angle on this one or else things will be more warty than I care to have them be.

MikeS commented on 2011-08-23 03:22

Do a resync to r30340. A partial solution exists to the aformentioned problem but the crossfade case is still not nice to work out.

Edit: Fix revision number

MikeS commented on 2011-08-28 03:38

Ok, got a working solution that is not so bad. I’m not sure what was holding it up now. Next update is a commit.


Available keyboard shortcuts


Task Details

Task Editing