Make sure there is sufficient data in buffer before resuming after ffw.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1970 a1c6a512-1295-4272-9138-f99709370657
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index 6f2b3df..d19cdf6 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -953,11 +953,18 @@
mp3buf_read += mp3buflen;
}
- playing = true;
- last_dma_tick = current_tick;
- init_dma();
- if (!paused)
- start_dma();
+ if (get_unplayed_space() < MPEG_LOW_WATER)
+ {
+ /* We need to load more data before starting */
+ filling = true;
+ queue_post(&mpeg_queue, MPEG_NEED_DATA, 0);
+ play_pending = true;
+ }
+ else
+ {
+ /* resume will start at new position */
+ init_dma();
+ }
}
else
{