aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model')
-rw-r--r--MediaBrowser.Model/ApiClient/ApiClientExtensions.cs6
-rw-r--r--MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs25
-rw-r--r--MediaBrowser.Model/Dlna/DeviceProfile.cs3
-rw-r--r--MediaBrowser.Model/Dlna/DlnaFlags.cs27
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs10
-rw-r--r--MediaBrowser.Model/Dlna/StreamInfo.cs4
-rw-r--r--MediaBrowser.Model/Dlna/SubtitleProfile.cs7
7 files changed, 56 insertions, 26 deletions
diff --git a/MediaBrowser.Model/ApiClient/ApiClientExtensions.cs b/MediaBrowser.Model/ApiClient/ApiClientExtensions.cs
index 98e99b1ccb..4b0effa55d 100644
--- a/MediaBrowser.Model/ApiClient/ApiClientExtensions.cs
+++ b/MediaBrowser.Model/ApiClient/ApiClientExtensions.cs
@@ -1,4 +1,5 @@
using MediaBrowser.Model.Dto;
+using MediaBrowser.Model.Querying;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -25,5 +26,10 @@ namespace MediaBrowser.Model.ApiClient
{
return apiClient.GetPublicUsersAsync(CancellationToken.None);
}
+
+ public static Task<ItemsResult> GetItemsAsync(this IApiClient apiClient, ItemQuery query)
+ {
+ return apiClient.GetItemsAsync(query, CancellationToken.None);
+ }
}
}
diff --git a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs
index c25e93c388..b89d8b73b6 100644
--- a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs
+++ b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs
@@ -24,8 +24,9 @@ namespace MediaBrowser.Model.Dlna
DlnaFlags flagValue = DlnaFlags.StreamingTransferMode |
DlnaFlags.BackgroundTransferMode |
+ DlnaFlags.InteractiveTransferMode |
DlnaFlags.DlnaV15;
-
+
string dlnaflags = string.Format(";DLNA.ORG_FLAGS={0}",
DlnaMaps.FlagsToString(flagValue));
@@ -62,16 +63,17 @@ namespace MediaBrowser.Model.Dlna
DlnaFlags flagValue = DlnaFlags.StreamingTransferMode |
DlnaFlags.BackgroundTransferMode |
+ DlnaFlags.InteractiveTransferMode |
DlnaFlags.DlnaV15;
if (isDirectStream)
{
- //flagValue = flagValue | DlnaFlags.DLNA_ORG_FLAG_BYTE_BASED_SEEK;
- }
- else if (runtimeTicks.HasValue)
- {
- //flagValue = flagValue | DlnaFlags.DLNA_ORG_FLAG_TIME_BASED_SEEK;
+ flagValue = flagValue | DlnaFlags.ByteBasedSeek;
}
+ //else if (runtimeTicks.HasValue)
+ //{
+ // flagValue = flagValue | DlnaFlags.TimeBasedSeek;
+ //}
string dlnaflags = string.Format(";DLNA.ORG_FLAGS={0}",
DlnaMaps.FlagsToString(flagValue));
@@ -120,16 +122,17 @@ namespace MediaBrowser.Model.Dlna
DlnaFlags flagValue = DlnaFlags.StreamingTransferMode |
DlnaFlags.BackgroundTransferMode |
+ DlnaFlags.InteractiveTransferMode |
DlnaFlags.DlnaV15;
if (isDirectStream)
{
- //flagValue = flagValue | DlnaFlags.DLNA_ORG_FLAG_BYTE_BASED_SEEK;
- }
- else if (runtimeTicks.HasValue)
- {
- //flagValue = flagValue | DlnaFlags.DLNA_ORG_FLAG_TIME_BASED_SEEK;
+ flagValue = flagValue | DlnaFlags.ByteBasedSeek;
}
+ //else if (runtimeTicks.HasValue)
+ //{
+ // flagValue = flagValue | DlnaFlags.TimeBasedSeek;
+ //}
string dlnaflags = string.Format(";DLNA.ORG_FLAGS={0}",
DlnaMaps.FlagsToString(flagValue));
diff --git a/MediaBrowser.Model/Dlna/DeviceProfile.cs b/MediaBrowser.Model/Dlna/DeviceProfile.cs
index 5366a538c0..ff9e1d6a32 100644
--- a/MediaBrowser.Model/Dlna/DeviceProfile.cs
+++ b/MediaBrowser.Model/Dlna/DeviceProfile.cs
@@ -99,7 +99,8 @@ namespace MediaBrowser.Model.Dlna
ResponseProfiles = new ResponseProfile[] { };
CodecProfiles = new CodecProfile[] { };
ContainerProfiles = new ContainerProfile[] { };
-
+ SubtitleProfiles = new SubtitleProfile[] { };
+
XmlRootAttributes = new XmlAttribute[] { };
SupportedMediaTypes = "Audio,Photo,Video";
diff --git a/MediaBrowser.Model/Dlna/DlnaFlags.cs b/MediaBrowser.Model/Dlna/DlnaFlags.cs
index 23859312dc..7c7fe8d8f5 100644
--- a/MediaBrowser.Model/Dlna/DlnaFlags.cs
+++ b/MediaBrowser.Model/Dlna/DlnaFlags.cs
@@ -5,17 +5,44 @@ namespace MediaBrowser.Model.Dlna
[Flags]
public enum DlnaFlags : ulong
{
+ /*! <i>Background</i> transfer mode.
+ For use with upload and download transfers to and from the server.
+ The primary difference between \ref DH_TransferMode_Interactive and
+ \ref DH_TransferMode_Bulk is that the latter assumes that the user
+ is not relying on the transfer for immediately rendering the content
+ and there are no issues with causing a buffer overflow if the
+ receiver uses TCP flow control to reduce total throughput.
+ */
BackgroundTransferMode = (1 << 22),
+
ByteBasedSeek = (1 << 29),
ConnectionStall = (1 << 21),
+
DlnaV15 = (1 << 20),
+
+ /*! <i>Interactive</i> transfer mode.
+ For best effort transfer of images and non-real-time transfers.
+ URIs with image content usually support \ref DH_TransferMode_Bulk too.
+ The primary difference between \ref DH_TransferMode_Interactive and
+ \ref DH_TransferMode_Bulk is that the former assumes that the
+ transfer is intended for immediate rendering.
+ */
InteractiveTransferMode = (1 << 23),
+
PlayContainer = (1 << 28),
RtspPause = (1 << 25),
S0Increase = (1 << 27),
SenderPaced = (1L << 31),
SnIncrease = (1 << 26),
+
+ /*! <i>Streaming</i> transfer mode.
+ The server transmits at a throughput sufficient for real-time playback of
+ audio or video. URIs with audio or video often support the
+ \ref DH_TransferMode_Interactive and \ref DH_TransferMode_Bulk transfer modes.
+ The most well-known exception to this general claim is for live streams.
+ */
StreamingTransferMode = (1 << 24),
+
TimeBasedSeek = (1 << 30)
}
} \ No newline at end of file
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs
index 72bf88b70d..ad82cdc137 100644
--- a/MediaBrowser.Model/Dlna/StreamBuilder.cs
+++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs
@@ -537,16 +537,6 @@ namespace MediaBrowser.Model.Dlna
return SubtitleDeliveryMethod.Encode;
}
- private string NormalizeSubtitleFormat(string codec)
- {
- if (StringHelper.EqualsIgnoreCase(codec, "subrip"))
- {
- return SubtitleFormat.SRT;
- }
-
- return codec;
- }
-
private bool ContainsSubtitleFormat(SubtitleProfile[] profiles, SubtitleDeliveryMethod method, string[] formats)
{
foreach (SubtitleProfile profile in profiles)
diff --git a/MediaBrowser.Model/Dlna/StreamInfo.cs b/MediaBrowser.Model/Dlna/StreamInfo.cs
index 563a2f19af..eb686864bf 100644
--- a/MediaBrowser.Model/Dlna/StreamInfo.cs
+++ b/MediaBrowser.Model/Dlna/StreamInfo.cs
@@ -172,7 +172,8 @@ namespace MediaBrowser.Model.Dlna
Url = url,
IsForced = stream.IsForced,
Language = stream.Language,
- Name = stream.Language ?? "Unknown"
+ Name = stream.Language ?? "Unknown",
+ Format = SubtitleFormat
});
}
}
@@ -512,5 +513,6 @@ namespace MediaBrowser.Model.Dlna
public string Language { get; set; }
public string Name { get; set; }
public bool IsForced { get; set; }
+ public string Format { get; set; }
}
}
diff --git a/MediaBrowser.Model/Dlna/SubtitleProfile.cs b/MediaBrowser.Model/Dlna/SubtitleProfile.cs
index 1895158357..d3989829ca 100644
--- a/MediaBrowser.Model/Dlna/SubtitleProfile.cs
+++ b/MediaBrowser.Model/Dlna/SubtitleProfile.cs
@@ -7,10 +7,11 @@ namespace MediaBrowser.Model.Dlna
[XmlAttribute("format")]
public string Format { get; set; }
- [XmlAttribute("protocol")]
- public string Protocol { get; set; }
-
[XmlAttribute("method")]
public SubtitleDeliveryMethod Method { get; set; }
+
+ [XmlAttribute("didlMode")]
+ public string DidlMode { get; set; }
+
}
} \ No newline at end of file