summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/playback.c1
-rw-r--r--apps/plugins/codecflac.c3
-rw-r--r--apps/plugins/codecvorbis.c2
3 files changed, 5 insertions, 1 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 98b73b4..bfe6fd5 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -1150,6 +1150,7 @@ void audio_play(int offset)
#ifndef SIMULATOR
pcm_play_pause(true);
#endif
+ paused = false;
queue_post(&audio_queue, AUDIO_PLAY, (void *)offset);
}
diff --git a/apps/plugins/codecflac.c b/apps/plugins/codecflac.c
index 57089ee..8862bbc 100644
--- a/apps/plugins/codecflac.c
+++ b/apps/plugins/codecflac.c
@@ -75,7 +75,8 @@ FLAC__StreamDecoderWriteStatus flac_write_handler(const FLAC__SeekableStreamDeco
samplesdone+=samples;
ci->set_elapsed(samplesdone/(ci->id3->frequency/1000));
-
+
+ rb->yield();
while (!ci->audiobuffer_insert(pcmbuf, data_size))
rb->yield();
diff --git a/apps/plugins/codecvorbis.c b/apps/plugins/codecvorbis.c
index 2fcc031..9484826 100644
--- a/apps/plugins/codecvorbis.c
+++ b/apps/plugins/codecvorbis.c
@@ -142,6 +142,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parm)
rb->yield();
if (ci->stop_codec || ci->reload_codec)
break ;
+
+ rb->yield();
while (!ci->audiobuffer_insert(pcmbuf, n))
rb->yield();