summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/mpeg.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index 6f2b3dfafe..d19cdf65e4 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -953,11 +953,18 @@ static void mpeg_thread(void)
953 mp3buf_read += mp3buflen; 953 mp3buf_read += mp3buflen;
954 } 954 }
955 955
956 playing = true; 956 if (get_unplayed_space() < MPEG_LOW_WATER)
957 last_dma_tick = current_tick; 957 {
958 init_dma(); 958 /* We need to load more data before starting */
959 if (!paused) 959 filling = true;
960 start_dma(); 960 queue_post(&mpeg_queue, MPEG_NEED_DATA, 0);
961 play_pending = true;
962 }
963 else
964 {
965 /* resume will start at new position */
966 init_dma();
967 }
961 } 968 }
962 else 969 else
963 { 970 {