From 74528fc4a47d589794d4f40911995814a4f9daa7 Mon Sep 17 00:00:00 2001 From: Miika Pekkarinen Date: Sun, 30 Oct 2005 08:27:34 +0000 Subject: Added a missing mutex lock to the initial buffer filling code. That fixes a problem with some FLAC files. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7686 a1c6a512-1295-4272-9138-f99709370657 --- apps/playback.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/playback.c b/apps/playback.c index 99d58d8..3c2180e 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -1149,6 +1149,7 @@ bool audio_load_track(int offset, bool start_play, int peek_offset) } /* Do some initial file buffering. */ + mutex_lock(&mutex_bufferfill); i = tracks[track_widx].start_pos; size = MIN(size, AUDIO_FILL_CYCLE); while (i < size) { @@ -1167,6 +1168,7 @@ bool audio_load_track(int offset, bool start_play, int peek_offset) tracks[track_widx].filesize = 0; tracks[track_widx].filerem = 0; close(fd); + mutex_unlock(&mutex_bufferfill); return false; } buf_widx += rc; @@ -1178,6 +1180,7 @@ bool audio_load_track(int offset, bool start_play, int peek_offset) filebufused += rc; fill_bytesleft -= rc; } + mutex_unlock(&mutex_bufferfill); if (!start_play) track_count++; @@ -1228,6 +1231,7 @@ void audio_play_start(int offset) fill_bytesleft = filebuflen; filling = true; last_peek_offset = -1; + if (audio_load_track(offset, true, 0)) { if (track_buffer_callback) { cur_ti->event_sent = true; -- cgit v1.1