update async stream writing

This commit is contained in:
Luke Pulverenti
2016-07-15 13:13:55 -04:00
parent 61aa25c358
commit 2e91d69d20
9 changed files with 141 additions and 311 deletions

View File

@@ -13,6 +13,7 @@ using ServiceStack.Web;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using CommonIO;
@@ -336,17 +337,19 @@ namespace MediaBrowser.Api.Playback.Progressive
state.Dispose();
}
var result = new ProgressiveStreamWriter(outputPath, Logger, FileSystem, job);
var outputHeaders = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
result.Options["Content-Type"] = contentType;
outputHeaders["Content-Type"] = contentType;
// Add the response headers to the result object
foreach (var item in responseHeaders)
{
result.Options[item.Key] = item.Value;
outputHeaders[item.Key] = item.Value;
}
return result;
Func<Stream,Task> streamWriter = stream => new ProgressiveFileCopier(FileSystem, job, Logger).StreamFile(outputPath, stream);
return ResultFactory.GetAsyncStreamWriter(streamWriter, outputHeaders);
}
finally
{