aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Api/Helpers/ProgressiveFileStream.cs
diff options
context:
space:
mode:
authorcrobibero <cody@robibe.ro>2020-11-03 16:38:47 -0700
committercrobibero <cody@robibe.ro>2020-11-03 16:38:47 -0700
commitb4d52d8009d8e4a6836dc431ac5f336910a07d6c (patch)
tree3a050bf5a54e69dc1fb4515f79394b17c95a3483 /Jellyfin.Api/Helpers/ProgressiveFileStream.cs
parent5d88e610768c8b680096938a372585638ef18fe3 (diff)
Apply patch
Diffstat (limited to 'Jellyfin.Api/Helpers/ProgressiveFileStream.cs')
-rw-r--r--Jellyfin.Api/Helpers/ProgressiveFileStream.cs12
1 files changed, 8 insertions, 4 deletions
diff --git a/Jellyfin.Api/Helpers/ProgressiveFileStream.cs b/Jellyfin.Api/Helpers/ProgressiveFileStream.cs
index b3566b6f8..824870c7e 100644
--- a/Jellyfin.Api/Helpers/ProgressiveFileStream.cs
+++ b/Jellyfin.Api/Helpers/ProgressiveFileStream.cs
@@ -82,20 +82,23 @@ namespace Jellyfin.Api.Helpers
int totalBytesRead = 0;
int remainingBytesToRead = count;
+ int newOffset = offset;
while (remainingBytesToRead > 0)
{
cancellationToken.ThrowIfCancellationRequested();
int bytesRead;
if (_allowAsyncFileRead)
{
- bytesRead = await _fileStream.ReadAsync(buffer, offset, remainingBytesToRead, cancellationToken).ConfigureAwait(false);
+ bytesRead = await _fileStream.ReadAsync(buffer, newOffset, remainingBytesToRead, cancellationToken).ConfigureAwait(false);
}
else
{
- bytesRead = _fileStream.Read(buffer, offset, remainingBytesToRead);
+ bytesRead = _fileStream.Read(buffer, newOffset, remainingBytesToRead);
}
remainingBytesToRead -= bytesRead;
+ newOffset += bytesRead;
+
if (bytesRead > 0)
{
_bytesWritten += bytesRead;
@@ -108,12 +111,13 @@ namespace Jellyfin.Api.Helpers
}
else
{
- if (_job == null || _job.HasExited)
+ // If the job is null it's a live stream and will require user action to close
+ if (_job?.HasExited ?? false)
{
break;
}
- await Task.Delay(100, cancellationToken).ConfigureAwait(false);
+ await Task.Delay(50, cancellationToken).ConfigureAwait(false);
}
}