aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Playback/BaseStreamingService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Playback/BaseStreamingService.cs')
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs50
1 files changed, 10 insertions, 40 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 15cac7e3b..04deea3cf 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -300,7 +300,7 @@ namespace MediaBrowser.Api.Playback
case EncodingQuality.HighSpeed:
return 2;
case EncodingQuality.HighQuality:
- return isWebm ? Math.Max((int)((Environment.ProcessorCount -1) / 2) , 2) : 0;
+ return 2;
case EncodingQuality.MaxQuality:
return isWebm ? Math.Max(Environment.ProcessorCount - 1, 2) : 0;
default:
@@ -373,7 +373,6 @@ namespace MediaBrowser.Api.Playback
break;
case EncodingQuality.MaxQuality:
crf = "4";
- //profilescore aready set to 0
break;
default:
throw new ArgumentException("Unrecognized quality setting");
@@ -381,7 +380,9 @@ namespace MediaBrowser.Api.Playback
if (isVc1)
{
- profileScore = 1;
+ profileScore ++;
+ // Max of 2
+ profileScore = Math.Min(profileScore, 2);
}
// http://www.webmproject.org/docs/encoder-parameters/
@@ -1713,33 +1714,19 @@ namespace MediaBrowser.Api.Playback
var extension = GetOutputFileExtension(state);
// first bit means Time based seek supported, second byte range seek supported (not sure about the order now), so 01 = only byte seek, 10 = time based, 11 = both, 00 = none
- var orgOp = ";DLNA.ORG_OP=";
-
- if (state.RunTimeTicks.HasValue)
- {
- // Time-based seeking currently only possible when transcoding
- orgOp += isStaticallyStreamed ? "0" : "1";
+ var orgOp = ";DLNA.ORG_OP=" + DlnaMaps.GetOrgOpValue(state.RunTimeTicks.HasValue, isStaticallyStreamed, state.TranscodeSeekInfo);
- // Byte-based seeking only possible when not transcoding
- orgOp += isStaticallyStreamed || state.TranscodeSeekInfo == TranscodeSeekInfo.Bytes ? "1" : "0";
-
- if (!isStaticallyStreamed)
- {
- AddTimeSeekResponseHeaders(state, responseHeaders);
- }
- }
- else
+ if (state.RunTimeTicks.HasValue && !isStaticallyStreamed)
{
- // No seeking is available if we don't know the content runtime
- orgOp += "00";
+ AddTimeSeekResponseHeaders(state, responseHeaders);
}
// 0 = native, 1 = transcoded
var orgCi = isStaticallyStreamed ? ";DLNA.ORG_CI=0" : ";DLNA.ORG_CI=1";
- var flagValue = DlnaFlags.DLNA_ORG_FLAG_STREAMING_TRANSFER_MODE |
- DlnaFlags.DLNA_ORG_FLAG_BACKGROUND_TRANSFERT_MODE |
- DlnaFlags.DLNA_ORG_FLAG_DLNA_V15;
+ var flagValue = DlnaFlags.StreamingTransferMode |
+ DlnaFlags.BackgroundTransferMode |
+ DlnaFlags.DlnaV15;
if (isStaticallyStreamed)
{
@@ -1801,23 +1788,6 @@ namespace MediaBrowser.Api.Playback
}
}
- [Flags]
- private enum DlnaFlags
- {
- DLNA_ORG_FLAG_SENDER_PACED = (1 << 31),
- DLNA_ORG_FLAG_TIME_BASED_SEEK = (1 << 30),
- DLNA_ORG_FLAG_BYTE_BASED_SEEK = (1 << 29),
- DLNA_ORG_FLAG_PLAY_CONTAINER = (1 << 28),
- DLNA_ORG_FLAG_S0_INCREASE = (1 << 27),
- DLNA_ORG_FLAG_SN_INCREASE = (1 << 26),
- DLNA_ORG_FLAG_RTSP_PAUSE = (1 << 25),
- DLNA_ORG_FLAG_STREAMING_TRANSFER_MODE = (1 << 24),
- DLNA_ORG_FLAG_INTERACTIVE_TRANSFERT_MODE = (1 << 23),
- DLNA_ORG_FLAG_BACKGROUND_TRANSFERT_MODE = (1 << 22),
- DLNA_ORG_FLAG_CONNECTION_STALL = (1 << 21),
- DLNA_ORG_FLAG_DLNA_V15 = (1 << 20),
- };
-
private void AddTimeSeekResponseHeaders(StreamState state, IDictionary<string, string> responseHeaders)
{
var runtimeSeconds = TimeSpan.FromTicks(state.RunTimeTicks.Value).TotalSeconds.ToString(UsCulture);