aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
diff options
context:
space:
mode:
authorLukePulverenti <luke.pulverenti@gmail.com>2013-03-12 23:57:54 -0400
committerLukePulverenti <luke.pulverenti@gmail.com>2013-03-12 23:57:54 -0400
commit17d01636ae8a8054dc1fc043315f4fb2f4d53187 (patch)
treee951e426b34ba6dc2ea4f416bf0cd79ecb3c9577 /MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
parentf61a812c0ad0bd4503dc358a4421707239eb590b (diff)
#41 - Support Http Head requests
Diffstat (limited to 'MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs')
-rw-r--r--MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs18
1 files changed, 13 insertions, 5 deletions
diff --git a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
index a4acc2845..56bb18752 100644
--- a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
+++ b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
@@ -94,38 +94,46 @@ namespace MediaBrowser.Api.Playback.Progressive
/// Processes the request.
/// </summary>
/// <param name="request">The request.</param>
+ /// <param name="isHeadRequest">if set to <c>true</c> [is head request].</param>
/// <returns>Task.</returns>
- protected object ProcessRequest(StreamRequest request)
+ protected object ProcessRequest(StreamRequest request, bool isHeadRequest)
{
var state = GetState(request);
if (request.Static)
{
- return ToStaticFileResult(state.Item.Path);
+ return ToStaticFileResult(state.Item.Path, isHeadRequest);
}
var outputPath = GetOutputFilePath(state);
if (File.Exists(outputPath) && !ApiEntryPoint.Instance.HasActiveTranscodingJob(outputPath, TranscodingJobType.Progressive))
{
- return ToStaticFileResult(outputPath);
+ return ToStaticFileResult(outputPath, isHeadRequest);
}
- return GetStreamResult(state).Result;
+ return GetStreamResult(state, isHeadRequest).Result;
}
/// <summary>
/// Gets the stream result.
/// </summary>
/// <param name="state">The state.</param>
+ /// <param name="isHeadRequest">if set to <c>true</c> [is head request].</param>
/// <returns>Task{System.Object}.</returns>
- private async Task<ProgressiveStreamWriter> GetStreamResult(StreamState state)
+ private async Task<ProgressiveStreamWriter> GetStreamResult(StreamState state, bool isHeadRequest)
{
// Use the command line args with a dummy playlist path
var outputPath = GetOutputFilePath(state);
Response.ContentType = MimeTypes.GetMimeType(outputPath);
+ // Headers only
+ if (isHeadRequest)
+ {
+ return null;
+ }
+
if (!File.Exists(outputPath))
{
await StartFFMpeg(state, outputPath).ConfigureAwait(false);