• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Music playback
  • Assigned To No-one
  • Operating System All players
  • Severity High
  • Priority Very Low
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by snowgoon - 2006-08-24

FS#5879 - Seeking backwards bug

Since 31/07/2006 seeking in long files is (more) broken. To test start playing a long track, wait until the buffer wraps, then seek backwards to a point that is no longer in the buffer, eg. the start of the track. Playback either crashes, or (sometimes for mp3) plays from the wrong seek point. Test failed with current builds, eg. 24/08/2006 and cvs build, on iAudio X5 with flac, mp3 and mpc files. The problem is that track start_pos is not incremented if the buffer wraps and overwrites existing track data already in the buffer. If the user seeks backwards to a point that has been overwritten, the code fails to detect that the seek point is no longer in the buffer.

The attached file patches playback.c to detect when the track in buffer is being overwritten (during wrapping), and updates the start_pos. It also adds a configuration option (like CODEC_SET_FILEBUF_CHUNKSIZE) to adjust the rebuffer preseek since some codecs (like musepack) do not support resync.

Closed by  learman
2006-08-30 15:48
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

Patch committed (with one minor change by me). Thanks!


Available keyboard shortcuts


Task Details

Task Editing