diff options
| author | Miika Pekkarinen <miipekk@ihme.org> | 2005-07-22 06:32:55 +0000 |
|---|---|---|
| committer | Miika Pekkarinen <miipekk@ihme.org> | 2005-07-22 06:32:55 +0000 |
| commit | eab434c416a89a9de30bcca255334eeac97eb433 (patch) | |
| tree | fd13b0eff472cd800d8d7b21babd70725d608de3 /apps | |
| parent | d3cbf8730579002093f003499104a861112d4dc5 (diff) | |
| download | rockbox-eab434c416a89a9de30bcca255334eeac97eb433.zip rockbox-eab434c416a89a9de30bcca255334eeac97eb433.tar.gz rockbox-eab434c416a89a9de30bcca255334eeac97eb433.tar.bz2 rockbox-eab434c416a89a9de30bcca255334eeac97eb433.tar.xz | |
More accurate playback position calculation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7218 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/pcmbuf.c | 4 | ||||
| -rw-r--r-- | apps/playback.c | 5 |
2 files changed, 3 insertions, 6 deletions
diff --git a/apps/pcmbuf.c b/apps/pcmbuf.c index cf6911b..a8769e3 100644 --- a/apps/pcmbuf.c +++ b/apps/pcmbuf.c @@ -202,8 +202,8 @@ unsigned int pcmbuf_get_latency(void) { int latency; - /* This has to be done better. */ - latency = (pcmbuf_size - audiobuffer_free - CHUNK_SIZE)/4 / (44100/1000); + latency = (pcmbuf_unplayed_bytes + pcm_get_bytes_waiting()) + / 4 / (44100/1000); if (latency < 0) latency = 0; diff --git a/apps/playback.c b/apps/playback.c index aadb1e2..7aaff01 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -265,10 +265,7 @@ void codec_set_offset_callback(unsigned int value) if (ci.stop_codec) return ; - /* The 1000 here is a hack. pcmbuf_get_latency() should - * be more accurate - */ - latency = (pcmbuf_get_latency() + 1000) * cur_ti->id3.bitrate / 8; + latency = pcmbuf_get_latency() * cur_ti->id3.bitrate / 8; if (value < latency) { cur_ti->id3.offset = 0; |