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
                 {