aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Playback/UniversalAudioService.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-05-31 15:28:03 -0400
committerGitHub <noreply@github.com>2017-05-31 15:28:03 -0400
commit4e10daf646e0788409f2bc52ef70effa2616e3f3 (patch)
tree72560ff07a80af5cffdfaadbf399e8b9cf46fc32 /MediaBrowser.Api/Playback/UniversalAudioService.cs
parent6c5fe7935b5c684526117de7472a6c34903aad44 (diff)
parent5bfcbd4e9e07880a55cd88be031b523832186d93 (diff)
Merge pull request #2676 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Api/Playback/UniversalAudioService.cs')
-rw-r--r--MediaBrowser.Api/Playback/UniversalAudioService.cs29
1 files changed, 26 insertions, 3 deletions
diff --git a/MediaBrowser.Api/Playback/UniversalAudioService.cs b/MediaBrowser.Api/Playback/UniversalAudioService.cs
index e5ece3984..fffec6948 100644
--- a/MediaBrowser.Api/Playback/UniversalAudioService.cs
+++ b/MediaBrowser.Api/Playback/UniversalAudioService.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Globalization;
-using System.IO;
using System.Threading.Tasks;
using MediaBrowser.Api.Playback.Hls;
using MediaBrowser.Api.Playback.Progressive;
@@ -42,6 +41,7 @@ namespace MediaBrowser.Api.Playback
public string Container { get; set; }
public int? MaxAudioChannels { get; set; }
+ public int? TranscodingAudioChannels { get; set; }
public long? MaxStreamingBitrate { get; set; }
@@ -51,6 +51,15 @@ namespace MediaBrowser.Api.Playback
public string TranscodingContainer { get; set; }
public string TranscodingProtocol { get; set; }
public int? MaxAudioSampleRate { get; set; }
+
+ public bool EnableRedirection { get; set; }
+ public bool EnableRemoteMedia { get; set; }
+ public bool BreakOnNonKeyFrames { get; set; }
+
+ public BaseUniversalRequest()
+ {
+ EnableRedirection = true;
+ }
}
[Route("/Audio/{Id}/universal.{Container}", "GET", Summary = "Gets an audio stream")]
@@ -133,7 +142,9 @@ namespace MediaBrowser.Api.Playback
Context = EncodingContext.Streaming,
Container = request.TranscodingContainer,
AudioCodec = request.AudioCodec,
- Protocol = request.TranscodingProtocol
+ Protocol = request.TranscodingProtocol,
+ BreakOnNonKeyFrames = request.BreakOnNonKeyFrames,
+ MaxAudioChannels = request.TranscodingAudioChannels.HasValue ? request.TranscodingAudioChannels.Value.ToString(CultureInfo.InvariantCulture) : null
}
};
@@ -205,6 +216,17 @@ namespace MediaBrowser.Api.Playback
var mediaSource = playbackInfoResult.MediaSources[0];
+ if (mediaSource.SupportsDirectPlay && mediaSource.Protocol == MediaProtocol.Http)
+ {
+ if (request.EnableRedirection)
+ {
+ if (mediaSource.IsRemote && request.EnableRemoteMedia)
+ {
+ return ResultFactory.GetRedirectResult(mediaSource.Path);
+ }
+ }
+ }
+
var isStatic = mediaSource.SupportsDirectStream;
if (!isStatic && string.Equals(mediaSource.TranscodingSubProtocol, "hls", StringComparison.OrdinalIgnoreCase))
@@ -242,7 +264,8 @@ namespace MediaBrowser.Api.Playback
StartTimeTicks = request.StartTimeTicks,
Static = isStatic,
SegmentContainer = request.TranscodingContainer,
- AudioSampleRate = request.MaxAudioSampleRate
+ AudioSampleRate = request.MaxAudioSampleRate,
+ BreakOnNonKeyFrames = transcodingProfile.BreakOnNonKeyFrames
};
if (isHeadRequest)