diff options
| author | tikuf <admin@nyalindee.com> | 2014-04-02 16:53:53 +1100 |
|---|---|---|
| committer | tikuf <admin@nyalindee.com> | 2014-04-02 16:53:53 +1100 |
| commit | 9ff262bc2ac24be2931505aa877b0c500fcb988a (patch) | |
| tree | 75ef8f32fc4b7359cc48f45be58216491d624b93 /MediaBrowser.Dlna | |
| parent | 8882925dab080eb236a5cc896f48ed99711d76a8 (diff) | |
| parent | 6fe7264f7828aff196e19cfa3497835c5921a7f9 (diff) | |
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Diffstat (limited to 'MediaBrowser.Dlna')
26 files changed, 223 insertions, 64 deletions
diff --git a/MediaBrowser.Dlna/MediaBrowser.Dlna.csproj b/MediaBrowser.Dlna/MediaBrowser.Dlna.csproj index df1fed12f0..21e41c02af 100644 --- a/MediaBrowser.Dlna/MediaBrowser.Dlna.csproj +++ b/MediaBrowser.Dlna/MediaBrowser.Dlna.csproj @@ -70,6 +70,7 @@ <Compile Include="PlayTo\PlayToServerEntryPoint.cs" /> <Compile Include="PlayTo\ServiceAction.cs" /> <Compile Include="Profiles\Foobar2000Profile.cs" /> + <Compile Include="Profiles\Windows81Profile.cs" /> <Compile Include="Ssdp\SsdpHelper.cs" /> <Compile Include="PlayTo\SsdpHttpClient.cs" /> <Compile Include="PlayTo\StateVariable.cs" /> @@ -78,7 +79,7 @@ <Compile Include="PlayTo\TransportStateEventArgs.cs" /> <Compile Include="PlayTo\uBaseObject.cs" /> <Compile Include="PlayTo\uContainer.cs" /> - <Compile Include="PlayTo\uIcon.cs" /> + <Compile Include="PlayTo\DeviceIcon.cs" /> <Compile Include="PlayTo\uParser.cs" /> <Compile Include="PlayTo\uPnpNamespaces.cs" /> <Compile Include="Profiles\DefaultProfile.cs" /> diff --git a/MediaBrowser.Dlna/PlayTo/Device.cs b/MediaBrowser.Dlna/PlayTo/Device.cs index c0f88f285e..6b7fb0ceed 100644 --- a/MediaBrowser.Dlna/PlayTo/Device.cs +++ b/MediaBrowser.Dlna/PlayTo/Device.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.Net; +using System.Globalization; +using MediaBrowser.Common.Net; using MediaBrowser.Controller.Configuration; using MediaBrowser.Model.Logging; using System; @@ -453,10 +454,10 @@ namespace MediaBrowser.Dlna.PlayTo var volume = result.Document.Descendants(uPnpNamespaces.RenderingControl + "GetVolumeResponse").Select(i => i.Element("CurrentVolume")).FirstOrDefault(i => i != null); var volumeValue = volume == null ? null : volume.Value; - if (volumeValue == null) + if (string.IsNullOrWhiteSpace(volumeValue)) return; - Volume = Int32.Parse(volumeValue); + Volume = int.Parse(volumeValue, UsCulture); //Reset the Mute value if Volume is bigger than zero if (Volume > 0 && _muteVol > 0) @@ -555,17 +556,17 @@ namespace MediaBrowser.Dlna.PlayTo var durationElem = result.Document.Descendants(uPnpNamespaces.AvTransport + "GetPositionInfoResponse").Select(i => i.Element("TrackDuration")).FirstOrDefault(i => i != null); var duration = durationElem == null ? null : durationElem.Value; - if (duration != null) + if (!string.IsNullOrWhiteSpace(duration)) { - Duration = TimeSpan.Parse(duration); + Duration = TimeSpan.Parse(duration, UsCulture); } var positionElem = result.Document.Descendants(uPnpNamespaces.AvTransport + "GetPositionInfoResponse").Select(i => i.Element("RelTime")).FirstOrDefault(i => i != null); var position = positionElem == null ? null : positionElem.Value; - if (position != null) + if (!string.IsNullOrWhiteSpace(position)) { - Position = TimeSpan.Parse(position); + Position = TimeSpan.Parse(position, UsCulture); } var track = result.Document.Descendants("TrackMetaData").Select(i => i.Value) @@ -701,7 +702,7 @@ namespace MediaBrowser.Dlna.PlayTo if (icon != null) { - deviceProperties.Icon = uIcon.Create(icon); + deviceProperties.Icon = CreateIcon(icon); } var isRenderer = false; @@ -746,6 +747,33 @@ namespace MediaBrowser.Dlna.PlayTo #endregion + private static readonly CultureInfo UsCulture = new CultureInfo("en-US"); + private static DeviceIcon CreateIcon(XElement element) + { + if (element == null) + { + throw new ArgumentNullException("element"); + } + + var mimeType = element.GetDescendantValue(uPnpNamespaces.ud.GetName("mimetype")); + var width = element.GetDescendantValue(uPnpNamespaces.ud.GetName("width")); + var height = element.GetDescendantValue(uPnpNamespaces.ud.GetName("height")); + var depth = element.GetDescendantValue(uPnpNamespaces.ud.GetName("depth")); + var url = element.GetDescendantValue(uPnpNamespaces.ud.GetName("url")); + + var widthValue = int.Parse(width, NumberStyles.Any, UsCulture); + var heightValue = int.Parse(height, NumberStyles.Any, UsCulture); + + return new DeviceIcon + { + Depth = depth, + Height = heightValue, + MimeType = mimeType, + Url = url, + Width = widthValue + }; + } + private static DeviceService Create(XElement element) { var type = element.GetDescendantValue(uPnpNamespaces.ud.GetName("serviceType")); diff --git a/MediaBrowser.Dlna/PlayTo/DeviceIcon.cs b/MediaBrowser.Dlna/PlayTo/DeviceIcon.cs new file mode 100644 index 0000000000..a46abdd745 --- /dev/null +++ b/MediaBrowser.Dlna/PlayTo/DeviceIcon.cs @@ -0,0 +1,21 @@ + +namespace MediaBrowser.Dlna.PlayTo +{ + public class DeviceIcon + { + public string Url { get; set; } + + public string MimeType { get; set; } + + public int Width { get; set; } + + public int Height { get; set; } + + public string Depth { get; set; } + + public override string ToString() + { + return string.Format("{0}x{1}", Height, Width); + } + } +} diff --git a/MediaBrowser.Dlna/PlayTo/DeviceInfo.cs b/MediaBrowser.Dlna/PlayTo/DeviceInfo.cs index 122549c7d3..71b06c8ee1 100644 --- a/MediaBrowser.Dlna/PlayTo/DeviceInfo.cs +++ b/MediaBrowser.Dlna/PlayTo/DeviceInfo.cs @@ -1,5 +1,6 @@ using MediaBrowser.Controller.Dlna; using System.Collections.Generic; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.PlayTo { @@ -46,7 +47,7 @@ namespace MediaBrowser.Dlna.PlayTo } } - public uIcon Icon { get; set; } + public DeviceIcon Icon { get; set; } private readonly List<DeviceService> _services = new List<DeviceService>(); public List<DeviceService> Services diff --git a/MediaBrowser.Dlna/PlayTo/DlnaController.cs b/MediaBrowser.Dlna/PlayTo/DlnaController.cs index 96df8c8622..a584408c53 100644 --- a/MediaBrowser.Dlna/PlayTo/DlnaController.cs +++ b/MediaBrowser.Dlna/PlayTo/DlnaController.cs @@ -6,6 +6,7 @@ using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Session; +using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Session; diff --git a/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs b/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs index 9f990bcb7b..be6e9a0c94 100644 --- a/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs +++ b/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs @@ -1,4 +1,4 @@ -using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.PlayTo { diff --git a/MediaBrowser.Dlna/PlayTo/PlaylistItemFactory.cs b/MediaBrowser.Dlna/PlayTo/PlaylistItemFactory.cs index 6a42e6a756..34394fa32d 100644 --- a/MediaBrowser.Dlna/PlayTo/PlaylistItemFactory.cs +++ b/MediaBrowser.Dlna/PlayTo/PlaylistItemFactory.cs @@ -1,6 +1,7 @@ using MediaBrowser.Controller.Dlna; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; +using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; @@ -184,7 +185,6 @@ namespace MediaBrowser.Dlna.PlayTo } break; } - case ProfileConditionValue.Filesize: case ProfileConditionValue.AudioProfile: case ProfileConditionValue.Has64BitOffsets: case ProfileConditionValue.VideoBitDepth: @@ -444,8 +444,6 @@ namespace MediaBrowser.Dlna.PlayTo return audioStream == null ? null : audioStream.BitRate; case ProfileConditionValue.AudioChannels: return audioStream == null ? null : audioStream.Channels; - case ProfileConditionValue.Filesize: - return new FileInfo(mediaPath).Length; case ProfileConditionValue.VideoBitrate: return videoStream == null ? null : videoStream.BitRate; case ProfileConditionValue.VideoFramerate: diff --git a/MediaBrowser.Dlna/PlayTo/uIcon.cs b/MediaBrowser.Dlna/PlayTo/uIcon.cs deleted file mode 100644 index 79bbbc1efa..0000000000 --- a/MediaBrowser.Dlna/PlayTo/uIcon.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Xml.Linq; - -namespace MediaBrowser.Dlna.PlayTo -{ - public class uIcon - { - public string Url { get; private set; } - - public string MimeType { get; private set; } - - public int Width { get; private set; } - - public int Height { get; private set; } - - public string Depth { get; private set; } - - public uIcon(string mimeType, string width, string height, string depth, string url) - { - MimeType = mimeType; - Width = (!string.IsNullOrEmpty(width)) ? int.Parse(width) : 0; - Height = (!string.IsNullOrEmpty(height)) ? int.Parse(height) : 0; - Depth = depth; - Url = url; - } - - public static uIcon Create(XElement element) - { - if (element == null) - { - throw new ArgumentNullException("element"); - } - - var mimeType = element.GetDescendantValue(uPnpNamespaces.ud.GetName("mimetype")); - var width = element.GetDescendantValue(uPnpNamespaces.ud.GetName("width")); - var height = element.GetDescendantValue(uPnpNamespaces.ud.GetName("height")); - var depth = element.GetDescendantValue(uPnpNamespaces.ud.GetName("depth")); - var url = element.GetDescendantValue(uPnpNamespaces.ud.GetName("url")); - - return new uIcon(mimeType, width, height, depth, url); - } - - public override string ToString() - { - return string.Format("{0}x{1}", Height, Width); - } - } -} diff --git a/MediaBrowser.Dlna/Profiles/DefaultProfile.cs b/MediaBrowser.Dlna/Profiles/DefaultProfile.cs index e6b5668faf..13bf467c62 100644 --- a/MediaBrowser.Dlna/Profiles/DefaultProfile.cs +++ b/MediaBrowser.Dlna/Profiles/DefaultProfile.cs @@ -1,5 +1,6 @@ using MediaBrowser.Controller.Dlna; using System.Xml.Serialization; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/DenonAvrProfile.cs b/MediaBrowser.Dlna/Profiles/DenonAvrProfile.cs index 3c5064ad62..2f2d4f3ceb 100644 --- a/MediaBrowser.Dlna/Profiles/DenonAvrProfile.cs +++ b/MediaBrowser.Dlna/Profiles/DenonAvrProfile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/Foobar2000Profile.cs b/MediaBrowser.Dlna/Profiles/Foobar2000Profile.cs index 198b0a73a2..1eae3fa934 100644 --- a/MediaBrowser.Dlna/Profiles/Foobar2000Profile.cs +++ b/MediaBrowser.Dlna/Profiles/Foobar2000Profile.cs @@ -1,5 +1,6 @@ using MediaBrowser.Controller.Dlna; using System.Xml.Serialization; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/LgTvProfile.cs b/MediaBrowser.Dlna/Profiles/LgTvProfile.cs index ccf36e8447..cce33ae100 100644 --- a/MediaBrowser.Dlna/Profiles/LgTvProfile.cs +++ b/MediaBrowser.Dlna/Profiles/LgTvProfile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/LinksysDMA2100Profile.cs b/MediaBrowser.Dlna/Profiles/LinksysDMA2100Profile.cs index a64cd24f31..e7542ea9e5 100644 --- a/MediaBrowser.Dlna/Profiles/LinksysDMA2100Profile.cs +++ b/MediaBrowser.Dlna/Profiles/LinksysDMA2100Profile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/PanasonicVieraProfile.cs b/MediaBrowser.Dlna/Profiles/PanasonicVieraProfile.cs index ced9a7c612..178207fc6a 100644 --- a/MediaBrowser.Dlna/Profiles/PanasonicVieraProfile.cs +++ b/MediaBrowser.Dlna/Profiles/PanasonicVieraProfile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/SamsungSmartTvProfile.cs b/MediaBrowser.Dlna/Profiles/SamsungSmartTvProfile.cs index b008947d3f..db856eeee9 100644 --- a/MediaBrowser.Dlna/Profiles/SamsungSmartTvProfile.cs +++ b/MediaBrowser.Dlna/Profiles/SamsungSmartTvProfile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/SonyBlurayPlayer2013Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBlurayPlayer2013Profile.cs index b64d4f6caf..833f623bf4 100644 --- a/MediaBrowser.Dlna/Profiles/SonyBlurayPlayer2013Profile.cs +++ b/MediaBrowser.Dlna/Profiles/SonyBlurayPlayer2013Profile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/SonyBlurayPlayerProfile.cs b/MediaBrowser.Dlna/Profiles/SonyBlurayPlayerProfile.cs index 972fc48ed7..c6319122c4 100644 --- a/MediaBrowser.Dlna/Profiles/SonyBlurayPlayerProfile.cs +++ b/MediaBrowser.Dlna/Profiles/SonyBlurayPlayerProfile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs index 870b97fe72..6639e18763 100644 --- a/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs +++ b/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs index 2bba58696e..8665b892ab 100644 --- a/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs +++ b/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs index f8a6dcfbd7..5becc6752a 100644 --- a/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs +++ b/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs index 56eaf47f4f..4b814c3e0a 100644 --- a/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs +++ b/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs b/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs index 06d721f52e..f746c0d3af 100644 --- a/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs +++ b/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/WdtvLiveProfile.cs b/MediaBrowser.Dlna/Profiles/WdtvLiveProfile.cs index c3b88f7bfc..5e7c278936 100644 --- a/MediaBrowser.Dlna/Profiles/WdtvLiveProfile.cs +++ b/MediaBrowser.Dlna/Profiles/WdtvLiveProfile.cs @@ -1,5 +1,6 @@ using MediaBrowser.Controller.Dlna; using System.Xml.Serialization; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/Windows81Profile.cs b/MediaBrowser.Dlna/Profiles/Windows81Profile.cs new file mode 100644 index 0000000000..b7c6372584 --- /dev/null +++ b/MediaBrowser.Dlna/Profiles/Windows81Profile.cs @@ -0,0 +1,141 @@ +using System.Xml.Serialization; +using MediaBrowser.Model.Dlna; + +namespace MediaBrowser.Dlna.Profiles +{ + [XmlRoot("Profile")] + public class Windows81Profile : DefaultProfile + { + public Windows81Profile() + { + Name = "Windows 8/RT"; + + Identification = new DeviceIdentification + { + Manufacturer = "Microsoft SDK Customer" + }; + + TranscodingProfiles = new[] + { + new TranscodingProfile + { + Container = "mp3", + AudioCodec = "mp3", + Type = DlnaProfileType.Audio + }, + new TranscodingProfile + { + Container = "ts", + VideoCodec = "h264", + AudioCodec = "aac", + Type = DlnaProfileType.Video, + VideoProfile = "Baseline" + } + }; + + DirectPlayProfiles = new[] + { + new DirectPlayProfile + { + Container = "mp4,mov", + VideoCodec = "h264,mpeg4", + AudioCodec = "aac,ac3,eac3,mp3,pcm", + Type = DlnaProfileType.Video + }, + + new DirectPlayProfile + { + Container = "ts", + VideoCodec = "h264", + AudioCodec = "aac,ac3,eac3,mp3,mp2,pcm", + Type = DlnaProfileType.Video + }, + + new DirectPlayProfile + { + Container = "asf", + VideoCodec = "wmv2,wmv3,vc1", + AudioCodec = "wmav2,wmapro,wmavoice", + Type = DlnaProfileType.Video + }, + + new DirectPlayProfile + { + Container = "avi", + VideoCodec = "mpeg4,msmpeg4,mjpeg", + AudioCodec = "mp3,ac3,eac3,mp2,pcm", + Type = DlnaProfileType.Video + }, + + new DirectPlayProfile + { + Container = "mp4", + AudioCodec = "aac", + Type = DlnaProfileType.Audio + }, + + new DirectPlayProfile + { + Container = "mp3", + AudioCodec = "mp3", + Type = DlnaProfileType.Audio + }, + + new DirectPlayProfile + { + Container = "jpeg", + Type = DlnaProfileType.Photo + } + }; + + CodecProfiles = new[] + { + new CodecProfile + { + Type = CodecType.Video, + Conditions = new [] + { + new ProfileCondition + { + Condition = ProfileConditionType.LessThanEqual, + Property = ProfileConditionValue.VideoBitDepth, + Value = "8", + IsRequired = false + } + } + }, + + new CodecProfile + { + Type = CodecType.VideoAudio, + Codec = "aac,eac3", + Conditions = new [] + { + new ProfileCondition + { + Condition = ProfileConditionType.LessThanEqual, + Property = ProfileConditionValue.AudioChannels, + Value = "8" + } + } + }, + + new CodecProfile + { + Type = CodecType.VideoAudio, + Codec = "ac3", + Conditions = new [] + { + new ProfileCondition + { + Condition = ProfileConditionType.LessThanEqual, + Property = ProfileConditionValue.AudioChannels, + Value = "6" + } + } + } + }; + + } + } +} diff --git a/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs b/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs index 3fae85f594..9ece32df54 100644 --- a/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs +++ b/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs @@ -1,5 +1,5 @@ -using System.Xml.Serialization; -using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; +using System.Xml.Serialization; namespace MediaBrowser.Dlna.Profiles { diff --git a/MediaBrowser.Dlna/Profiles/XboxOneProfile.cs b/MediaBrowser.Dlna/Profiles/XboxOneProfile.cs index 59372655c0..0615e65038 100644 --- a/MediaBrowser.Dlna/Profiles/XboxOneProfile.cs +++ b/MediaBrowser.Dlna/Profiles/XboxOneProfile.cs @@ -1,5 +1,6 @@ using System.Xml.Serialization; using MediaBrowser.Controller.Dlna; +using MediaBrowser.Model.Dlna; namespace MediaBrowser.Dlna.Profiles { |
