|
|
|
@ -178,19 +178,8 @@ namespace MediaBrowser.Server.Implementations.HttpServer
|
|
|
|
|
|
|
|
|
|
using (var source = SourceStream)
|
|
|
|
|
{
|
|
|
|
|
// If the requested range is "0-", we can optimize by just doing a stream copy
|
|
|
|
|
if (RangeEnd == TotalContentLength - 1)
|
|
|
|
|
{
|
|
|
|
|
await source.CopyToAsync(responseStream).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// Read the bytes we need
|
|
|
|
|
var buffer = new byte[Convert.ToInt32(RangeLength)];
|
|
|
|
|
await source.ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
await responseStream.WriteAsync(buffer, 0, Convert.ToInt32(RangeLength)).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
//Since we've already set the postion of the sourcestream, just copy the remains to the output
|
|
|
|
|
await source.CopyToAsync(responseStream).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|