|
@@ -17,7 +17,6 @@ namespace Jellyfin.Api.Helpers
|
|
|
private readonly TranscodingJobDto? _job;
|
|
|
private readonly TranscodingJobHelper? _transcodingJobHelper;
|
|
|
private readonly int _timeoutMs;
|
|
|
- private readonly bool _allowAsyncFileRead;
|
|
|
private int _bytesWritten;
|
|
|
private bool _disposed;
|
|
|
|
|
@@ -34,17 +33,7 @@ namespace Jellyfin.Api.Helpers
|
|
|
_transcodingJobHelper = transcodingJobHelper;
|
|
|
_timeoutMs = timeoutMs;
|
|
|
|
|
|
- var fileOptions = FileOptions.SequentialScan;
|
|
|
- _allowAsyncFileRead = false;
|
|
|
-
|
|
|
- // use non-async filestream along with read due to https://github.com/dotnet/corefx/issues/6039
|
|
|
- if (AsyncFile.UseAsyncIO)
|
|
|
- {
|
|
|
- fileOptions |= FileOptions.Asynchronous;
|
|
|
- _allowAsyncFileRead = true;
|
|
|
- }
|
|
|
-
|
|
|
- _stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, IODefaults.FileStreamBufferSize, fileOptions);
|
|
|
+ _stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, IODefaults.FileStreamBufferSize, FileOptions.Asynchronous | FileOptions.SequentialScan);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -57,7 +46,6 @@ namespace Jellyfin.Api.Helpers
|
|
|
_job = null;
|
|
|
_transcodingJobHelper = null;
|
|
|
_timeoutMs = timeoutMs;
|
|
|
- _allowAsyncFileRead = AsyncFile.UseAsyncIO;
|
|
|
_stream = stream;
|
|
|
}
|
|
|
|
|
@@ -103,15 +91,7 @@ namespace Jellyfin.Api.Helpers
|
|
|
while (remainingBytesToRead > 0)
|
|
|
{
|
|
|
cancellationToken.ThrowIfCancellationRequested();
|
|
|
- int bytesRead;
|
|
|
- if (_allowAsyncFileRead)
|
|
|
- {
|
|
|
- bytesRead = await _stream.ReadAsync(buffer, newOffset, remainingBytesToRead, cancellationToken).ConfigureAwait(false);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- bytesRead = _stream.Read(buffer, newOffset, remainingBytesToRead);
|
|
|
- }
|
|
|
+ int bytesRead = await _stream.ReadAsync(buffer, newOffset, remainingBytesToRead, cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
remainingBytesToRead -= bytesRead;
|
|
|
newOffset += bytesRead;
|