diff options
-rw-r--r-- | plugins/vfs_curl/vfs_curl.c | 7 | ||||
-rw-r--r-- | streamer.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/plugins/vfs_curl/vfs_curl.c b/plugins/vfs_curl/vfs_curl.c index 6f65f4e6..3f612784 100644 --- a/plugins/vfs_curl/vfs_curl.c +++ b/plugins/vfs_curl/vfs_curl.c @@ -689,8 +689,11 @@ http_read (void *ptr, size_t size, size_t nmemb, DB_FILE *stream) { http_stream_reset (fp); fp->status = STATUS_SEEK; deadbeef->mutex_unlock (fp->mutex); - deadbeef->streamer_reset (1); - continue; + if (fp->track) { // don't touch streamer if the stream is not assosiated with a track + deadbeef->streamer_reset (1); + continue; + } + return 0; } } int skip = min (fp->remaining, fp->skipbytes); @@ -1157,6 +1157,10 @@ streamer_free (void) { void streamer_reset (int full) { // must be called when current song changes by external reasons + if (!mutex) { + fprintf (stderr, "ERROR: someone called streamer_reset after exit\n"); + return; // failsafe, in case someone calls streamer reset after deinit + } src_lock (); if (full) { streamer_lock (); |