diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-10-14 02:52:56 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-10-14 02:52:56 -0400 |
| commit | 164e7dc896aa71a921f673e2058a2272fc917c4e (patch) | |
| tree | dcb8bd0bcbef0e7d2f79be851611496c8b4cd6f0 /MediaBrowser.Api | |
| parent | 2d63bdea94751eb1175bc5a2c8ed1a4fafd7e163 (diff) | |
improve live tv direct play
Diffstat (limited to 'MediaBrowser.Api')
| -rw-r--r-- | MediaBrowser.Api/LiveTv/LiveTvService.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Api/LiveTv/ProgressiveFileCopier.cs | 13 |
2 files changed, 7 insertions, 10 deletions
diff --git a/MediaBrowser.Api/LiveTv/LiveTvService.cs b/MediaBrowser.Api/LiveTv/LiveTvService.cs index 1ae7323dc4..703c96e0c6 100644 --- a/MediaBrowser.Api/LiveTv/LiveTvService.cs +++ b/MediaBrowser.Api/LiveTv/LiveTvService.cs @@ -734,7 +734,7 @@ namespace MediaBrowser.Api.LiveTv outputHeaders["Content-Type"] = Model.Net.MimeTypes.GetMimeType(path); - return new ProgressiveFileCopier(_fileSystem, path, outputHeaders, Logger, _environment, CancellationToken.None) + return new ProgressiveFileCopier(_fileSystem, path, outputHeaders, Logger, _environment) { AllowEndOfFile = false }; @@ -753,7 +753,7 @@ namespace MediaBrowser.Api.LiveTv outputHeaders["Content-Type"] = Model.Net.MimeTypes.GetMimeType("file." + request.Container); - return new ProgressiveFileCopier(directStreamProvider, outputHeaders, Logger, _environment, CancellationToken.None) + return new ProgressiveFileCopier(directStreamProvider, outputHeaders, Logger, _environment) { AllowEndOfFile = false }; diff --git a/MediaBrowser.Api/LiveTv/ProgressiveFileCopier.cs b/MediaBrowser.Api/LiveTv/ProgressiveFileCopier.cs index 9ce109fc40..74293ccd90 100644 --- a/MediaBrowser.Api/LiveTv/ProgressiveFileCopier.cs +++ b/MediaBrowser.Api/LiveTv/ProgressiveFileCopier.cs @@ -16,7 +16,6 @@ namespace MediaBrowser.Api.LiveTv private readonly IFileSystem _fileSystem; private readonly ILogger _logger; private readonly string _path; - private readonly CancellationToken _cancellationToken; private readonly Dictionary<string, string> _outputHeaders; const int StreamCopyToBufferSize = 81920; @@ -28,22 +27,20 @@ namespace MediaBrowser.Api.LiveTv private readonly IDirectStreamProvider _directStreamProvider; private readonly IEnvironmentInfo _environment; - public ProgressiveFileCopier(IFileSystem fileSystem, string path, Dictionary<string, string> outputHeaders, ILogger logger, IEnvironmentInfo environment, CancellationToken cancellationToken) + public ProgressiveFileCopier(IFileSystem fileSystem, string path, Dictionary<string, string> outputHeaders, ILogger logger, IEnvironmentInfo environment) { _fileSystem = fileSystem; _path = path; _outputHeaders = outputHeaders; _logger = logger; - _cancellationToken = cancellationToken; _environment = environment; } - public ProgressiveFileCopier(IDirectStreamProvider directStreamProvider, Dictionary<string, string> outputHeaders, ILogger logger, IEnvironmentInfo environment, CancellationToken cancellationToken) + public ProgressiveFileCopier(IDirectStreamProvider directStreamProvider, Dictionary<string, string> outputHeaders, ILogger logger, IEnvironmentInfo environment) { _directStreamProvider = directStreamProvider; _outputHeaders = outputHeaders; _logger = logger; - _cancellationToken = cancellationToken; _environment = environment; } @@ -69,8 +66,6 @@ namespace MediaBrowser.Api.LiveTv public async Task WriteToAsync(Stream outputStream, CancellationToken cancellationToken) { - cancellationToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _cancellationToken).Token; - if (_directStreamProvider != null) { await _directStreamProvider.CopyToAsync(outputStream, cancellationToken).ConfigureAwait(false); @@ -89,7 +84,9 @@ namespace MediaBrowser.Api.LiveTv inputStream.Position = StartPosition; } - while (eofCount < 20 || !AllowEndOfFile) + var emptyReadLimit = AllowEndOfFile ? 20 : 100; + + while (eofCount < emptyReadLimit) { int bytesRead; if (allowAsyncFileRead) |
