diff options
author | Brandon Low <lostlogic@rockbox.org> | 2007-11-05 17:50:51 +0000 |
---|---|---|
committer | Brandon Low <lostlogic@rockbox.org> | 2007-11-05 17:50:51 +0000 |
commit | 76f9bfa9455f14d58f559158c1e343dfe7e5e0ac (patch) | |
tree | 5899bde2b5b68d5909b0cc2104e52f330e09f354 /apps | |
parent | 3379440a4bfecef85c915fb079b595f98a6db1de (diff) | |
download | rockbox-76f9bfa9455f14d58f559158c1e343dfe7e5e0ac.tar.gz rockbox-76f9bfa9455f14d58f559158c1e343dfe7e5e0ac.zip |
When seeking foward off of the buffer, if it is a short seek don't rebuffer the whole track, just read enough to satisfy
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15479 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/buffering.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/apps/buffering.c b/apps/buffering.c index 651ec4c2ff..5a67f25038 100644 --- a/apps/buffering.c +++ b/apps/buffering.c @@ -650,6 +650,14 @@ static void rebuffer_handle(int handle_id, size_t newpos) if (!h) return; + if (newpos > h->offset && newpos - h->offset < BUFFERING_DEFAULT_FILECHUNK) + { + LOGFQUEUE("buffering >| Q_BUFFER_HANDLE"); + queue_send(&buffering_queue, Q_BUFFER_HANDLE, handle_id); + h->ridx = h->data + newpos; + return; + } + h->offset = newpos; LOGFQUEUE("buffering >| Q_RESET_HANDLE"); |