aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api
diff options
context:
space:
mode:
authorBond_009 <bond.009@outlook.com>2019-09-08 21:07:29 +0200
committerBond_009 <bond.009@outlook.com>2019-09-08 21:07:29 +0200
commit675754bc5c5dad9b1c68b1222f88eee5e96f3d4a (patch)
tree2f6e3115c2edfbdf428202abed2b273530eab3c6 /MediaBrowser.Api
parent2638759b425f6c3dd7fb367f4f23e4873a7e20e3 (diff)
Possible fix for MrMC
Diffstat (limited to 'MediaBrowser.Api')
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs30
-rw-r--r--MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs16
2 files changed, 29 insertions, 17 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 17aa6b23a6..8c4ccfa22c 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -956,7 +956,10 @@ namespace MediaBrowser.Api.Playback
if (string.Equals(GetHeader("getMediaInfo.sec"), "1", StringComparison.OrdinalIgnoreCase))
{
var ms = TimeSpan.FromTicks(state.RunTimeTicks.Value).TotalMilliseconds;
- responseHeaders["MediaInfo.sec"] = string.Format("SEC_Duration={0};", Convert.ToInt32(ms).ToString(CultureInfo.InvariantCulture));
+ responseHeaders["MediaInfo.sec"] = string.Format(
+ CultureInfo.InvariantCulture,
+ "SEC_Duration={0};",
+ Convert.ToInt32(ms));
}
if (!isStaticallyStreamed && profile != null)
@@ -974,8 +977,7 @@ namespace MediaBrowser.Api.Playback
if (state.VideoRequest == null)
{
- responseHeaders["contentFeatures.dlna.org"] = new ContentFeatureBuilder(profile)
- .BuildAudioHeader(
+ responseHeaders["contentFeatures.dlna.org"] = new ContentFeatureBuilder(profile).BuildAudioHeader(
state.OutputContainer,
audioCodec,
state.OutputAudioBitrate,
@@ -984,15 +986,13 @@ namespace MediaBrowser.Api.Playback
state.OutputAudioBitDepth,
isStaticallyStreamed,
state.RunTimeTicks,
- state.TranscodeSeekInfo
- );
+ state.TranscodeSeekInfo);
}
else
{
var videoCodec = state.ActualOutputVideoCodec;
- responseHeaders["contentFeatures.dlna.org"] = new ContentFeatureBuilder(profile)
- .BuildVideoHeader(
+ responseHeaders["contentFeatures.dlna.org"] = new ContentFeatureBuilder(profile).BuildVideoHeader(
state.OutputContainer,
videoCodec,
audioCodec,
@@ -1014,9 +1014,7 @@ namespace MediaBrowser.Api.Playback
state.TargetVideoStreamCount,
state.TargetAudioStreamCount,
state.TargetVideoCodecTag,
- state.IsTargetAVC
-
- ).FirstOrDefault() ?? string.Empty;
+ state.IsTargetAVC).FirstOrDefault() ?? string.Empty;
}
}
@@ -1025,8 +1023,16 @@ namespace MediaBrowser.Api.Playback
var runtimeSeconds = TimeSpan.FromTicks(state.RunTimeTicks.Value).TotalSeconds.ToString(CultureInfo.InvariantCulture);
var startSeconds = TimeSpan.FromTicks(state.Request.StartTimeTicks ?? 0).TotalSeconds.ToString(CultureInfo.InvariantCulture);
- responseHeaders["TimeSeekRange.dlna.org"] = string.Format("npt={0}-{1}/{1}", startSeconds, runtimeSeconds);
- responseHeaders["X-AvailableSeekRange"] = string.Format("1 npt={0}-{1}", startSeconds, runtimeSeconds);
+ responseHeaders["TimeSeekRange.dlna.org"] = string.Format(
+ CultureInfo.InvariantCulture,
+ "npt={0}-{1}/{1}",
+ startSeconds,
+ runtimeSeconds);
+ responseHeaders["X-AvailableSeekRange"] = string.Format(
+ CultureInfo.InvariantCulture,
+ "1 npt={0}-{1}",
+ startSeconds,
+ runtimeSeconds);
}
}
}
diff --git a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
index c15681654b..97c1a7a496 100644
--- a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
+++ b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
@@ -280,18 +280,24 @@ namespace MediaBrowser.Api.Playback.Progressive
/// <param name="isHeadRequest">if set to <c>true</c> [is head request].</param>
/// <param name="cancellationTokenSource">The cancellation token source.</param>
/// <returns>Task{System.Object}.</returns>
- private async Task<object> GetStaticRemoteStreamResult(StreamState state, Dictionary<string, string> responseHeaders, bool isHeadRequest, CancellationTokenSource cancellationTokenSource)
+ private async Task<object> GetStaticRemoteStreamResult(
+ StreamState state,
+ Dictionary<string, string> responseHeaders,
+ bool isHeadRequest,
+ CancellationTokenSource cancellationTokenSource)
{
- state.RemoteHttpHeaders.TryGetValue(HeaderNames.UserAgent, out var useragent);
-
var options = new HttpRequestOptions
{
Url = state.MediaPath,
- UserAgent = useragent,
BufferContent = false,
CancellationToken = cancellationTokenSource.Token
};
+ if (state.RemoteHttpHeaders.TryGetValue(HeaderNames.UserAgent, out var useragent))
+ {
+ options.UserAgent = useragent;
+ }
+
var response = await HttpClient.GetResponse(options).ConfigureAwait(false);
responseHeaders[HeaderNames.AcceptRanges] = "none";
@@ -306,7 +312,7 @@ namespace MediaBrowser.Api.Playback.Progressive
{
using (response)
{
- return ResultFactory.GetResult(null, new byte[] { }, response.ContentType, responseHeaders);
+ return ResultFactory.GetResult(null, Array.Empty<byte>(), response.ContentType, responseHeaders);
}
}