diff options
-rw-r--r-- | src/decoder_thread.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/decoder_thread.c b/src/decoder_thread.c index c649f3a34..2b1a6299a 100644 --- a/src/decoder_thread.c +++ b/src/decoder_thread.c @@ -186,6 +186,17 @@ static void decoder_run_song(const struct song *song, const char *uri) if (ret) break; } else if (plugin->stream_decode != NULL) { + if (!close_instream) { + /* the input_stream object has + been closed before + decoder_file_decode() - + reopen it */ + if (input_stream_open(&input_stream, uri)) + close_instream = true; + else + continue; + } + ret = decoder_stream_decode(plugin, &decoder, &input_stream); if (ret) |