diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-12 23:57:54 -0400 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-12 23:57:54 -0400 |
| commit | 17d01636ae8a8054dc1fc043315f4fb2f4d53187 (patch) | |
| tree | e951e426b34ba6dc2ea4f416bf0cd79ecb3c9577 /MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs | |
| parent | f61a812c0ad0bd4503dc358a4421707239eb590b (diff) | |
#41 - Support Http Head requests
Diffstat (limited to 'MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs')
| -rw-r--r-- | MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs | 18 |
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); |
