summaryrefslogtreecommitdiff
path: root/firmware/mpeg.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/mpeg.c')
-rw-r--r--firmware/mpeg.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index 05f0a163c8..22a4e1f79e 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -1047,7 +1047,11 @@ static void mpeg_thread(void)
1047 } 1047 }
1048 1048
1049 newpos = newpos & ~1; 1049 newpos = newpos & ~1;
1050 curpos = lseek(mpeg_file, 0, SEEK_CUR); 1050
1051 if (mpeg_file >= 0)
1052 curpos = lseek(mpeg_file, 0, SEEK_CUR);
1053 else
1054 curpos = id3->filesize;
1051 1055
1052 if (num_tracks_in_memory() > 1) 1056 if (num_tracks_in_memory() > 1)
1053 { 1057 {
@@ -1083,7 +1087,7 @@ static void mpeg_thread(void)
1083 unplayed_space_left = get_unplayed_space(); 1087 unplayed_space_left = get_unplayed_space();
1084 unswapped_space_left = get_unswapped_space(); 1088 unswapped_space_left = get_unswapped_space();
1085 1089
1086 if (unplayed_space_left < MPEG_LOW_WATER) 1090 if (mpeg_file>=0 && unplayed_space_left < MPEG_LOW_WATER)
1087 { 1091 {
1088 /* We need to load more data before starting */ 1092 /* We need to load more data before starting */
1089 filling = true; 1093 filling = true;
@@ -1112,7 +1116,11 @@ static void mpeg_thread(void)
1112 /* We have to reload the current track */ 1116 /* We have to reload the current track */
1113 close(mpeg_file); 1117 close(mpeg_file);
1114 remove_all_non_current_tags(); 1118 remove_all_non_current_tags();
1119 mpeg_file = -1;
1120 }
1115 1121
1122 if (mpeg_file < 0)
1123 {
1116 mpeg_file = open(id3->path, O_RDONLY); 1124 mpeg_file = open(id3->path, O_RDONLY);
1117 if (mpeg_file < 0) 1125 if (mpeg_file < 0)
1118 { 1126 {