diff --git a/apps/playback.c b/apps/playback.c index 1068796c83..c0b2db985e 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -239,6 +239,9 @@ void codec_set_elapsed_callback(unsigned int value) { unsigned int latency; + if (ci.stop_codec) + return ; + latency = audiobuffer_get_latency(); if (value < latency) { @@ -751,7 +754,7 @@ void audio_play_start(int offset) buf_widx = 0; codecbufused = 0; pcm_set_boost_mode(true); - + fill_bytesleft = codecbuflen; filling = true; last_peek_offset = 0; diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c index e91984f842..fcbdb355b7 100644 --- a/firmware/pcm_playback.c +++ b/firmware/pcm_playback.c @@ -367,8 +367,7 @@ unsigned int audiobuffer_get_latency(void) int latency; /* This has to be done better. */ - latency = (PCMBUF_SIZE - audiobuffer_free - audiobuffer_fillpos - - CHUNK_SIZE)/4 / (44100/1000); + latency = (PCMBUF_SIZE - audiobuffer_free - CHUNK_SIZE)/4 / (44100/1000); if (latency < 0) latency = 0;