From 63f75d22b4a87b545e49f13beffe23c723aa9712 Mon Sep 17 00:00:00 2001 From: "roman.artiukhin" Date: Wed, 1 Nov 2023 11:21:59 +0200 Subject: Fix potential stuck on auto track change when buffering is stopped pcmbuf might wait for next track for proper crossfade/gapeless playback (see pcmbuf_start_track_change). It's not going to happen with stopped buffering. Fixup for 831faa3b (#5394) Change-Id: I969878d13a9f976566eef5b975beb1687b519a37 --- apps/playback.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/playback.c b/apps/playback.c index 7a2790cbe2..7ea44a047f 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -2690,12 +2690,18 @@ static void audio_on_codec_complete(int status) struct track_info info; bool have_track = track_list_advance_current(1, &info); - if (!have_track || (info.audio_hid < 0 && filling != STATE_STOPPED)) + if (!have_track || info.audio_hid < 0) { bool end_of_playlist = false; if (have_track) { + if (filling == STATE_STOPPED) + { + audio_begin_track_change(TRACK_CHANGE_END_OF_DATA, trackstat); + return; + } + /* Track load is not complete - it might have stopped on a full buffer without reaching the audio handle or we just arrived at it early -- cgit v1.2.3