2
0
Эх сурвалжийг харах

Fixed csproj and xml identation.

Erwin de Haan 6 жил өмнө
parent
commit
c5430f86b0
56 өөрчлөгдсөн 2647 нэмэгдсэн , 2796 устгасан
  1. 10 10
      BDInfo/BDInfo.csproj
  2. 10 10
      DvdLib/DvdLib.csproj
  3. 53 53
      Emby.Dlna/Emby.Dlna.csproj
  4. 58 58
      Emby.Dlna/Profiles/Xml/Default.xml
  5. 65 65
      Emby.Dlna/Profiles/Xml/Denon AVR.xml
  6. 64 64
      Emby.Dlna/Profiles/Xml/DirecTV HD-DVR.xml
  7. 93 93
      Emby.Dlna/Profiles/Xml/Dish Hopper-Joey.xml
  8. 89 89
      Emby.Dlna/Profiles/Xml/LG Smart TV.xml
  9. 51 51
      Emby.Dlna/Profiles/Xml/Linksys DMA2100.xml
  10. 59 59
      Emby.Dlna/Profiles/Xml/Marantz.xml
  11. 59 59
      Emby.Dlna/Profiles/Xml/MediaMonkey.xml
  12. 84 84
      Emby.Dlna/Profiles/Xml/Panasonic Viera.xml
  13. 89 89
      Emby.Dlna/Profiles/Xml/Popcorn Hour.xml
  14. 125 125
      Emby.Dlna/Profiles/Xml/Samsung Smart TV.xml
  15. 57 57
      Emby.Dlna/Profiles/Xml/Sharp Smart TV.xml
  16. 0 31
      Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2013.xml
  17. 0 31
      Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2014.xml
  18. 0 29
      Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2015.xml
  19. 0 29
      Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2016.xml
  20. 0 29
      Emby.Dlna/Profiles/Xml/Sony Blu-ray Player.xml
  21. 130 130
      Emby.Dlna/Profiles/Xml/Sony Bravia (2010).xml
  22. 136 136
      Emby.Dlna/Profiles/Xml/Sony Bravia (2011).xml
  23. 112 112
      Emby.Dlna/Profiles/Xml/Sony Bravia (2012).xml
  24. 111 111
      Emby.Dlna/Profiles/Xml/Sony Bravia (2013).xml
  25. 111 111
      Emby.Dlna/Profiles/Xml/Sony Bravia (2014).xml
  26. 102 102
      Emby.Dlna/Profiles/Xml/Sony PlayStation 3.xml
  27. 105 105
      Emby.Dlna/Profiles/Xml/Sony PlayStation 4.xml
  28. 91 91
      Emby.Dlna/Profiles/Xml/WDTV Live.xml
  29. 123 123
      Emby.Dlna/Profiles/Xml/Xbox One.xml
  30. 64 64
      Emby.Dlna/Profiles/Xml/foobar2000.xml
  31. 16 16
      Emby.Drawing.Skia/Emby.Drawing.Skia.csproj
  32. 11 11
      Emby.Drawing/Emby.Drawing.csproj
  33. 11 11
      Emby.IsoMounting/IsoMounter/IsoMounter.csproj
  34. 10 10
      Emby.Naming/Emby.Naming.csproj
  35. 12 12
      Emby.Notifications/Emby.Notifications.csproj
  36. 12 12
      Emby.Photos/Emby.Photos.csproj
  37. 42 42
      Emby.Server.Implementations/Emby.Server.Implementations.csproj
  38. 19 19
      Emby.XmlTv/Emby.XmlTv.Console/Emby.XmlTv.Console.csproj
  39. 113 113
      Emby.XmlTv/Emby.XmlTv.Test/Emby.XmlTv.Test.csproj
  40. 7 7
      Emby.XmlTv/Emby.XmlTv/Emby.XmlTv.csproj
  41. 25 25
      Jellyfin.Server/Jellyfin.Server.csproj
  42. 11 11
      MediaBrowser.Api/MediaBrowser.Api.csproj
  43. 16 16
      MediaBrowser.Common/MediaBrowser.Common.csproj
  44. 17 17
      MediaBrowser.Controller/MediaBrowser.Controller.csproj
  45. 11 11
      MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj
  46. 14 14
      MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj
  47. 16 16
      MediaBrowser.Model/MediaBrowser.Model.csproj
  48. 15 15
      MediaBrowser.Providers/MediaBrowser.Providers.csproj
  49. 129 129
      MediaBrowser.Tests/MediaBrowser.Tests.csproj
  50. 16 16
      MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
  51. 11 11
      MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj
  52. 33 33
      MediaBrowser.sln.GhostDoc.xml
  53. 8 8
      OpenSubtitlesHandler/OpenSubtitlesHandler.csproj
  54. 12 12
      SocketHttpListener/SocketHttpListener.csproj
  55. 7 7
      deployment/fedora-package-x64/pkg-src/jellyfin-firewalld.xml
  56. 2 2
      deployment/unraid/docker-templates/jellyfin.xml

+ 10 - 10
BDInfo/BDInfo.csproj

@@ -1,16 +1,16 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 10 - 10
DvdLib/DvdLib.csproj

@@ -1,16 +1,16 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 53 - 53
Emby.Dlna/Emby.Dlna.csproj

@@ -1,61 +1,61 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-        <ProjectReference Include="..\RSSDP\RSSDP.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+    <ProjectReference Include="..\RSSDP\RSSDP.csproj" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
-    <ItemGroup>
-        <EmbeddedResource Include="Images\logo120.jpg" />
-        <EmbeddedResource Include="Images\logo120.png" />
-        <EmbeddedResource Include="Images\logo240.jpg" />
-        <EmbeddedResource Include="Images\logo240.png" />
-        <EmbeddedResource Include="Images\logo48.jpg" />
-        <EmbeddedResource Include="Images\logo48.png" />
-        <EmbeddedResource Include="Images\people48.jpg" />
-        <EmbeddedResource Include="Images\people48.png" />
-        <EmbeddedResource Include="Images\people480.jpg" />
-        <EmbeddedResource Include="Images\people480.png" />
-    </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Images\logo120.jpg" />
+    <EmbeddedResource Include="Images\logo120.png" />
+    <EmbeddedResource Include="Images\logo240.jpg" />
+    <EmbeddedResource Include="Images\logo240.png" />
+    <EmbeddedResource Include="Images\logo48.jpg" />
+    <EmbeddedResource Include="Images\logo48.png" />
+    <EmbeddedResource Include="Images\people48.jpg" />
+    <EmbeddedResource Include="Images\people48.png" />
+    <EmbeddedResource Include="Images\people480.jpg" />
+    <EmbeddedResource Include="Images\people480.png" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <EmbeddedResource Include="Profiles\Xml\Default.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Denon AVR.xml" />
-        <EmbeddedResource Include="Profiles\Xml\DirecTV HD-DVR.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Dish Hopper-Joey.xml" />
-        <EmbeddedResource Include="Profiles\Xml\foobar2000.xml" />
-        <EmbeddedResource Include="Profiles\Xml\LG Smart TV.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Linksys DMA2100.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Marantz.xml" />
-        <EmbeddedResource Include="Profiles\Xml\MediaMonkey.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Panasonic Viera.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Popcorn Hour.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Samsung Smart TV.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2013.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2014.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2015.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2016.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282010%29.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282011%29.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282012%29.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282013%29.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282014%29.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony PlayStation 3.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Sony PlayStation 4.xml" />
-        <EmbeddedResource Include="Profiles\Xml\WDTV Live.xml" />
-        <EmbeddedResource Include="Profiles\Xml\Xbox One.xml" />
-    </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Profiles\Xml\Default.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Denon AVR.xml" />
+    <EmbeddedResource Include="Profiles\Xml\DirecTV HD-DVR.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Dish Hopper-Joey.xml" />
+    <EmbeddedResource Include="Profiles\Xml\foobar2000.xml" />
+    <EmbeddedResource Include="Profiles\Xml\LG Smart TV.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Linksys DMA2100.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Marantz.xml" />
+    <EmbeddedResource Include="Profiles\Xml\MediaMonkey.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Panasonic Viera.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Popcorn Hour.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Samsung Smart TV.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2013.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2014.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2015.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2016.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282010%29.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282011%29.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282012%29.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282013%29.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282014%29.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony PlayStation 3.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Sony PlayStation 4.xml" />
+    <EmbeddedResource Include="Profiles\Xml\WDTV Live.xml" />
+    <EmbeddedResource Include="Profiles\Xml\Xbox One.xml" />
+  </ItemGroup>
 
 </Project>

+ 58 - 58
Emby.Dlna/Profiles/Xml/Default.xml

@@ -1,61 +1,61 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Generic Device</Name>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="" type="Video" />
-        <DirectPlayProfile container="" type="Audio" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles />
-    <CodecProfiles />
-    <ResponseProfiles>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="External" />
-        <SubtitleProfile format="sub" method="External" />
-        <SubtitleProfile format="srt" method="Embed" />
-        <SubtitleProfile format="ass" method="Embed" />
-        <SubtitleProfile format="ssa" method="Embed" />
-        <SubtitleProfile format="smi" method="Embed" />
-        <SubtitleProfile format="dvdsub" method="Embed" />
-        <SubtitleProfile format="pgs" method="Embed" />
-        <SubtitleProfile format="pgssub" method="Embed" />
-        <SubtitleProfile format="sub" method="Embed" />
-        <SubtitleProfile format="subrip" method="Embed" />
-        <SubtitleProfile format="vtt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Generic Device</Name>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="" type="Video" />
+    <DirectPlayProfile container="" type="Audio" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles />
+  <CodecProfiles />
+  <ResponseProfiles>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="External" />
+    <SubtitleProfile format="sub" method="External" />
+    <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="ass" method="Embed" />
+    <SubtitleProfile format="ssa" method="Embed" />
+    <SubtitleProfile format="smi" method="Embed" />
+    <SubtitleProfile format="dvdsub" method="Embed" />
+    <SubtitleProfile format="pgs" method="Embed" />
+    <SubtitleProfile format="pgssub" method="Embed" />
+    <SubtitleProfile format="sub" method="Embed" />
+    <SubtitleProfile format="subrip" method="Embed" />
+    <SubtitleProfile format="vtt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 65 - 65
Emby.Dlna/Profiles/Xml/Denon AVR.xml

@@ -1,68 +1,68 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Denon AVR</Name>
-    <Identification>
-        <FriendlyName>Denon:\[AVR:.*</FriendlyName>
-        <Manufacturer>Denon</Manufacturer>
-        <Headers />
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles />
-    <CodecProfiles>
-        <CodecProfile type="Audio" container="flac">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioSampleRate" value="96000" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles />
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="External" />
-        <SubtitleProfile format="sub" method="External" />
-        <SubtitleProfile format="srt" method="Embed" />
-        <SubtitleProfile format="ass" method="Embed" />
-        <SubtitleProfile format="ssa" method="Embed" />
-        <SubtitleProfile format="smi" method="Embed" />
-        <SubtitleProfile format="dvdsub" method="Embed" />
-        <SubtitleProfile format="pgs" method="Embed" />
-        <SubtitleProfile format="pgssub" method="Embed" />
-        <SubtitleProfile format="sub" method="Embed" />
-        <SubtitleProfile format="subrip" method="Embed" />
-        <SubtitleProfile format="vtt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Denon AVR</Name>
+  <Identification>
+    <FriendlyName>Denon:\[AVR:.*</FriendlyName>
+    <Manufacturer>Denon</Manufacturer>
+    <Headers />
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles />
+  <CodecProfiles>
+    <CodecProfile type="Audio" container="flac">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioSampleRate" value="96000" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles />
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="External" />
+    <SubtitleProfile format="sub" method="External" />
+    <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="ass" method="Embed" />
+    <SubtitleProfile format="ssa" method="Embed" />
+    <SubtitleProfile format="smi" method="Embed" />
+    <SubtitleProfile format="dvdsub" method="Embed" />
+    <SubtitleProfile format="pgs" method="Embed" />
+    <SubtitleProfile format="pgssub" method="Embed" />
+    <SubtitleProfile format="sub" method="Embed" />
+    <SubtitleProfile format="subrip" method="Embed" />
+    <SubtitleProfile format="vtt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 64 - 64
Emby.Dlna/Profiles/Xml/DirecTV HD-DVR.xml

@@ -1,67 +1,67 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>DirecTV HD-DVR</Name>
-    <Identification>
-        <FriendlyName>^DIRECTV.*$</FriendlyName>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="DIRECTV" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>true</RequiresPlainVideoItems>
-    <RequiresPlainFolders>true</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg2video" type="Video" />
-        <DirectPlayProfile container="jpeg,jpg" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mpeg" type="Video" videoCodec="mpeg2video" audioCodec="mp2" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles />
-    <CodecProfiles>
-        <CodecProfile type="Video" codec="mpeg2video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="8192000" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Audio" codec="mp2">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles />
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>DirecTV HD-DVR</Name>
+  <Identification>
+    <FriendlyName>^DIRECTV.*$</FriendlyName>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="DIRECTV" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>true</RequiresPlainVideoItems>
+  <RequiresPlainFolders>true</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg2video" type="Video" />
+    <DirectPlayProfile container="jpeg,jpg" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mpeg" type="Video" videoCodec="mpeg2video" audioCodec="mp2" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles />
+  <CodecProfiles>
+    <CodecProfile type="Video" codec="mpeg2video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="8192000" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Audio" codec="mp2">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles />
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 93 - 93
Emby.Dlna/Profiles/Xml/Dish Hopper-Joey.xml

@@ -1,96 +1,96 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Dish Hopper-Joey</Name>
-    <Identification>
-        <Manufacturer>Echostar Technologies LLC</Manufacturer>
-        <ManufacturerUrl>http://www.echostar.com</ManufacturerUrl>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="Zip_" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mp2t:*,http-get:*:video/MP1S:*,http-get:*:video/mpeg2:*,http-get:*:video/mp4:*,http-get:*:video/x-matroska:*,http-get:*:audio/mpeg:*,http-get:*:audio/mpeg3:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/mp4a-latm:*,http-get:*:image/jpeg:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="mp4,mkv,mpeg,ts" audioCodec="mp3,ac3,aac,he-aac,pcm" videoCodec="h264,mpeg2video" type="Video" />
-        <DirectPlayProfile container="mp3,alac,flac" type="Audio" />
-        <DirectPlayProfile container="jpeg" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="mp4" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles />
-    <CodecProfiles>
-        <CodecProfile type="Video" codec="h264">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="ac3,he-aac">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="aac">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="IsSecondaryAudio" value="false" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="mkv,ts,mpegts" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Dish Hopper-Joey</Name>
+  <Identification>
+    <Manufacturer>Echostar Technologies LLC</Manufacturer>
+    <ManufacturerUrl>http://www.echostar.com</ManufacturerUrl>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="Zip_" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mp2t:*,http-get:*:video/MP1S:*,http-get:*:video/mpeg2:*,http-get:*:video/mp4:*,http-get:*:video/x-matroska:*,http-get:*:audio/mpeg:*,http-get:*:audio/mpeg3:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/mp4a-latm:*,http-get:*:image/jpeg:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="mp4,mkv,mpeg,ts" audioCodec="mp3,ac3,aac,he-aac,pcm" videoCodec="h264,mpeg2video" type="Video" />
+    <DirectPlayProfile container="mp3,alac,flac" type="Audio" />
+    <DirectPlayProfile container="jpeg" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="mp4" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles />
+  <CodecProfiles>
+    <CodecProfile type="Video" codec="h264">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="ac3,he-aac">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="aac">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="IsSecondaryAudio" value="false" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="mkv,ts,mpegts" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 89 - 89
Emby.Dlna/Profiles/Xml/LG Smart TV.xml

@@ -1,92 +1,92 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>LG Smart TV</Name>
-    <Identification>
-        <FriendlyName>LG.*</FriendlyName>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="LG" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="ts,mpegts,avi,mkv,m2ts" audioCodec="aac,ac3,eac3,mp3,dca,dts" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="mp4,m4v" audioCodec="aac,ac3,eac3,mp3,dca,dts" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="mp3" type="Audio" />
-        <DirectPlayProfile container="jpeg" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Photo">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video" codec="mpeg4">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video" codec="h264">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="ac3,eac3,aac,mp3">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" type="Video" mimeType="video/mpeg">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-        <SubtitleProfile format="srt" method="External" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>LG Smart TV</Name>
+  <Identification>
+    <FriendlyName>LG.*</FriendlyName>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="LG" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="ts,mpegts,avi,mkv,m2ts" audioCodec="aac,ac3,eac3,mp3,dca,dts" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="mp4,m4v" audioCodec="aac,ac3,eac3,mp3,dca,dts" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="mp3" type="Audio" />
+    <DirectPlayProfile container="jpeg" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Photo">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video" codec="mpeg4">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video" codec="h264">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="ac3,eac3,aac,mp3">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" type="Video" mimeType="video/mpeg">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="srt" method="External" />
+  </SubtitleProfiles>
 </Profile>

+ 51 - 51
Emby.Dlna/Profiles/Xml/Linksys DMA2100.xml

@@ -1,54 +1,54 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Linksys DMA2100</Name>
-    <Identification>
-        <ModelName>DMA2100us</ModelName>
-        <Headers />
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />
-        <DirectPlayProfile container="avi,mp4,mkv,ts,mpegts,m4v" type="Video" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles />
-    <CodecProfiles />
-    <ResponseProfiles>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Linksys DMA2100</Name>
+  <Identification>
+    <ModelName>DMA2100us</ModelName>
+    <Headers />
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />
+    <DirectPlayProfile container="avi,mp4,mkv,ts,mpegts,m4v" type="Video" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles />
+  <CodecProfiles />
+  <ResponseProfiles>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 59 - 59
Emby.Dlna/Profiles/Xml/Marantz.xml

@@ -1,62 +1,62 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Marantz</Name>
-    <Identification>
-        <Manufacturer>Marantz</Manufacturer>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="Marantz" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="aac,mp3,wav,wma,flac" type="Audio" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles />
-    <CodecProfiles />
-    <ResponseProfiles />
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="External" />
-        <SubtitleProfile format="sub" method="External" />
-        <SubtitleProfile format="srt" method="Embed" />
-        <SubtitleProfile format="ass" method="Embed" />
-        <SubtitleProfile format="ssa" method="Embed" />
-        <SubtitleProfile format="smi" method="Embed" />
-        <SubtitleProfile format="dvdsub" method="Embed" />
-        <SubtitleProfile format="pgs" method="Embed" />
-        <SubtitleProfile format="pgssub" method="Embed" />
-        <SubtitleProfile format="sub" method="Embed" />
-        <SubtitleProfile format="subrip" method="Embed" />
-        <SubtitleProfile format="vtt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Marantz</Name>
+  <Identification>
+    <Manufacturer>Marantz</Manufacturer>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="Marantz" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="aac,mp3,wav,wma,flac" type="Audio" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles />
+  <CodecProfiles />
+  <ResponseProfiles />
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="External" />
+    <SubtitleProfile format="sub" method="External" />
+    <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="ass" method="Embed" />
+    <SubtitleProfile format="ssa" method="Embed" />
+    <SubtitleProfile format="smi" method="Embed" />
+    <SubtitleProfile format="dvdsub" method="Embed" />
+    <SubtitleProfile format="pgs" method="Embed" />
+    <SubtitleProfile format="pgssub" method="Embed" />
+    <SubtitleProfile format="sub" method="Embed" />
+    <SubtitleProfile format="subrip" method="Embed" />
+    <SubtitleProfile format="vtt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 59 - 59
Emby.Dlna/Profiles/Xml/MediaMonkey.xml

@@ -1,62 +1,62 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>MediaMonkey</Name>
-    <Identification>
-        <FriendlyName>MediaMonkey</FriendlyName>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="MediaMonkey" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac,m4a" type="Audio" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles />
-    <CodecProfiles />
-    <ResponseProfiles />
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="External" />
-        <SubtitleProfile format="sub" method="External" />
-        <SubtitleProfile format="srt" method="Embed" />
-        <SubtitleProfile format="ass" method="Embed" />
-        <SubtitleProfile format="ssa" method="Embed" />
-        <SubtitleProfile format="smi" method="Embed" />
-        <SubtitleProfile format="dvdsub" method="Embed" />
-        <SubtitleProfile format="pgs" method="Embed" />
-        <SubtitleProfile format="pgssub" method="Embed" />
-        <SubtitleProfile format="sub" method="Embed" />
-        <SubtitleProfile format="subrip" method="Embed" />
-        <SubtitleProfile format="vtt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>MediaMonkey</Name>
+  <Identification>
+    <FriendlyName>MediaMonkey</FriendlyName>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="MediaMonkey" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac,m4a" type="Audio" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles />
+  <CodecProfiles />
+  <ResponseProfiles />
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="External" />
+    <SubtitleProfile format="sub" method="External" />
+    <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="ass" method="Embed" />
+    <SubtitleProfile format="ssa" method="Embed" />
+    <SubtitleProfile format="smi" method="Embed" />
+    <SubtitleProfile format="dvdsub" method="Embed" />
+    <SubtitleProfile format="pgs" method="Embed" />
+    <SubtitleProfile format="pgssub" method="Embed" />
+    <SubtitleProfile format="sub" method="Embed" />
+    <SubtitleProfile format="subrip" method="Embed" />
+    <SubtitleProfile format="vtt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 84 - 84
Emby.Dlna/Profiles/Xml/Panasonic Viera.xml

@@ -1,87 +1,87 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Panasonic Viera</Name>
-    <Identification>
-        <FriendlyName>VIERA</FriendlyName>
-        <Manufacturer>Panasonic</Manufacturer>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="Panasonic MIL DLNA" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes>
-        <XmlAttribute name="xmlns:pv" value="http://www.pv.com/pvns/" />
-    </XmlRootAttributes>
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="mpeg,mpg" audioCodec="ac3,mp3,pcm_dvd" videoCodec="mpeg2video,mpeg4" type="Video" />
-        <DirectPlayProfile container="mkv" audioCodec="aac,ac3,dca,mp3,mp2,pcm,dts" videoCodec="h264,mpeg2video" type="Video" />
-        <DirectPlayProfile container="ts,mpegts" audioCodec="aac,mp3,mp2" videoCodec="h264,mpeg2video" type="Video" />
-        <DirectPlayProfile container="mp4,m4v" audioCodec="aac,ac3,mp3,pcm" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="mov" audioCodec="aac,pcm" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mpeg4" type="Video" />
-        <DirectPlayProfile container="flv" audioCodec="aac" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-        <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
-        <DirectPlayProfile container="jpeg" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Photo">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="ts,mpegts" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-        <SubtitleProfile format="srt" method="External" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Panasonic Viera</Name>
+  <Identification>
+    <FriendlyName>VIERA</FriendlyName>
+    <Manufacturer>Panasonic</Manufacturer>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="Panasonic MIL DLNA" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes>
+    <XmlAttribute name="xmlns:pv" value="http://www.pv.com/pvns/" />
+  </XmlRootAttributes>
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="mpeg,mpg" audioCodec="ac3,mp3,pcm_dvd" videoCodec="mpeg2video,mpeg4" type="Video" />
+    <DirectPlayProfile container="mkv" audioCodec="aac,ac3,dca,mp3,mp2,pcm,dts" videoCodec="h264,mpeg2video" type="Video" />
+    <DirectPlayProfile container="ts,mpegts" audioCodec="aac,mp3,mp2" videoCodec="h264,mpeg2video" type="Video" />
+    <DirectPlayProfile container="mp4,m4v" audioCodec="aac,ac3,mp3,pcm" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="mov" audioCodec="aac,pcm" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mpeg4" type="Video" />
+    <DirectPlayProfile container="flv" audioCodec="aac" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+    <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
+    <DirectPlayProfile container="jpeg" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Photo">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="ts,mpegts" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="srt" method="External" />
+  </SubtitleProfiles>
 </Profile>

+ 89 - 89
Emby.Dlna/Profiles/Xml/Popcorn Hour.xml

@@ -1,92 +1,92 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Popcorn Hour</Name>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="mp4,mov,m4v" audioCodec="aac" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="ts,mpegts" audioCodec="aac,ac3,eac3,mp3,mp2,pcm" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="asf,wmv" audioCodec="wmav2,wmapro" videoCodec="wmv3,vc1" type="Video" />
-        <DirectPlayProfile container="avi" audioCodec="mp3,ac3,eac3,mp2,pcm" videoCodec="mpeg4,msmpeg4" type="Video" />
-        <DirectPlayProfile container="mkv" audioCodec="aac,mp3,ac3,eac3,mp2,pcm" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="aac,mp3,flac,ogg,wma,wav" type="Audio" />
-        <DirectPlayProfile container="jpeg,gif,bmp,png" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="mp4" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles />
-    <CodecProfiles>
-        <CodecProfile type="Video" codec="h264">
-            <Conditions>
-                <ProfileCondition condition="EqualsAny" property="VideoProfile" value="baseline|constrained baseline" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="aac">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Audio" codec="aac">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Audio" codec="mp3">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="320000" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Popcorn Hour</Name>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="mp4,mov,m4v" audioCodec="aac" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="ts,mpegts" audioCodec="aac,ac3,eac3,mp3,mp2,pcm" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="asf,wmv" audioCodec="wmav2,wmapro" videoCodec="wmv3,vc1" type="Video" />
+    <DirectPlayProfile container="avi" audioCodec="mp3,ac3,eac3,mp2,pcm" videoCodec="mpeg4,msmpeg4" type="Video" />
+    <DirectPlayProfile container="mkv" audioCodec="aac,mp3,ac3,eac3,mp2,pcm" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="aac,mp3,flac,ogg,wma,wav" type="Audio" />
+    <DirectPlayProfile container="jpeg,gif,bmp,png" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="mp4" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles />
+  <CodecProfiles>
+    <CodecProfile type="Video" codec="h264">
+      <Conditions>
+        <ProfileCondition condition="EqualsAny" property="VideoProfile" value="baseline|constrained baseline" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="aac">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Audio" codec="aac">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Audio" codec="mp3">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="320000" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 125 - 125
Emby.Dlna/Profiles/Xml/Samsung Smart TV.xml

@@ -1,128 +1,128 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Samsung Smart TV</Name>
-    <Identification>
-        <ModelUrl>samsung.com</ModelUrl>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="SEC_" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes>
-        <XmlAttribute name="xmlns:sec" value="http://www.sec.co.kr/" />
-    </XmlRootAttributes>
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="asf" audioCodec="mp3,ac3,wmav2,wmapro,wmavoice" videoCodec="h264,mpeg4,mjpeg" type="Video" />
-        <DirectPlayProfile container="avi" audioCodec="mp3,ac3,dca,dts" videoCodec="h264,mpeg4,mjpeg" type="Video" />
-        <DirectPlayProfile container="mkv" audioCodec="mp3,ac3,dca,aac,dts" videoCodec="h264,mpeg4,mjpeg4" type="Video" />
-        <DirectPlayProfile container="mp4,m4v" audioCodec="mp3,aac" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="3gp" audioCodec="aac,he-aac" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="mpg,mpeg" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
-        <DirectPlayProfile container="vro,vob" audioCodec="ac3,mp2,mp3" videoCodec="mpeg1video,mpeg2video" type="Video" />
-        <DirectPlayProfile container="ts" audioCodec="ac3,aac,mp3,eac3" videoCodec="mpeg2video,h264,vc1" type="Video" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmavoice" videoCodec="wmv2,wmv3" type="Video" />
-        <DirectPlayProfile container="mp3,flac" type="Audio" />
-        <DirectPlayProfile container="jpeg" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Photo">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video" codec="mpeg2video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="30720000" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video" codec="mpeg4">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="8192000" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video" codec="h264">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="37500000" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video" codec="wmv2,wmv3,vc1">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="25600000" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="wmav2,dca,aac,mp3,dts">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="avi" type="Video" mimeType="video/x-msvideo">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="mkv" type="Video" mimeType="video/x-mkv">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="flac" type="Audio" mimeType="audio/x-flac">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-        <SubtitleProfile format="srt" method="External" didlMode="CaptionInfoEx" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Samsung Smart TV</Name>
+  <Identification>
+    <ModelUrl>samsung.com</ModelUrl>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="SEC_" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes>
+    <XmlAttribute name="xmlns:sec" value="http://www.sec.co.kr/" />
+  </XmlRootAttributes>
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="asf" audioCodec="mp3,ac3,wmav2,wmapro,wmavoice" videoCodec="h264,mpeg4,mjpeg" type="Video" />
+    <DirectPlayProfile container="avi" audioCodec="mp3,ac3,dca,dts" videoCodec="h264,mpeg4,mjpeg" type="Video" />
+    <DirectPlayProfile container="mkv" audioCodec="mp3,ac3,dca,aac,dts" videoCodec="h264,mpeg4,mjpeg4" type="Video" />
+    <DirectPlayProfile container="mp4,m4v" audioCodec="mp3,aac" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="3gp" audioCodec="aac,he-aac" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="mpg,mpeg" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
+    <DirectPlayProfile container="vro,vob" audioCodec="ac3,mp2,mp3" videoCodec="mpeg1video,mpeg2video" type="Video" />
+    <DirectPlayProfile container="ts" audioCodec="ac3,aac,mp3,eac3" videoCodec="mpeg2video,h264,vc1" type="Video" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmavoice" videoCodec="wmv2,wmv3" type="Video" />
+    <DirectPlayProfile container="mp3,flac" type="Audio" />
+    <DirectPlayProfile container="jpeg" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Photo">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video" codec="mpeg2video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="30720000" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video" codec="mpeg4">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="8192000" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video" codec="h264">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="37500000" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video" codec="wmv2,wmv3,vc1">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="25600000" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="wmav2,dca,aac,mp3,dts">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="avi" type="Video" mimeType="video/x-msvideo">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="mkv" type="Video" mimeType="video/x-mkv">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="flac" type="Audio" mimeType="audio/x-flac">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="srt" method="External" didlMode="CaptionInfoEx" />
+  </SubtitleProfiles>
 </Profile>

+ 57 - 57
Emby.Dlna/Profiles/Xml/Sharp Smart TV.xml

@@ -1,60 +1,60 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Sharp Smart TV</Name>
-    <Identification>
-        <Manufacturer>Sharp</Manufacturer>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="Sharp" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>true</RequiresPlainVideoItems>
-    <RequiresPlainFolders>true</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="m4v,mkv,avi,mov,mp4" audioCodec="aac,mp3,ac3,dts,dca" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="asf,wmv" type="Video" />
-        <DirectPlayProfile container="mpg,mpeg" audioCodec="mp3,aac" videoCodec="mpeg2video" type="Video" />
-        <DirectPlayProfile container="flv" audioCodec="mp3,aac" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="mp3,wav" type="Audio" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3,dts,dca" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles />
-    <CodecProfiles />
-    <ResponseProfiles>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-        <SubtitleProfile format="srt" method="External" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Sharp Smart TV</Name>
+  <Identification>
+    <Manufacturer>Sharp</Manufacturer>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="Sharp" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>true</RequiresPlainVideoItems>
+  <RequiresPlainFolders>true</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="m4v,mkv,avi,mov,mp4" audioCodec="aac,mp3,ac3,dts,dca" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="asf,wmv" type="Video" />
+    <DirectPlayProfile container="mpg,mpeg" audioCodec="mp3,aac" videoCodec="mpeg2video" type="Video" />
+    <DirectPlayProfile container="flv" audioCodec="mp3,aac" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="mp3,wav" type="Audio" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3,dts,dca" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles />
+  <CodecProfiles />
+  <ResponseProfiles>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="srt" method="External" />
+  </SubtitleProfiles>
 </Profile>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 31
Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2013.xml


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 31
Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2014.xml


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 29
Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2015.xml


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 29
Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2016.xml


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 29
Emby.Dlna/Profiles/Xml/Sony Blu-ray Player.xml


+ 130 - 130
Emby.Dlna/Profiles/Xml/Sony Bravia (2010).xml

@@ -1,133 +1,133 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Sony Bravia (2010)</Name>
-    <Identification>
-        <FriendlyName>KDL-\d{2}[EHLNPB]X\d[01]\d.*</FriendlyName>
-        <Manufacturer>Sony</Manufacturer>
-        <Headers>
-            <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[EHLNPB]X\d[01]\d.*" match="Regex" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Microsoft Corporation</Manufacturer>
-    <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
-    <ModelName>Windows Media Player Sharing</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>3.0</ModelNumber>
-    <ModelUrl>http://www.microsoft.com/</ModelUrl>
-    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_TN</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <SonyAggregationFlags>10</SonyAggregationFlags>
-    <ProtocolInfo>http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=81500000000000000000000000000000,http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_OP=00;DLNA.ORG_FLAGS=00D00000000000000000000000000000,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL;DLNA.ORG_OP=11;DLNA.ORG_FLAGS=81500000000000000000000000000000</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes>
-        <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
-    </XmlRootAttributes>
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
-        <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
-        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Photo">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video" codec="h264">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video" codec="mpeg2video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="ac3">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="aac">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-                <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="mp3,mp2">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
-                <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
-            </Conditions>
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
-            </Conditions>
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Sony Bravia (2010)</Name>
+  <Identification>
+    <FriendlyName>KDL-\d{2}[EHLNPB]X\d[01]\d.*</FriendlyName>
+    <Manufacturer>Sony</Manufacturer>
+    <Headers>
+      <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[EHLNPB]X\d[01]\d.*" match="Regex" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Microsoft Corporation</Manufacturer>
+  <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
+  <ModelName>Windows Media Player Sharing</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>3.0</ModelNumber>
+  <ModelUrl>http://www.microsoft.com/</ModelUrl>
+  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_TN</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <SonyAggregationFlags>10</SonyAggregationFlags>
+  <ProtocolInfo>http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=81500000000000000000000000000000,http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_OP=00;DLNA.ORG_FLAGS=00D00000000000000000000000000000,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL;DLNA.ORG_OP=11;DLNA.ORG_FLAGS=81500000000000000000000000000000</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes>
+    <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
+  </XmlRootAttributes>
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
+    <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
+    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Photo">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video" codec="h264">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video" codec="mpeg2video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="ac3">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="aac">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+        <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="mp3,mp2">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
+        <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
+      </Conditions>
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
+      </Conditions>
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 136 - 136
Emby.Dlna/Profiles/Xml/Sony Bravia (2011).xml

@@ -1,139 +1,139 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Sony Bravia (2011)</Name>
-    <Identification>
-        <FriendlyName>KDL-\d{2}([A-Z]X\d2\d|CX400).*</FriendlyName>
-        <Manufacturer>Sony</Manufacturer>
-        <Headers>
-            <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}([A-Z]X\d2\d|CX400).*" match="Regex" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Microsoft Corporation</Manufacturer>
-    <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
-    <ModelName>Windows Media Player Sharing</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>3.0</ModelNumber>
-    <ModelUrl>http://www.microsoft.com/</ModelUrl>
-    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_TN</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <SonyAggregationFlags>10</SonyAggregationFlags>
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes>
-        <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
-    </XmlRootAttributes>
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="ts,mpegts" audioCodec="mp3" videoCodec="mpeg2video" type="Video" />
-        <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,aac,mp3" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="mpeg" audioCodec="mp3" videoCodec="mpeg2video,mpeg1video" type="Video" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
-        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Photo">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video" codec="h264">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video" codec="mpeg2video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="ac3">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="aac">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-                <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="mp3,mp2">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
-                <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
-            </Conditions>
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
-            </Conditions>
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Sony Bravia (2011)</Name>
+  <Identification>
+    <FriendlyName>KDL-\d{2}([A-Z]X\d2\d|CX400).*</FriendlyName>
+    <Manufacturer>Sony</Manufacturer>
+    <Headers>
+      <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}([A-Z]X\d2\d|CX400).*" match="Regex" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Microsoft Corporation</Manufacturer>
+  <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
+  <ModelName>Windows Media Player Sharing</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>3.0</ModelNumber>
+  <ModelUrl>http://www.microsoft.com/</ModelUrl>
+  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_TN</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <SonyAggregationFlags>10</SonyAggregationFlags>
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes>
+    <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
+  </XmlRootAttributes>
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="ts,mpegts" audioCodec="mp3" videoCodec="mpeg2video" type="Video" />
+    <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,aac,mp3" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="mpeg" audioCodec="mp3" videoCodec="mpeg2video,mpeg1video" type="Video" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
+    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Photo">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video" codec="h264">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video" codec="mpeg2video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="ac3">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="aac">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+        <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="mp3,mp2">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
+        <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
+      </Conditions>
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
+      </Conditions>
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 112 - 112
Emby.Dlna/Profiles/Xml/Sony Bravia (2012).xml

@@ -1,115 +1,115 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Sony Bravia (2012)</Name>
-    <Identification>
-        <FriendlyName>KDL-\d{2}[A-Z]X\d5(\d|G).*</FriendlyName>
-        <Manufacturer>Sony</Manufacturer>
-        <Headers>
-            <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[A-Z]X\d5(\d|G).*" match="Regex" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Microsoft Corporation</Manufacturer>
-    <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
-    <ModelName>Windows Media Player Sharing</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>3.0</ModelNumber>
-    <ModelUrl>http://www.microsoft.com/</ModelUrl>
-    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_TN</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <SonyAggregationFlags>10</SonyAggregationFlags>
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes>
-        <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
-    </XmlRootAttributes>
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
-        <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="avi" audioCodec="ac3,mp3" videoCodec="mpeg4" type="Video" />
-        <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
-        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-        <DirectPlayProfile container="jpeg" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Photo">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="ac3">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="mp3,mp2">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
-                <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
-            </Conditions>
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
-            </Conditions>
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Sony Bravia (2012)</Name>
+  <Identification>
+    <FriendlyName>KDL-\d{2}[A-Z]X\d5(\d|G).*</FriendlyName>
+    <Manufacturer>Sony</Manufacturer>
+    <Headers>
+      <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[A-Z]X\d5(\d|G).*" match="Regex" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Microsoft Corporation</Manufacturer>
+  <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
+  <ModelName>Windows Media Player Sharing</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>3.0</ModelNumber>
+  <ModelUrl>http://www.microsoft.com/</ModelUrl>
+  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_TN</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <SonyAggregationFlags>10</SonyAggregationFlags>
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes>
+    <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
+  </XmlRootAttributes>
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
+    <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="avi" audioCodec="ac3,mp3" videoCodec="mpeg4" type="Video" />
+    <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
+    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+    <DirectPlayProfile container="jpeg" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Photo">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="ac3">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="mp3,mp2">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
+        <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
+      </Conditions>
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
+      </Conditions>
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 111 - 111
Emby.Dlna/Profiles/Xml/Sony Bravia (2013).xml

@@ -1,114 +1,114 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Sony Bravia (2013)</Name>
-    <Identification>
-        <FriendlyName>KDL-\d{2}[WR][5689]\d{2}A.*</FriendlyName>
-        <Manufacturer>Sony</Manufacturer>
-        <Headers>
-            <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[WR][5689]\d{2}A.*" match="Regex" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Microsoft Corporation</Manufacturer>
-    <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
-    <ModelName>Windows Media Player Sharing</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>3.0</ModelNumber>
-    <ModelUrl>http://www.microsoft.com/</ModelUrl>
-    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_TN</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <SonyAggregationFlags>10</SonyAggregationFlags>
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes>
-        <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
-    </XmlRootAttributes>
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,eac3,aac,mp3" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
-        <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="mov" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4,mjpeg" type="Video" />
-        <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,aac,mp3,mp2,pcm,vorbis" videoCodec="h264,mpeg4,vp8" type="Video" />
-        <DirectPlayProfile container="avi" audioCodec="ac3,eac3,mp3" videoCodec="mpeg4" type="Video" />
-        <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mjpeg" type="Video" />
-        <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
-        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-        <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
-        <DirectPlayProfile container="wav" audioCodec="pcm" type="Audio" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-        <DirectPlayProfile container="jpeg" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Photo">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="mp3,mp2">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
-                <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
-            </Conditions>
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
-            </Conditions>
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Sony Bravia (2013)</Name>
+  <Identification>
+    <FriendlyName>KDL-\d{2}[WR][5689]\d{2}A.*</FriendlyName>
+    <Manufacturer>Sony</Manufacturer>
+    <Headers>
+      <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[WR][5689]\d{2}A.*" match="Regex" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Microsoft Corporation</Manufacturer>
+  <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
+  <ModelName>Windows Media Player Sharing</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>3.0</ModelNumber>
+  <ModelUrl>http://www.microsoft.com/</ModelUrl>
+  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_TN</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <SonyAggregationFlags>10</SonyAggregationFlags>
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes>
+    <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
+  </XmlRootAttributes>
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,eac3,aac,mp3" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
+    <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="mov" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4,mjpeg" type="Video" />
+    <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,aac,mp3,mp2,pcm,vorbis" videoCodec="h264,mpeg4,vp8" type="Video" />
+    <DirectPlayProfile container="avi" audioCodec="ac3,eac3,mp3" videoCodec="mpeg4" type="Video" />
+    <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mjpeg" type="Video" />
+    <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
+    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+    <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
+    <DirectPlayProfile container="wav" audioCodec="pcm" type="Audio" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+    <DirectPlayProfile container="jpeg" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Photo">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="mp3,mp2">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
+        <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
+      </Conditions>
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
+      </Conditions>
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 111 - 111
Emby.Dlna/Profiles/Xml/Sony Bravia (2014).xml

@@ -1,114 +1,114 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Sony Bravia (2014)</Name>
-    <Identification>
-        <FriendlyName>(KDL-\d{2}W[5-9]\d{2}B|KDL-\d{2}R480|XBR-\d{2}X[89]\d{2}B|KD-\d{2}[SX][89]\d{3}B).*</FriendlyName>
-        <Manufacturer>Sony</Manufacturer>
-        <Headers>
-            <HttpHeaderInfo name="X-AV-Client-Info" value=".*(KDL-\d{2}W[5-9]\d{2}B|KDL-\d{2}R480|XBR-\d{2}X[89]\d{2}B|KD-\d{2}[SX][89]\d{3}B).*" match="Regex" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Microsoft Corporation</Manufacturer>
-    <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
-    <ModelName>Windows Media Player Sharing</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>3.0</ModelNumber>
-    <ModelUrl>http://www.microsoft.com/</ModelUrl>
-    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_TN</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <SonyAggregationFlags>10</SonyAggregationFlags>
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes>
-        <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
-    </XmlRootAttributes>
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,eac3,aac,mp3" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
-        <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="mov" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4,mjpeg" type="Video" />
-        <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,aac,mp3,mp2,pcm,vorbis" videoCodec="h264,mpeg4,vp8" type="Video" />
-        <DirectPlayProfile container="avi" audioCodec="ac3,eac3,mp3" videoCodec="mpeg4" type="Video" />
-        <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mjpeg" type="Video" />
-        <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
-        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-        <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
-        <DirectPlayProfile container="wav" audioCodec="pcm" type="Audio" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-        <DirectPlayProfile container="jpeg" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Photo">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="mp3,mp2">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
-                <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
-            </Conditions>
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
-            </Conditions>
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Sony Bravia (2014)</Name>
+  <Identification>
+    <FriendlyName>(KDL-\d{2}W[5-9]\d{2}B|KDL-\d{2}R480|XBR-\d{2}X[89]\d{2}B|KD-\d{2}[SX][89]\d{3}B).*</FriendlyName>
+    <Manufacturer>Sony</Manufacturer>
+    <Headers>
+      <HttpHeaderInfo name="X-AV-Client-Info" value=".*(KDL-\d{2}W[5-9]\d{2}B|KDL-\d{2}R480|XBR-\d{2}X[89]\d{2}B|KD-\d{2}[SX][89]\d{3}B).*" match="Regex" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Microsoft Corporation</Manufacturer>
+  <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
+  <ModelName>Windows Media Player Sharing</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>3.0</ModelNumber>
+  <ModelUrl>http://www.microsoft.com/</ModelUrl>
+  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_TN</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <SonyAggregationFlags>10</SonyAggregationFlags>
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes>
+    <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
+  </XmlRootAttributes>
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,eac3,aac,mp3" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
+    <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="mov" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4,mjpeg" type="Video" />
+    <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,aac,mp3,mp2,pcm,vorbis" videoCodec="h264,mpeg4,vp8" type="Video" />
+    <DirectPlayProfile container="avi" audioCodec="ac3,eac3,mp3" videoCodec="mpeg4" type="Video" />
+    <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mjpeg" type="Video" />
+    <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
+    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+    <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
+    <DirectPlayProfile container="wav" audioCodec="pcm" type="Audio" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+    <DirectPlayProfile container="jpeg" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Photo">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="mp3,mp2">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
+        <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
+      </Conditions>
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
+      </Conditions>
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 102 - 102
Emby.Dlna/Profiles/Xml/Sony PlayStation 3.xml

@@ -1,105 +1,105 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Sony PlayStation 3</Name>
-    <Identification>
-        <FriendlyName>PLAYSTATION 3</FriendlyName>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="PLAYSTATION 3" match="Substring" />
-            <HttpHeaderInfo name="X-AV-Client-Info" value="PLAYSTATION 3" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_TN</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <SonyAggregationFlags>10</SonyAggregationFlags>
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="avi" audioCodec="mp2,mp3" videoCodec="mpeg4" type="Video" />
-        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
-        <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
-        <DirectPlayProfile container="mp4" audioCodec="aac,ac3" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="aac,mp3,wav" type="Audio" />
-        <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Photo">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video" codec="h264">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="ac3">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="640000" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="wmapro">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="aac">
-            <Conditions>
-                <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="mp4,mov" audioCodec="aac" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="avi" type="Video" orgPn="AVI" mimeType="video/divx">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="wav" type="Audio" mimeType="audio/wav">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Sony PlayStation 3</Name>
+  <Identification>
+    <FriendlyName>PLAYSTATION 3</FriendlyName>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="PLAYSTATION 3" match="Substring" />
+      <HttpHeaderInfo name="X-AV-Client-Info" value="PLAYSTATION 3" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_TN</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <SonyAggregationFlags>10</SonyAggregationFlags>
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="avi" audioCodec="mp2,mp3" videoCodec="mpeg4" type="Video" />
+    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
+    <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
+    <DirectPlayProfile container="mp4" audioCodec="aac,ac3" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="aac,mp3,wav" type="Audio" />
+    <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Photo">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video" codec="h264">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="ac3">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="640000" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="wmapro">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="aac">
+      <Conditions>
+        <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="mp4,mov" audioCodec="aac" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="avi" type="Video" orgPn="AVI" mimeType="video/divx">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="wav" type="Audio" mimeType="audio/wav">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 105 - 105
Emby.Dlna/Profiles/Xml/Sony PlayStation 4.xml

@@ -1,108 +1,108 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Sony PlayStation 4</Name>
-    <Identification>
-        <FriendlyName>PLAYSTATION 4</FriendlyName>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="PLAYSTATION 4" match="Substring" />
-            <HttpHeaderInfo name="X-AV-Client-Info" value="PLAYSTATION 4" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_TN</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <SonyAggregationFlags>10</SonyAggregationFlags>
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="avi" audioCodec="mp2,mp3" videoCodec="mpeg4" type="Video" />
-        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
-        <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
-        <DirectPlayProfile container="mp4,mkv,m4v" audioCodec="aac,ac3" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="aac,mp3,wav" type="Audio" />
-        <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Bytes" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Photo">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video" codec="h264">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="ac3">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="640000" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="wmapro">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="aac">
-            <Conditions>
-                <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="mp4,mov" audioCodec="aac" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="avi" type="Video" orgPn="AVI" mimeType="video/divx">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="wav" type="Audio" mimeType="audio/wav">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Sony PlayStation 4</Name>
+  <Identification>
+    <FriendlyName>PLAYSTATION 4</FriendlyName>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="PLAYSTATION 4" match="Substring" />
+      <HttpHeaderInfo name="X-AV-Client-Info" value="PLAYSTATION 4" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_TN</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <SonyAggregationFlags>10</SonyAggregationFlags>
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="avi" audioCodec="mp2,mp3" videoCodec="mpeg4" type="Video" />
+    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
+    <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
+    <DirectPlayProfile container="mp4,mkv,m4v" audioCodec="aac,ac3" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="aac,mp3,wav" type="Audio" />
+    <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Bytes" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Photo">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video" codec="h264">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="ac3">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="640000" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="wmapro">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="aac">
+      <Conditions>
+        <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="mp4,mov" audioCodec="aac" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="avi" type="Video" orgPn="AVI" mimeType="video/divx">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="wav" type="Audio" mimeType="audio/wav">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 91 - 91
Emby.Dlna/Profiles/Xml/WDTV Live.xml

@@ -1,94 +1,94 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>WDTV Live</Name>
-    <Identification>
-        <ModelName>WD TV</ModelName>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="alphanetworks" match="Substring" />
-            <HttpHeaderInfo name="User-Agent" value="ALPHA Networks" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>5</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>true</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="avi" audioCodec="ac3,eac3,dca,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video,mpeg4,h264,vc1" type="Video" />
-        <DirectPlayProfile container="mpeg" audioCodec="ac3,eac3,dca,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video" type="Video" />
-        <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,dca,aac,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video,mpeg4,h264,vc1" type="Video" />
-        <DirectPlayProfile container="ts,m2ts,mpegts" audioCodec="ac3,eac3,dca,mp2,mp3,aac,dts" videoCodec="mpeg1video,mpeg2video,h264,vc1" type="Video" />
-        <DirectPlayProfile container="mp4,mov,m4v" audioCodec="ac3,eac3,aac,mp2,mp3,dca,dts" videoCodec="h264,mpeg4" type="Video" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro" videoCodec="vc1" type="Video" />
-        <DirectPlayProfile container="asf" audioCodec="mp2,ac3" videoCodec="mpeg2video" type="Video" />
-        <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />
-        <DirectPlayProfile container="mp4" audioCodec="mp4" type="Audio" />
-        <DirectPlayProfile container="flac" type="Audio" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-        <DirectPlayProfile container="ogg" audioCodec="vorbis" type="Audio" />
-        <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Photo">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video" codec="h264">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="aac">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="ts,mpegts" type="Video" orgPn="MPEG_TS_SD_NA">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="External" />
-        <SubtitleProfile format="srt" method="Embed" />
-        <SubtitleProfile format="sub" method="Embed" />
-        <SubtitleProfile format="subrip" method="Embed" />
-        <SubtitleProfile format="idx" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>WDTV Live</Name>
+  <Identification>
+    <ModelName>WD TV</ModelName>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="alphanetworks" match="Substring" />
+      <HttpHeaderInfo name="User-Agent" value="ALPHA Networks" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>5</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>true</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="avi" audioCodec="ac3,eac3,dca,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video,mpeg4,h264,vc1" type="Video" />
+    <DirectPlayProfile container="mpeg" audioCodec="ac3,eac3,dca,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video" type="Video" />
+    <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,dca,aac,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video,mpeg4,h264,vc1" type="Video" />
+    <DirectPlayProfile container="ts,m2ts,mpegts" audioCodec="ac3,eac3,dca,mp2,mp3,aac,dts" videoCodec="mpeg1video,mpeg2video,h264,vc1" type="Video" />
+    <DirectPlayProfile container="mp4,mov,m4v" audioCodec="ac3,eac3,aac,mp2,mp3,dca,dts" videoCodec="h264,mpeg4" type="Video" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro" videoCodec="vc1" type="Video" />
+    <DirectPlayProfile container="asf" audioCodec="mp2,ac3" videoCodec="mpeg2video" type="Video" />
+    <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />
+    <DirectPlayProfile container="mp4" audioCodec="mp4" type="Audio" />
+    <DirectPlayProfile container="flac" type="Audio" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+    <DirectPlayProfile container="ogg" audioCodec="vorbis" type="Audio" />
+    <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Photo">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video" codec="h264">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="aac">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="ts,mpegts" type="Video" orgPn="MPEG_TS_SD_NA">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="External" />
+    <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="sub" method="Embed" />
+    <SubtitleProfile format="subrip" method="Embed" />
+    <SubtitleProfile format="idx" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 123 - 123
Emby.Dlna/Profiles/Xml/Xbox One.xml

@@ -1,126 +1,126 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>Xbox One</Name>
-    <Identification>
-        <ModelName>Xbox One</ModelName>
-        <Headers>
-            <HttpHeaderInfo name="FriendlyName.DLNA.ORG" value="XboxOne" match="Substring" />
-            <HttpHeaderInfo name="User-Agent" value="NSPlayer/12" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>40</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264,mpeg2video,hevc" type="Video" />
-        <DirectPlayProfile container="avi" audioCodec="ac3,mp3" videoCodec="mpeg4" type="Video" />
-        <DirectPlayProfile container="avi" audioCodec="aac" videoCodec="h264" type="Video" />
-        <DirectPlayProfile container="mp4,mov,mkv,m4v" audioCodec="aac,ac3" videoCodec="h264,mpeg4,mpeg2video,hevc" type="Video" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro" videoCodec="wmv2,wmv3,vc1" type="Video" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-        <DirectPlayProfile container="jpeg" type="Photo" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" videoCodec="jpeg" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles>
-        <ContainerProfile type="Video" container="mp4,mov">
-            <Conditions>
-                <ProfileCondition condition="Equals" property="Has64BitOffsets" value="false" isRequired="false" />
-            </Conditions>
-        </ContainerProfile>
-    </ContainerProfiles>
-    <CodecProfiles>
-        <CodecProfile type="Video" codec="mpeg4">
-            <Conditions>
-                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="5120000" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video" codec="h264">
-            <Conditions>
-                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
-                <ProfileCondition condition="EqualsAny" property="VideoProfile" value="high|main|baseline|constrained baseline" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video" codec="wmv2,wmv3,vc1">
-            <Conditions>
-                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="Video">
-            <Conditions>
-                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-                <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="ac3,wmav2,wmapro">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-        <CodecProfile type="VideoAudio" codec="aac">
-            <Conditions>
-                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
-                <ProfileCondition condition="Equals" property="AudioProfile" value="lc" isRequired="false" />
-            </Conditions>
-            <ApplyConditions />
-        </CodecProfile>
-    </CodecProfiles>
-    <ResponseProfiles>
-        <ResponseProfile container="avi" type="Video" mimeType="video/avi">
-            <Conditions />
-        </ResponseProfile>
-        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-            <Conditions />
-        </ResponseProfile>
-    </ResponseProfiles>
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>Xbox One</Name>
+  <Identification>
+    <ModelName>Xbox One</ModelName>
+    <Headers>
+      <HttpHeaderInfo name="FriendlyName.DLNA.ORG" value="XboxOne" match="Substring" />
+      <HttpHeaderInfo name="User-Agent" value="NSPlayer/12" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>40</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264,mpeg2video,hevc" type="Video" />
+    <DirectPlayProfile container="avi" audioCodec="ac3,mp3" videoCodec="mpeg4" type="Video" />
+    <DirectPlayProfile container="avi" audioCodec="aac" videoCodec="h264" type="Video" />
+    <DirectPlayProfile container="mp4,mov,mkv,m4v" audioCodec="aac,ac3" videoCodec="h264,mpeg4,mpeg2video,hevc" type="Video" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro" videoCodec="wmv2,wmv3,vc1" type="Video" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+    <DirectPlayProfile container="jpeg" type="Photo" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" videoCodec="jpeg" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles>
+    <ContainerProfile type="Video" container="mp4,mov">
+      <Conditions>
+        <ProfileCondition condition="Equals" property="Has64BitOffsets" value="false" isRequired="false" />
+      </Conditions>
+    </ContainerProfile>
+  </ContainerProfiles>
+  <CodecProfiles>
+    <CodecProfile type="Video" codec="mpeg4">
+      <Conditions>
+        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="5120000" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video" codec="h264">
+      <Conditions>
+        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
+        <ProfileCondition condition="EqualsAny" property="VideoProfile" value="high|main|baseline|constrained baseline" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video" codec="wmv2,wmv3,vc1">
+      <Conditions>
+        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="Video">
+      <Conditions>
+        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+        <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="ac3,wmav2,wmapro">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+    <CodecProfile type="VideoAudio" codec="aac">
+      <Conditions>
+        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
+        <ProfileCondition condition="Equals" property="AudioProfile" value="lc" isRequired="false" />
+      </Conditions>
+      <ApplyConditions />
+    </CodecProfile>
+  </CodecProfiles>
+  <ResponseProfiles>
+    <ResponseProfile container="avi" type="Video" mimeType="video/avi">
+      <Conditions />
+    </ResponseProfile>
+    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+      <Conditions />
+    </ResponseProfile>
+  </ResponseProfiles>
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 64 - 64
Emby.Dlna/Profiles/Xml/foobar2000.xml

@@ -1,67 +1,67 @@
 <?xml version="1.0"?>
 <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <Name>foobar2000</Name>
-    <Identification>
-        <FriendlyName>foobar</FriendlyName>
-        <Headers>
-            <HttpHeaderInfo name="User-Agent" value="foobar" match="Substring" />
-        </Headers>
-    </Identification>
-    <Manufacturer>Jellyfin</Manufacturer>
-    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-    <ModelName>Jellyfin Server</ModelName>
-    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-    <ModelNumber>01</ModelNumber>
-    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-    <SupportedMediaTypes>Audio</SupportedMediaTypes>
-    <AlbumArtPn>JPEG_SM</AlbumArtPn>
-    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-    <MaxIconWidth>48</MaxIconWidth>
-    <MaxIconHeight>48</MaxIconHeight>
-    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-    <MaxStaticBitrate>140000000</MaxStaticBitrate>
-    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-    <MaxStaticMusicBitrate xsi:nil="true" />
-    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-    <RequiresPlainFolders>false</RequiresPlainFolders>
-    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-    <XmlRootAttributes />
-    <DirectPlayProfiles>
-        <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />
-        <DirectPlayProfile container="mp4" audioCodec="mp4" type="Audio" />
-        <DirectPlayProfile container="aac,wav" type="Audio" />
-        <DirectPlayProfile container="flac" audioCodec="flac" type="Audio" />
-        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-        <DirectPlayProfile container="ogg" audioCodec="vorbis" type="Audio" />
-    </DirectPlayProfiles>
-    <TranscodingProfiles>
-        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    </TranscodingProfiles>
-    <ContainerProfiles />
-    <CodecProfiles />
-    <ResponseProfiles />
-    <SubtitleProfiles>
-        <SubtitleProfile format="srt" method="External" />
-        <SubtitleProfile format="sub" method="External" />
-        <SubtitleProfile format="srt" method="Embed" />
-        <SubtitleProfile format="ass" method="Embed" />
-        <SubtitleProfile format="ssa" method="Embed" />
-        <SubtitleProfile format="smi" method="Embed" />
-        <SubtitleProfile format="dvdsub" method="Embed" />
-        <SubtitleProfile format="pgs" method="Embed" />
-        <SubtitleProfile format="pgssub" method="Embed" />
-        <SubtitleProfile format="sub" method="Embed" />
-        <SubtitleProfile format="subrip" method="Embed" />
-        <SubtitleProfile format="vtt" method="Embed" />
-    </SubtitleProfiles>
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Name>foobar2000</Name>
+  <Identification>
+    <FriendlyName>foobar</FriendlyName>
+    <Headers>
+      <HttpHeaderInfo name="User-Agent" value="foobar" match="Substring" />
+    </Headers>
+  </Identification>
+  <Manufacturer>Jellyfin</Manufacturer>
+  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+  <ModelName>Jellyfin Server</ModelName>
+  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+  <ModelNumber>01</ModelNumber>
+  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+  <SupportedMediaTypes>Audio</SupportedMediaTypes>
+  <AlbumArtPn>JPEG_SM</AlbumArtPn>
+  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+  <MaxIconWidth>48</MaxIconWidth>
+  <MaxIconHeight>48</MaxIconHeight>
+  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+  <MaxStaticBitrate>140000000</MaxStaticBitrate>
+  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+  <MaxStaticMusicBitrate xsi:nil="true" />
+  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+  <RequiresPlainFolders>false</RequiresPlainFolders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+  <XmlRootAttributes />
+  <DirectPlayProfiles>
+    <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />
+    <DirectPlayProfile container="mp4" audioCodec="mp4" type="Audio" />
+    <DirectPlayProfile container="aac,wav" type="Audio" />
+    <DirectPlayProfile container="flac" audioCodec="flac" type="Audio" />
+    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+    <DirectPlayProfile container="ogg" audioCodec="vorbis" type="Audio" />
+  </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+  </TranscodingProfiles>
+  <ContainerProfiles />
+  <CodecProfiles />
+  <ResponseProfiles />
+  <SubtitleProfiles>
+    <SubtitleProfile format="srt" method="External" />
+    <SubtitleProfile format="sub" method="External" />
+    <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="ass" method="Embed" />
+    <SubtitleProfile format="ssa" method="Embed" />
+    <SubtitleProfile format="smi" method="Embed" />
+    <SubtitleProfile format="dvdsub" method="Embed" />
+    <SubtitleProfile format="pgs" method="Embed" />
+    <SubtitleProfile format="pgssub" method="Embed" />
+    <SubtitleProfile format="sub" method="Embed" />
+    <SubtitleProfile format="subrip" method="Embed" />
+    <SubtitleProfile format="vtt" method="Embed" />
+  </SubtitleProfiles>
 </Profile>

+ 16 - 16
Emby.Drawing.Skia/Emby.Drawing.Skia.csproj

@@ -1,23 +1,23 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
-    <ItemGroup>
-        <PackageReference Include="SkiaSharp" Version="1.68.0" />
-        <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="1.68.0" />
-    </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="SkiaSharp" Version="1.68.0" />
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="1.68.0" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
 </Project>

+ 11 - 11
Emby.Drawing/Emby.Drawing.csproj

@@ -1,17 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 11 - 11
Emby.IsoMounting/IsoMounter/IsoMounter.csproj

@@ -1,17 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <Compile Include="..\..\SharedVersion.cs" Link="SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <ProjectReference Include="..\..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 10 - 10
Emby.Naming/Emby.Naming.csproj

@@ -1,17 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+  </ItemGroup>
 
   <PropertyGroup>
     <Authors>Jellyfin Contributors</Authors>

+ 12 - 12
Emby.Notifications/Emby.Notifications.csproj

@@ -1,18 +1,18 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+  </ItemGroup>
 
 </Project>

+ 12 - 12
Emby.Photos/Emby.Photos.csproj

@@ -1,18 +1,18 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\ThirdParty\taglib-sharp\src\taglib-sharp.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\ThirdParty\taglib-sharp\src\taglib-sharp.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 42 - 42
Emby.Server.Implementations/Emby.Server.Implementations.csproj

@@ -1,50 +1,50 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <ProjectReference Include="..\Emby.Naming\Emby.Naming.csproj" />
-        <ProjectReference Include="..\Emby.Notifications\Emby.Notifications.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Providers\MediaBrowser.Providers.csproj" />
-        <ProjectReference Include="..\MediaBrowser.WebDashboard\MediaBrowser.WebDashboard.csproj" />
-        <ProjectReference Include="..\MediaBrowser.XbmcMetadata\MediaBrowser.XbmcMetadata.csproj" />
-        <ProjectReference Include="..\SocketHttpListener\SocketHttpListener.csproj" />
-        <ProjectReference Include="..\Emby.Dlna\Emby.Dlna.csproj" />
-        <ProjectReference Include="..\Mono.Nat\Mono.Nat.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Api\MediaBrowser.Api.csproj" />
-        <ProjectReference Include="..\MediaBrowser.LocalMetadata\MediaBrowser.LocalMetadata.csproj" />
-        <ProjectReference Include="..\OpenSubtitlesHandler\OpenSubtitlesHandler.csproj" />
-        <ProjectReference Include="..\Emby.Photos\Emby.Photos.csproj" />
-        <ProjectReference Include="..\Emby.Drawing\Emby.Drawing.csproj" />
-        <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv\Emby.XmlTv.csproj" />
-        <ProjectReference Include="..\MediaBrowser.MediaEncoding\MediaBrowser.MediaEncoding.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Emby.Naming\Emby.Naming.csproj" />
+    <ProjectReference Include="..\Emby.Notifications\Emby.Notifications.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Providers\MediaBrowser.Providers.csproj" />
+    <ProjectReference Include="..\MediaBrowser.WebDashboard\MediaBrowser.WebDashboard.csproj" />
+    <ProjectReference Include="..\MediaBrowser.XbmcMetadata\MediaBrowser.XbmcMetadata.csproj" />
+    <ProjectReference Include="..\SocketHttpListener\SocketHttpListener.csproj" />
+    <ProjectReference Include="..\Emby.Dlna\Emby.Dlna.csproj" />
+    <ProjectReference Include="..\Mono.Nat\Mono.Nat.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Api\MediaBrowser.Api.csproj" />
+    <ProjectReference Include="..\MediaBrowser.LocalMetadata\MediaBrowser.LocalMetadata.csproj" />
+    <ProjectReference Include="..\OpenSubtitlesHandler\OpenSubtitlesHandler.csproj" />
+    <ProjectReference Include="..\Emby.Photos\Emby.Photos.csproj" />
+    <ProjectReference Include="..\Emby.Drawing\Emby.Drawing.csproj" />
+    <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv\Emby.XmlTv.csproj" />
+    <ProjectReference Include="..\MediaBrowser.MediaEncoding\MediaBrowser.MediaEncoding.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <PackageReference Include="ServiceStack.Text.Core" Version="5.4.0" />
-        <PackageReference Include="sharpcompress" Version="0.22.0" />
-        <PackageReference Include="SimpleInjector" Version="4.4.2" />
-        <PackageReference Include="SQLitePCL.pretty.core" Version="1.1.8" />
-        <PackageReference Include="SQLitePCLRaw.core" Version="1.1.11" />
-    </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="ServiceStack.Text.Core" Version="5.4.0" />
+    <PackageReference Include="sharpcompress" Version="0.22.0" />
+    <PackageReference Include="SimpleInjector" Version="4.4.2" />
+    <PackageReference Include="SQLitePCL.pretty.core" Version="1.1.8" />
+    <PackageReference Include="SQLitePCLRaw.core" Version="1.1.11" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
-    <ItemGroup>
-        <EmbeddedResource Include="Localization\iso6392.txt" />
-        <EmbeddedResource Include="Localization\countries.json" />
-        <EmbeddedResource Include="Localization\Core\*.json" />
-        <EmbeddedResource Include="TextEncoding\NLangDetect\Profiles\*" />
-        <EmbeddedResource Include="TextEncoding\NLangDetect\Utils\messages.properties" />
-        <EmbeddedResource Include="Localization\Ratings\*.txt" />
-    </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Localization\iso6392.txt" />
+    <EmbeddedResource Include="Localization\countries.json" />
+    <EmbeddedResource Include="Localization\Core\*.json" />
+    <EmbeddedResource Include="TextEncoding\NLangDetect\Profiles\*" />
+    <EmbeddedResource Include="TextEncoding\NLangDetect\Utils\messages.properties" />
+    <EmbeddedResource Include="Localization\Ratings\*.txt" />
+  </ItemGroup>
 
 </Project>

+ 19 - 19
Emby.XmlTv/Emby.XmlTv.Console/Emby.XmlTv.Console.csproj

@@ -1,22 +1,22 @@
 <Project Sdk="Microsoft.NET.Sdk">
-    <ItemGroup>
-        <Reference Include="System" />
-        <Reference Include="System.Core" />
-        <Reference Include="System.Xml.Linq" />
-        <Reference Include="Microsoft.CSharp" />
-        <Reference Include="System.Data" />
-        <Reference Include="System.Net.Http" />
-        <Reference Include="System.Xml" />
-    </ItemGroup>
-    <ItemGroup>
-        <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv.csproj">
-            <Project>{0d023565-5942-4d79-9098-a1b4b6665a40}</Project>
-            <Name>Emby.XmlTv</Name>
-        </ProjectReference>
-    </ItemGroup>
-    <PropertyGroup>
-        <TargetFramework>netcoreapp2.1</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv.csproj">
+      <Project>{0d023565-5942-4d79-9098-a1b4b6665a40}</Project>
+      <Name>Emby.XmlTv</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <PropertyGroup>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 113 - 113
Emby.XmlTv/Emby.XmlTv.Test/Emby.XmlTv.Test.csproj

@@ -1,124 +1,124 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="14.0" DefaultTargets="Build"
-    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{C8298223-2468-466C-9B06-FBF61926CECB}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Emby.XmlTv.Test</RootNamespace>
+    <AssemblyName>Emby.XmlTv.Test</AssemblyName>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
+    <IsCodedUITest>False</IsCodedUITest>
+    <TestProjectType>UnitTest</TestProjectType>
+    <TargetFrameworkProfile />
+    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
+    <RestorePackages>true</RestorePackages>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <Choose>
+    <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
+      <ItemGroup>
+        <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
+      </ItemGroup>
+    </When>
+    <Otherwise>
+      <ItemGroup>
+        <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework">
+          <Private>False</Private>
+        </Reference>
+      </ItemGroup>
+    </Otherwise>
+  </Choose>
+  <ItemGroup>
+    <Compile Include="XmlTvReaderDateTimeTests.cs" />
+    <Compile Include="XmlTvReaderLanguageTests.cs" />
+    <Compile Include="XmlTvReaderTests.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Xml Files\epg.xml" />
+    <Content Include="Xml Files\ES_MultiLanguageData.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Xml Files\honeybee.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Xml Files\MultilanguageData.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Xml Files\UK_Data.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <SubType>Designer</SubType>
+    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv.csproj">
+      <Project>{0D023565-5942-4D79-9098-A1B4B6665A40}</Project>
+      <Name>Emby.XmlTv</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Choose>
+    <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
+      <ItemGroup>
+        <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+          <Private>False</Private>
+        </Reference>
+        <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+          <Private>False</Private>
+        </Reference>
+        <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+          <Private>False</Private>
+        </Reference>
+        <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+          <Private>False</Private>
+        </Reference>
+      </ItemGroup>
+    </When>
+  </Choose>
+  <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
     <PropertyGroup>
-        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-        <ProjectGuid>{C8298223-2468-466C-9B06-FBF61926CECB}</ProjectGuid>
-        <OutputType>Library</OutputType>
-        <AppDesignerFolder>Properties</AppDesignerFolder>
-        <RootNamespace>Emby.XmlTv.Test</RootNamespace>
-        <AssemblyName>Emby.XmlTv.Test</AssemblyName>
-        <FileAlignment>512</FileAlignment>
-        <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-        <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
-        <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-        <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
-        <IsCodedUITest>False</IsCodedUITest>
-        <TestProjectType>UnitTest</TestProjectType>
-        <TargetFrameworkProfile />
-        <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
-        <RestorePackages>true</RestorePackages>
+      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
     </PropertyGroup>
-    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-        <DebugSymbols>true</DebugSymbols>
-        <DebugType>full</DebugType>
-        <Optimize>false</Optimize>
-        <OutputPath>bin\Debug\</OutputPath>
-        <DefineConstants>DEBUG;TRACE</DefineConstants>
-        <ErrorReport>prompt</ErrorReport>
-        <WarningLevel>4</WarningLevel>
-    </PropertyGroup>
-    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-        <DebugType>pdbonly</DebugType>
-        <Optimize>true</Optimize>
-        <OutputPath>bin\Release\</OutputPath>
-        <DefineConstants>TRACE</DefineConstants>
-        <ErrorReport>prompt</ErrorReport>
-        <WarningLevel>4</WarningLevel>
-    </PropertyGroup>
-    <ItemGroup>
-        <Reference Include="System" />
-        <Reference Include="System.Xml" />
-    </ItemGroup>
-    <Choose>
-        <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
-            <ItemGroup>
-                <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
-            </ItemGroup>
-        </When>
-        <Otherwise>
-            <ItemGroup>
-                <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework">
-                    <Private>False</Private>
-                </Reference>
-            </ItemGroup>
-        </Otherwise>
-    </Choose>
-    <ItemGroup>
-        <Compile Include="XmlTvReaderDateTimeTests.cs" />
-        <Compile Include="XmlTvReaderLanguageTests.cs" />
-        <Compile Include="XmlTvReaderTests.cs" />
-        <Compile Include="Properties\AssemblyInfo.cs" />
-    </ItemGroup>
-    <ItemGroup>
-        <Content Include="Xml Files\epg.xml" />
-        <Content Include="Xml Files\ES_MultiLanguageData.xml">
-            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-        </Content>
-        <Content Include="Xml Files\honeybee.xml">
-            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-        </Content>
-        <Content Include="Xml Files\MultilanguageData.xml">
-            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-        </Content>
-        <Content Include="Xml Files\UK_Data.xml">
-            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-            <SubType>Designer</SubType>
-        </Content>
-    </ItemGroup>
-    <ItemGroup>
-        <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv.csproj">
-            <Project>{0D023565-5942-4D79-9098-A1B4B6665A40}</Project>
-            <Name>Emby.XmlTv</Name>
-        </ProjectReference>
-    </ItemGroup>
-    <Choose>
-        <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
-            <ItemGroup>
-                <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-                    <Private>False</Private>
-                </Reference>
-                <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-                    <Private>False</Private>
-                </Reference>
-                <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-                    <Private>False</Private>
-                </Reference>
-                <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-                    <Private>False</Private>
-                </Reference>
-            </ItemGroup>
-        </When>
-    </Choose>
-    <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
-    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-    <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-    <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-        <PropertyGroup>
-            <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-        </PropertyGroup>
-        <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-    </Target>
-    <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
+  </Target>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
        Other similar extension points exist, see Microsoft.Common.targets.
   <Target Name="BeforeBuild">
   </Target>
   <Target Name="AfterBuild">
   </Target>
   -->
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 </Project>

+ 7 - 7
Emby.XmlTv/Emby.XmlTv/Emby.XmlTv.csproj

@@ -1,12 +1,12 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
-    <ItemGroup>
-        <Compile Include="..\..\SharedVersion.cs" Link="SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
 
 </Project>

+ 25 - 25
Jellyfin.Server/Jellyfin.Server.csproj

@@ -1,24 +1,24 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <PropertyGroup>
-        <AssemblyName>jellyfin</AssemblyName>
-        <OutputType>Exe</OutputType>
-        <TargetFramework>netcoreapp2.1</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
-
-    <PropertyGroup>
-        <!-- We need C# 7.1 for async main-->
-        <LangVersion>latest</LangVersion>
-    </PropertyGroup>
-
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
-
-    <ItemGroup>
-        <EmbeddedResource Include="Resources/Configuration/*" />
-    </ItemGroup>
+  <PropertyGroup>
+    <AssemblyName>jellyfin</AssemblyName>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <!-- We need C# 7.1 for async main-->
+    <LangVersion>latest</LangVersion>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <EmbeddedResource Include="Resources/Configuration/*" />
+  </ItemGroup>
 
   <!-- Code analysers-->
   <ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
@@ -41,11 +41,11 @@
     <PackageReference Include="SQLitePCLRaw.provider.sqlite3.netstandard11" Version="1.1.12" />
   </ItemGroup>
 
-    <ItemGroup>
-        <ProjectReference Include="..\Emby.Drawing\Emby.Drawing.csproj" />
-        <ProjectReference Include="..\Emby.Drawing.Skia\Emby.Drawing.Skia.csproj" />
-        <ProjectReference Include="..\Emby.IsoMounting\IsoMounter\IsoMounter.csproj" />
-        <ProjectReference Include="..\Emby.Server.Implementations\Emby.Server.Implementations.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Emby.Drawing\Emby.Drawing.csproj" />
+    <ProjectReference Include="..\Emby.Drawing.Skia\Emby.Drawing.Skia.csproj" />
+    <ProjectReference Include="..\Emby.IsoMounting\IsoMounter\IsoMounter.csproj" />
+    <ProjectReference Include="..\Emby.Server.Implementations\Emby.Server.Implementations.csproj" />
+  </ItemGroup>
 
 </Project>

+ 11 - 11
MediaBrowser.Api/MediaBrowser.Api.csproj

@@ -1,17 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 16 - 16
MediaBrowser.Common/MediaBrowser.Common.csproj

@@ -1,23 +1,23 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <PropertyGroup>
-        <Authors>Jellyfin Contributors</Authors>
-        <PackageId>Jellyfin.Common</PackageId>
-        <PackageLicenseUrl>https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt</PackageLicenseUrl>
-        <RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
-    </PropertyGroup>
+  <PropertyGroup>
+    <Authors>Jellyfin Contributors</Authors>
+    <PackageId>Jellyfin.Common</PackageId>
+    <PackageLicenseUrl>https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt</PackageLicenseUrl>
+    <RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
+  </PropertyGroup>
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 17 - 17
MediaBrowser.Controller/MediaBrowser.Controller.csproj

@@ -1,24 +1,24 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <PropertyGroup>
-        <Authors>Jellyfin Contributors</Authors>
-        <PackageId>Jellyfin.Controller</PackageId>
-        <PackageLicenseUrl>https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt</PackageLicenseUrl>
-        <RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
-    </PropertyGroup>
+  <PropertyGroup>
+    <Authors>Jellyfin Contributors</Authors>
+    <PackageId>Jellyfin.Controller</PackageId>
+    <PackageLicenseUrl>https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt</PackageLicenseUrl>
+    <RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
+  </PropertyGroup>
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 11 - 11
MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj

@@ -1,17 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 14 - 14
MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj

@@ -1,20 +1,20 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <ProjectReference Include="..\BDInfo\BDInfo.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\OpenSubtitlesHandler\OpenSubtitlesHandler.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\BDInfo\BDInfo.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\OpenSubtitlesHandler\OpenSubtitlesHandler.csproj" />
+  </ItemGroup>
 
 </Project>

+ 16 - 16
MediaBrowser.Model/MediaBrowser.Model.csproj

@@ -1,23 +1,23 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <PropertyGroup>
-        <Authors>Jellyfin Contributors</Authors>
-        <PackageId>Jellyfin.Model</PackageId>
-        <PackageLicenseUrl>https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt</PackageLicenseUrl>
-        <RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
-    </PropertyGroup>
+  <PropertyGroup>
+    <Authors>Jellyfin Contributors</Authors>
+    <PackageId>Jellyfin.Model</PackageId>
+    <PackageLicenseUrl>https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt</PackageLicenseUrl>
+    <RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
+  </PropertyGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
-    <ItemGroup>
-        <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.2.0" />
-    </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.2.0" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
 </Project>

+ 15 - 15
MediaBrowser.Providers/MediaBrowser.Providers.csproj

@@ -1,22 +1,22 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\DvdLib\DvdLib.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\DvdLib\DvdLib.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <PackageReference Include="PlaylistsNET" Version="1.0.2" />
-    </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="PlaylistsNET" Version="1.0.2" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 129 - 129
MediaBrowser.Tests/MediaBrowser.Tests.csproj

@@ -1,135 +1,135 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" DefaultTargets="Build"
-    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <PropertyGroup>
-        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-        <ProjectGuid>{E22BFD35-0FCD-4A85-978A-C22DCD73A081}</ProjectGuid>
-        <OutputType>Library</OutputType>
-        <AppDesignerFolder>Properties</AppDesignerFolder>
-        <RootNamespace>MediaBrowser.Tests</RootNamespace>
-        <AssemblyName>MediaBrowser.Tests</AssemblyName>
-        <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
-        <FileAlignment>512</FileAlignment>
-        <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-        <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
-        <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-        <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
-        <IsCodedUITest>False</IsCodedUITest>
-        <TestProjectType>UnitTest</TestProjectType>
-        <TargetFrameworkProfile />
-    </PropertyGroup>
-    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-        <DebugSymbols>true</DebugSymbols>
-        <DebugType>full</DebugType>
-        <Optimize>false</Optimize>
-        <OutputPath>bin\Debug\</OutputPath>
-        <DefineConstants>DEBUG;TRACE</DefineConstants>
-        <ErrorReport>prompt</ErrorReport>
-        <WarningLevel>4</WarningLevel>
-        <DocumentationFile>bin\Debug\MediaBrowser.Tests.XML</DocumentationFile>
-    </PropertyGroup>
-    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-        <DebugType>none</DebugType>
-        <Optimize>true</Optimize>
-        <OutputPath>bin\Release\</OutputPath>
-        <DefineConstants>TRACE</DefineConstants>
-        <ErrorReport>prompt</ErrorReport>
-        <WarningLevel>4</WarningLevel>
-    </PropertyGroup>
-    <ItemGroup>
-        <Reference Include="Emby.Server.MediaEncoding">
-            <HintPath>..\ThirdParty\emby\Emby.Server.MediaEncoding.dll</HintPath>
+  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{E22BFD35-0FCD-4A85-978A-C22DCD73A081}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>MediaBrowser.Tests</RootNamespace>
+    <AssemblyName>MediaBrowser.Tests</AssemblyName>
+    <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
+    <IsCodedUITest>False</IsCodedUITest>
+    <TestProjectType>UnitTest</TestProjectType>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <DocumentationFile>bin\Debug\MediaBrowser.Tests.XML</DocumentationFile>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>none</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Emby.Server.MediaEncoding">
+      <HintPath>..\ThirdParty\emby\Emby.Server.MediaEncoding.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.XML" />
+  </ItemGroup>
+  <Choose>
+    <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
+      <ItemGroup>
+        <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
+      </ItemGroup>
+    </When>
+    <Otherwise>
+      <ItemGroup>
+        <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
+      </ItemGroup>
+    </Otherwise>
+  </Choose>
+  <ItemGroup>
+    <Compile Include="ConsistencyTests\StringUsageReporter.cs" />
+    <Compile Include="ConsistencyTests\TextIndexing\IndexBuilder.cs" />
+    <Compile Include="ConsistencyTests\TextIndexing\WordIndex.cs" />
+    <Compile Include="ConsistencyTests\TextIndexing\WordOccurrence.cs" />
+    <Compile Include="ConsistencyTests\TextIndexing\WordOccurrences.cs" />
+    <Compile Include="M3uParserTest.cs" />
+    <Compile Include="MediaEncoding\Subtitles\AssParserTests.cs" />
+    <Compile Include="MediaEncoding\Subtitles\SrtParserTests.cs" />
+    <Compile Include="MediaEncoding\Subtitles\VttWriterTest.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Emby.Server.Implementations\Emby.Server.Implementations.csproj">
+      <Project>{e383961b-9356-4d5d-8233-9a1079d03055}</Project>
+      <Name>Emby.Server.Implementations</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj">
+      <Project>{9142eefa-7570-41e1-bfcc-468bb571af2f}</Project>
+      <Name>MediaBrowser.Common</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj">
+      <Project>{17e1f4e6-8abd-4fe5-9ecf-43d4b6087ba2}</Project>
+      <Name>MediaBrowser.Controller</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj">
+      <Project>{7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b}</Project>
+      <Name>MediaBrowser.Model</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\MediaBrowser.Providers\MediaBrowser.Providers.csproj">
+      <Project>{442B5058-DCAF-4263-BB6A-F21E31120A1B}</Project>
+      <Name>MediaBrowser.Providers</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\MediaBrowser.XbmcMetadata\MediaBrowser.XbmcMetadata.csproj">
+      <Project>{23499896-b135-4527-8574-c26e926ea99e}</Project>
+      <Name>MediaBrowser.XbmcMetadata</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="app.config" />
+    <None Include="MediaEncoding\Subtitles\TestSubtitles\data.ass" />
+    <None Include="MediaEncoding\Subtitles\TestSubtitles\data2.ass" />
+    <None Include="MediaEncoding\Subtitles\TestSubtitles\expected.vtt" />
+    <None Include="MediaEncoding\Subtitles\TestSubtitles\unit.srt" />
+  </ItemGroup>
+  <ItemGroup>
+    <ContentWithTargetPath Include="ConsistencyTests\Resources\StringCheck.xslt">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+      <TargetPath>StringCheck.xslt</TargetPath>
+    </ContentWithTargetPath>
+    <None Include="ConsistencyTests\Resources\SampleTransformed.htm" />
+    <None Include="ConsistencyTests\Resources\StringCheckSample.xml" />
+  </ItemGroup>
+  <Choose>
+    <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
+      <ItemGroup>
+        <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+          <Private>False</Private>
         </Reference>
-        <Reference Include="System" />
-        <Reference Include="System.XML" />
-    </ItemGroup>
-    <Choose>
-        <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
-            <ItemGroup>
-                <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
-            </ItemGroup>
-        </When>
-        <Otherwise>
-            <ItemGroup>
-                <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
-            </ItemGroup>
-        </Otherwise>
-    </Choose>
-    <ItemGroup>
-        <Compile Include="ConsistencyTests\StringUsageReporter.cs" />
-        <Compile Include="ConsistencyTests\TextIndexing\IndexBuilder.cs" />
-        <Compile Include="ConsistencyTests\TextIndexing\WordIndex.cs" />
-        <Compile Include="ConsistencyTests\TextIndexing\WordOccurrence.cs" />
-        <Compile Include="ConsistencyTests\TextIndexing\WordOccurrences.cs" />
-        <Compile Include="M3uParserTest.cs" />
-        <Compile Include="MediaEncoding\Subtitles\AssParserTests.cs" />
-        <Compile Include="MediaEncoding\Subtitles\SrtParserTests.cs" />
-        <Compile Include="MediaEncoding\Subtitles\VttWriterTest.cs" />
-        <Compile Include="Properties\AssemblyInfo.cs" />
-    </ItemGroup>
-    <ItemGroup>
-        <ProjectReference Include="..\Emby.Server.Implementations\Emby.Server.Implementations.csproj">
-            <Project>{e383961b-9356-4d5d-8233-9a1079d03055}</Project>
-            <Name>Emby.Server.Implementations</Name>
-        </ProjectReference>
-        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj">
-            <Project>{9142eefa-7570-41e1-bfcc-468bb571af2f}</Project>
-            <Name>MediaBrowser.Common</Name>
-        </ProjectReference>
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj">
-            <Project>{17e1f4e6-8abd-4fe5-9ecf-43d4b6087ba2}</Project>
-            <Name>MediaBrowser.Controller</Name>
-        </ProjectReference>
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj">
-            <Project>{7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b}</Project>
-            <Name>MediaBrowser.Model</Name>
-        </ProjectReference>
-        <ProjectReference Include="..\MediaBrowser.Providers\MediaBrowser.Providers.csproj">
-            <Project>{442B5058-DCAF-4263-BB6A-F21E31120A1B}</Project>
-            <Name>MediaBrowser.Providers</Name>
-        </ProjectReference>
-        <ProjectReference Include="..\MediaBrowser.XbmcMetadata\MediaBrowser.XbmcMetadata.csproj">
-            <Project>{23499896-b135-4527-8574-c26e926ea99e}</Project>
-            <Name>MediaBrowser.XbmcMetadata</Name>
-        </ProjectReference>
-    </ItemGroup>
-    <ItemGroup>
-        <None Include="app.config" />
-        <None Include="MediaEncoding\Subtitles\TestSubtitles\data.ass" />
-        <None Include="MediaEncoding\Subtitles\TestSubtitles\data2.ass" />
-        <None Include="MediaEncoding\Subtitles\TestSubtitles\expected.vtt" />
-        <None Include="MediaEncoding\Subtitles\TestSubtitles\unit.srt" />
-    </ItemGroup>
-    <ItemGroup>
-        <ContentWithTargetPath Include="ConsistencyTests\Resources\StringCheck.xslt">
-            <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-            <TargetPath>StringCheck.xslt</TargetPath>
-        </ContentWithTargetPath>
-        <None Include="ConsistencyTests\Resources\SampleTransformed.htm" />
-        <None Include="ConsistencyTests\Resources\StringCheckSample.xml" />
-    </ItemGroup>
-    <Choose>
-        <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
-            <ItemGroup>
-                <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-                    <Private>False</Private>
-                </Reference>
-                <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-                    <Private>False</Private>
-                </Reference>
-                <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-                    <Private>False</Private>
-                </Reference>
-                <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-                    <Private>False</Private>
-                </Reference>
-            </ItemGroup>
-        </When>
-    </Choose>
-    <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
-    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-    <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+        <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+          <Private>False</Private>
+        </Reference>
+        <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+          <Private>False</Private>
+        </Reference>
+        <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+          <Private>False</Private>
+        </Reference>
+      </ItemGroup>
+    </When>
+  </Choose>
+  <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
        Other similar extension points exist, see Microsoft.Common.targets.
   <Target Name="BeforeBuild">
   </Target>

+ 16 - 16
MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj

@@ -1,23 +1,23 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <None Include="jellyfin-web\src\**\*.*">
-            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-        </None>
-    </ItemGroup>
+  <ItemGroup>
+    <None Include="jellyfin-web\src\**\*.*">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 11 - 11
MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj

@@ -1,17 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 33 - 33
MediaBrowser.sln.GhostDoc.xml

@@ -1,35 +1,35 @@
 <GhostDoc>
-    <SpellChecker>
-        <IncludeExtensions>
-        </IncludeExtensions>
-        <IgnoreExtensions>
-        </IgnoreExtensions>
-        <IgnoreFiles>
-        </IgnoreFiles>
-    </SpellChecker>
-    <HelpConfigurations selected="HelpFile">
-        <HelpConfiguration name="HelpFile">
-            <OutputPath>D:\Development\MediaBrowser\Help</OutputPath>
-            <ImageFolderPath />
-            <HtmlFormats>
-                <HtmlHelp>true</HtmlHelp>
-                <MSHelpViewer>false</MSHelpViewer>
-                <MSHelp2>false</MSHelp2>
-                <Website>false</Website>
-            </HtmlFormats>
-            <IncludeScopes>
-                <Public>true</Public>
-                <Internal>false</Internal>
-                <Protected>false</Protected>
-                <Private>false</Private>
-                <Inherited>true</Inherited>
-                <EnableTags>false</EnableTags>
-                <TagList />
-            </IncludeScopes>
-            <ResolveCrefLinks>true</ResolveCrefLinks>
-            <HeaderText />
-            <FooterText />
-            <SelectedProjects />
-        </HelpConfiguration>
-    </HelpConfigurations>
+  <SpellChecker>
+    <IncludeExtensions>
+    </IncludeExtensions>
+    <IgnoreExtensions>
+    </IgnoreExtensions>
+    <IgnoreFiles>
+    </IgnoreFiles>
+  </SpellChecker>
+  <HelpConfigurations selected="HelpFile">
+    <HelpConfiguration name="HelpFile">
+      <OutputPath>D:\Development\MediaBrowser\Help</OutputPath>
+      <ImageFolderPath />
+      <HtmlFormats>
+        <HtmlHelp>true</HtmlHelp>
+        <MSHelpViewer>false</MSHelpViewer>
+        <MSHelp2>false</MSHelp2>
+        <Website>false</Website>
+      </HtmlFormats>
+      <IncludeScopes>
+        <Public>true</Public>
+        <Internal>false</Internal>
+        <Protected>false</Protected>
+        <Private>false</Private>
+        <Inherited>true</Inherited>
+        <EnableTags>false</EnableTags>
+        <TagList />
+      </IncludeScopes>
+      <ResolveCrefLinks>true</ResolveCrefLinks>
+      <HeaderText />
+      <FooterText />
+      <SelectedProjects />
+    </HelpConfiguration>
+  </HelpConfigurations>
 </GhostDoc>

+ 8 - 8
OpenSubtitlesHandler/OpenSubtitlesHandler.csproj

@@ -1,13 +1,13 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 12 - 12
SocketHttpListener/SocketHttpListener.csproj

@@ -1,18 +1,18 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <ItemGroup>
-        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+  </ItemGroup>
 
-    <ItemGroup>
-        <Compile Include="..\SharedVersion.cs" />
-    </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" />
+  </ItemGroup>
 
-    <PropertyGroup>
-        <TargetFramework>netstandard2.0</TargetFramework>
-        <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-    </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
 
 </Project>

+ 7 - 7
deployment/fedora-package-x64/pkg-src/jellyfin-firewalld.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <service>
-    <short>Jellyfin</short>
-    <description>The Free Software Media System.</description>
-    <port protocol="tcp" port="8096"/>
-    <port protocol="tcp" port="8920"/>
-    <port protocol="udp" port="1900"/>
-    <port protocol="udp" port="7359"/>
-</service>
+  <short>Jellyfin</short>
+  <description>The Free Software Media System.</description>
+  <port protocol="tcp" port="8096"/>
+  <port protocol="tcp" port="8920"/>
+  <port protocol="udp" port="1900"/>
+  <port protocol="udp" port="7359"/>
+</service>

+ 2 - 2
deployment/unraid/docker-templates/jellyfin.xml

@@ -23,7 +23,7 @@
   <Project>https://jellyfin.media/</Project>
   <BindTime>true</BindTime>
   <Privileged>false</Privileged>
-    <Networking>
+  <Networking>
     <Mode>host</Mode>
     <Publish>
       <Port>
@@ -32,7 +32,7 @@
         <Protocol>tcp</Protocol>
       </Port>
     </Publish>
-    </Networking>
+  </Networking>
   <Data>
     <Volume>
       <HostDir>/mnt/cache/appdata/config</HostDir>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно