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/buffering.c | |
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/buffering.c')
-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) | |||
650 | if (!h) | 650 | if (!h) |
651 | return; | 651 | return; |
652 | 652 | ||
653 | if (newpos > h->offset && newpos - h->offset < BUFFERING_DEFAULT_FILECHUNK) | ||
654 | { | ||
655 | LOGFQUEUE("buffering >| Q_BUFFER_HANDLE"); | ||
656 | queue_send(&buffering_queue, Q_BUFFER_HANDLE, handle_id); | ||
657 | h->ridx = h->data + newpos; | ||
658 | return; | ||
659 | } | ||
660 | |||
653 | h->offset = newpos; | 661 | h->offset = newpos; |
654 | 662 | ||
655 | LOGFQUEUE("buffering >| Q_RESET_HANDLE"); | 663 | LOGFQUEUE("buffering >| Q_RESET_HANDLE"); |