summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2005-07-22 06:32:55 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2005-07-22 06:32:55 +0000
commiteab434c416a89a9de30bcca255334eeac97eb433 (patch)
treefd13b0eff472cd800d8d7b21babd70725d608de3 /apps
parentd3cbf8730579002093f003499104a861112d4dc5 (diff)
downloadrockbox-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.c4
-rw-r--r--apps/playback.c5
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;