diff --git a/apps/playback.c b/apps/playback.c index ed581cd36a..87773f89ef 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -1375,9 +1375,12 @@ static void codec_thread(void) { const char *codec_fn = get_codec_filename(curtrack_id3.codectype); - LOGFQUEUE("codec > codec Q_CODEC_LOAD_DISK"); - queue_post(&codec_queue, Q_CODEC_LOAD_DISK, - (intptr_t)codec_fn); + if (codec_fn) + { + LOGFQUEUE("codec > codec Q_CODEC_LOAD_DISK"); + queue_post(&codec_queue, Q_CODEC_LOAD_DISK, + (intptr_t)codec_fn); + } } } break; diff --git a/apps/playlist.c b/apps/playlist.c index 644329c5bf..b68a47e75d 100644 --- a/apps/playlist.c +++ b/apps/playlist.c @@ -654,8 +654,12 @@ static int create_and_play_dir(int direction, bool play_last) playlist_start(index, 0); #endif } + + /* we've overwritten the dircache when getting the next/previous dir, + so the tree browser context will need to be reloaded */ + reload_directory(); } - + return index; } @@ -1577,10 +1581,6 @@ static int get_next_dir(char *dir, bool is_forward, bool recursion) } } - /* we've overwritten the dircache so tree browser will need to be - reloaded */ - reload_directory(); - /* restore dirfilter & sort_dir */ *(tc->dirfilter) = dirfilter; global_settings.sort_dir = sort_dir;