diff options
Diffstat (limited to 'MediaBrowser.Api/Playback/Progressive')
| -rw-r--r-- | MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs | 7 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/Progressive/ProgressiveStreamWriter.cs | 16 |
2 files changed, 16 insertions, 7 deletions
diff --git a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs index dd89606492..80428269b9 100644 --- a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs +++ b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs @@ -149,7 +149,7 @@ namespace MediaBrowser.Api.Playback.Progressive using (state) { - return ResultFactory.GetStaticFileResult(Request, state.MediaPath, contentType, FileShare.Read, responseHeaders, isHeadRequest); + return ResultFactory.GetStaticFileResult(Request, state.MediaPath, contentType, null, FileShare.Read, responseHeaders, isHeadRequest); } } @@ -160,7 +160,7 @@ namespace MediaBrowser.Api.Playback.Progressive try { - return ResultFactory.GetStaticFileResult(Request, outputPath, contentType, FileShare.Read, responseHeaders, isHeadRequest); + return ResultFactory.GetStaticFileResult(Request, outputPath, contentType, null, FileShare.Read, responseHeaders, isHeadRequest); } finally { @@ -285,7 +285,8 @@ namespace MediaBrowser.Api.Playback.Progressive state.Dispose(); } - var result = new ProgressiveStreamWriter(outputPath, Logger, FileSystem); + var job = ApiEntryPoint.Instance.GetTranscodingJob(outputPath, TranscodingJobType.Progressive); + var result = new ProgressiveStreamWriter(outputPath, Logger, FileSystem, job); result.Options["Content-Type"] = contentType; diff --git a/MediaBrowser.Api/Playback/Progressive/ProgressiveStreamWriter.cs b/MediaBrowser.Api/Playback/Progressive/ProgressiveStreamWriter.cs index 36ae7f1002..a4c55443c5 100644 --- a/MediaBrowser.Api/Playback/Progressive/ProgressiveStreamWriter.cs +++ b/MediaBrowser.Api/Playback/Progressive/ProgressiveStreamWriter.cs @@ -12,6 +12,7 @@ namespace MediaBrowser.Api.Playback.Progressive private string Path { get; set; } private ILogger Logger { get; set; } private readonly IFileSystem _fileSystem; + private readonly TranscodingJob _job; /// <summary> /// The _options @@ -32,11 +33,12 @@ namespace MediaBrowser.Api.Playback.Progressive /// <param name="path">The path.</param> /// <param name="logger">The logger.</param> /// <param name="fileSystem">The file system.</param> - public ProgressiveStreamWriter(string path, ILogger logger, IFileSystem fileSystem) + public ProgressiveStreamWriter(string path, ILogger logger, IFileSystem fileSystem, TranscodingJob job) { Path = path; Logger = logger; _fileSystem = fileSystem; + _job = job; } /// <summary> @@ -59,7 +61,8 @@ namespace MediaBrowser.Api.Playback.Progressive { try { - await new ProgressiveFileCopier(_fileSystem).StreamFile(Path, responseStream).ConfigureAwait(false); + await new ProgressiveFileCopier(_fileSystem, _job) + .StreamFile(Path, responseStream).ConfigureAwait(false); } catch { @@ -77,10 +80,12 @@ namespace MediaBrowser.Api.Playback.Progressive public class ProgressiveFileCopier { private readonly IFileSystem _fileSystem; + private readonly TranscodingJob _job; - public ProgressiveFileCopier(IFileSystem fileSystem) + public ProgressiveFileCopier(IFileSystem fileSystem, TranscodingJob job) { _fileSystem = fileSystem; + _job = job; } public async Task StreamFile(string path, Stream outputStream) @@ -102,7 +107,10 @@ namespace MediaBrowser.Api.Playback.Progressive if (bytesRead == 0) { - eofCount++; + if (_job == null || _job.HasExited) + { + eofCount++; + } await Task.Delay(100).ConfigureAwait(false); } else |
