aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/decoder_thread.c11
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)