diff options
| author | Thom Johansen <thomj@rockbox.org> | 2005-11-06 19:12:27 +0000 |
|---|---|---|
| committer | Thom Johansen <thomj@rockbox.org> | 2005-11-06 19:12:27 +0000 |
| commit | 741012004b996375bba172fc4beb0bff92ce15db (patch) | |
| tree | ca9a6f4b188c277e090323204e8da7b29cdfaad3 /apps/codecs/mpc.c | |
| parent | 3aa842c9a37928d718e8ea088c84901067d0889c (diff) | |
| download | rockbox-741012004b996375bba172fc4beb0bff92ce15db.zip rockbox-741012004b996375bba172fc4beb0bff92ce15db.tar.gz rockbox-741012004b996375bba172fc4beb0bff92ce15db.tar.bz2 rockbox-741012004b996375bba172fc4beb0bff92ce15db.tar.xz | |
Disabled Musepack seeking, since it's so slow that most users conclude the codec has crashed. Left in original seek code for those who're aware of the issue and want seek support.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7767 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/mpc.c')
| -rw-r--r-- | apps/codecs/mpc.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/apps/codecs/mpc.c b/apps/codecs/mpc.c index 0cb4095..fb42447 100644 --- a/apps/codecs/mpc.c +++ b/apps/codecs/mpc.c @@ -137,15 +137,29 @@ next_track: /* This is the decoding loop. */ samplesdone = 0; do { + #if 0 + /* Complete seek handler. This will be extremely slow and unresponsive + on target, so has been disabledt. */ if (ci->seek_time) { - mpc_int64_t new_sample_offset = ci->seek_time*info.sample_freq/1000; - if (mpc_decoder_seek_sample(&decoder, new_sample_offset)) { - samplesdone = new_sample_offset; + mpc_int64_t new_offset = (ci->seek_time - 1)*info.sample_freq/1000; + if (mpc_decoder_seek_sample(&decoder, new_offset)) { + samplesdone = new_offset; ci->set_elapsed(ci->seek_time); } ci->seek_complete(); } - + #else + /* Seek to start of track handler. This is the only case that isn't slow + as hell, and needs to be supported for the back button to function as + wanted. */ + if (ci->seek_time == 1) { + if (mpc_decoder_seek_sample(&decoder, 0)) { + samplesdone = 0; + ci->set_elapsed(0); + } + ci->seek_complete(); + } + #endif if (ci->stop_codec || ci->reload_codec) break; @@ -160,7 +174,7 @@ next_track: samplesdone += status; ci->set_elapsed(samplesdone/(frequency/1000)); } - } while (status != 0) ; + } while (status != 0); if (ci->request_next_track()) goto next_track; |