|
|
|
@ -83,14 +83,27 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
|
|
|
|
Logger.LogInformation("Beginning {StreamType} stream to {FilePath}", GetType().Name, TempFilePath);
|
|
|
|
|
using (response)
|
|
|
|
|
{
|
|
|
|
|
await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
await using var fileStream = new FileStream(TempFilePath, FileMode.Create, FileAccess.Write, FileShare.Read, IODefaults.FileStreamBufferSize, FileOptions.Asynchronous);
|
|
|
|
|
await StreamHelper.CopyToAsync(
|
|
|
|
|
stream,
|
|
|
|
|
fileStream,
|
|
|
|
|
IODefaults.CopyToBufferSize,
|
|
|
|
|
() => Resolve(openTaskCompletionSource),
|
|
|
|
|
cancellationToken).ConfigureAwait(false);
|
|
|
|
|
var stream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
await using (stream.ConfigureAwait(false))
|
|
|
|
|
{
|
|
|
|
|
var fileStream = new FileStream(
|
|
|
|
|
TempFilePath,
|
|
|
|
|
FileMode.Create,
|
|
|
|
|
FileAccess.Write,
|
|
|
|
|
FileShare.Read,
|
|
|
|
|
IODefaults.FileStreamBufferSize,
|
|
|
|
|
FileOptions.Asynchronous);
|
|
|
|
|
|
|
|
|
|
await using (fileStream.ConfigureAwait(false))
|
|
|
|
|
{
|
|
|
|
|
await StreamHelper.CopyToAsync(
|
|
|
|
|
stream,
|
|
|
|
|
fileStream,
|
|
|
|
|
IODefaults.CopyToBufferSize,
|
|
|
|
|
() => Resolve(openTaskCompletionSource),
|
|
|
|
|
cancellationToken).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (OperationCanceledException ex)
|
|
|
|
|