diff options
Diffstat (limited to 'MediaBrowser.Model')
| -rw-r--r-- | MediaBrowser.Model/ApiClient/ApiClientExtensions.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs | 25 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dlna/DeviceProfile.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dlna/DlnaFlags.cs | 27 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dlna/StreamBuilder.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dlna/StreamInfo.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dlna/SubtitleProfile.cs | 7 |
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 |
