Index: Slim/Player/Song.pm =================================================================== --- Slim/Player/Song.pm (revision 25703) +++ Slim/Player/Song.pm (working copy) @@ -460,7 +460,7 @@ # Bug 10451: only use Pipeline when really necessary # and indicate if local or remote source - if ($sock) { + if ($sock || $transcoder->{'streamMode'} eq 'R') { $pipeline = Slim::Player::Pipeline->new($sock, $command, !$handler->isRemote); } else { # Bug: 4318 @@ -473,7 +473,11 @@ $pipeline = new FileHandle $command; } - + # Bug 10818 - make sure pipeline is non-blocking + if ($pipeline && $pipeline->opened() && !defined(Slim::Utils::Network::blocking($pipeline, 0))) { + logError("Can't set remote stream nonblocking for url: [$url]"); + return (undef, 'PROBLEM_OPENING', $url); + } } if (!defined($pipeline)) { @@ -483,7 +487,7 @@ } $sock = $pipeline; - + $self->{'transcoded'} = 1; $self->{'streambitrate'} = guessBitrateFromFormat($transcoder->{'streamformat'}, $transcoder->{'rateLimit'});