Browse Source

dlna fixes

Luke Pulverenti 10 years ago
parent
commit
6c3209e3f9
35 changed files with 139 additions and 95 deletions
  1. 1 1
      MediaBrowser.Dlna/DlnaManager.cs
  2. 1 0
      MediaBrowser.Dlna/Profiles/Xbox360Profile.cs
  3. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Default.xml
  4. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Denon AVR.xml
  5. 1 0
      MediaBrowser.Dlna/Profiles/Xml/DirecTV HD-DVR.xml
  6. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Dish Hopper-Joey.xml
  7. 1 0
      MediaBrowser.Dlna/Profiles/Xml/LG Smart TV.xml
  8. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Linksys DMA2100.xml
  9. 1 0
      MediaBrowser.Dlna/Profiles/Xml/MediaMonkey.xml
  10. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Panasonic Viera.xml
  11. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Popcorn Hour.xml
  12. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Samsung Smart TV.xml
  13. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player 2013.xml
  14. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player.xml
  15. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2010).xml
  16. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2011).xml
  17. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2012).xml
  18. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2013).xml
  19. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Sony PlayStation 3.xml
  20. 1 0
      MediaBrowser.Dlna/Profiles/Xml/WDTV Live.xml
  21. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Xbox 360.xml
  22. 1 0
      MediaBrowser.Dlna/Profiles/Xml/Xbox One.xml
  23. 1 0
      MediaBrowser.Dlna/Profiles/Xml/foobar2000.xml
  24. 10 7
      MediaBrowser.Dlna/Server/DescriptionXmlBuilder.cs
  25. 1 0
      MediaBrowser.Model/Dlna/DeviceProfile.cs
  26. 0 18
      MediaBrowser.Model/Dlna/StreamBuilder.cs
  27. 17 6
      MediaBrowser.Model/Sync/SyncJobQuery.cs
  28. 2 2
      MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
  29. 3 3
      MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
  30. 76 51
      MediaBrowser.Server.Implementations/Sync/SyncRepository.cs
  31. 1 1
      MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs
  32. 2 2
      Nuget/MediaBrowser.Common.Internal.nuspec
  33. 1 1
      Nuget/MediaBrowser.Common.nuspec
  34. 1 1
      Nuget/MediaBrowser.Model.Signed.nuspec
  35. 2 2
      Nuget/MediaBrowser.Server.Core.nuspec

+ 1 - 1
MediaBrowser.Dlna/DlnaManager.cs

@@ -515,7 +515,7 @@ namespace MediaBrowser.Dlna
 
 
         public void Run()
         public void Run()
         {
         {
-            //DumpProfiles();
+            DumpProfiles();
         }
         }
 
 
         private void DumpProfiles()
         private void DumpProfiles()

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xbox360Profile.cs

@@ -29,6 +29,7 @@ namespace MediaBrowser.Dlna.Profiles
             TimelineOffsetSeconds = 40;
             TimelineOffsetSeconds = 40;
             RequiresPlainFolders = true;
             RequiresPlainFolders = true;
             RequiresPlainVideoItems = true;
             RequiresPlainVideoItems = true;
+            EnableMSMediaReceiverRegistrar = true;
 
 
             Identification = new DeviceIdentification
             Identification = new DeviceIdentification
             {
             {

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Default.xml

@@ -28,6 +28,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="mp3,wma" type="Audio" />
     <DirectPlayProfile container="mp3,wma" type="Audio" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Denon AVR.xml

@@ -33,6 +33,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />
     <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/DirecTV HD-DVR.xml

@@ -34,6 +34,7 @@
   <RequiresPlainFolders>true</RequiresPlainFolders>
   <RequiresPlainFolders>true</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg2video" type="Video" />
     <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg2video" type="Video" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Dish Hopper-Joey.xml

@@ -35,6 +35,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="mp4,mkv,mpeg,ts" audioCodec="mp3,ac3,aac,he-aac,pcm" videoCodec="h264,mpeg2video" type="Video" />
     <DirectPlayProfile container="mp4,mkv,mpeg,ts" audioCodec="mp3,ac3,aac,he-aac,pcm" videoCodec="h264,mpeg2video" type="Video" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/LG Smart TV.xml

@@ -34,6 +34,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="ts" audioCodec="aac,ac3,mp3" videoCodec="h264" type="Video" />
     <DirectPlayProfile container="ts" audioCodec="aac,ac3,mp3" videoCodec="h264" type="Video" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Linksys DMA2100.xml

@@ -32,6 +32,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />
     <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/MediaMonkey.xml

@@ -34,6 +34,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />
     <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Panasonic Viera.xml

@@ -35,6 +35,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes>
   <XmlRootAttributes>
     <XmlAttribute name="xmlns:pv" value="http://www.pv.com/pvns/" />
     <XmlAttribute name="xmlns:pv" value="http://www.pv.com/pvns/" />
   </XmlRootAttributes>
   </XmlRootAttributes>

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Popcorn Hour.xml

@@ -28,6 +28,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="mp4,mov" audioCodec="aac" videoCodec="h264,mpeg4" type="Video" />
     <DirectPlayProfile container="mp4,mov" audioCodec="aac" videoCodec="h264,mpeg4" type="Video" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Samsung Smart TV.xml

@@ -34,6 +34,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes>
   <XmlRootAttributes>
     <XmlAttribute name="xmlns:sec" value="http://www.sec.co.kr/" />
     <XmlAttribute name="xmlns:sec" value="http://www.sec.co.kr/" />
   </XmlRootAttributes>
   </XmlRootAttributes>

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player 2013.xml

@@ -34,6 +34,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes>
   <XmlRootAttributes>
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
   </XmlRootAttributes>
   </XmlRootAttributes>

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Sony Blu-ray Player.xml

@@ -36,6 +36,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes>
   <XmlRootAttributes>
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
   </XmlRootAttributes>
   </XmlRootAttributes>

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2010).xml

@@ -36,6 +36,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes>
   <XmlRootAttributes>
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
   </XmlRootAttributes>
   </XmlRootAttributes>

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2011).xml

@@ -36,6 +36,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes>
   <XmlRootAttributes>
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
   </XmlRootAttributes>
   </XmlRootAttributes>

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2012).xml

@@ -36,6 +36,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes>
   <XmlRootAttributes>
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
   </XmlRootAttributes>
   </XmlRootAttributes>

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2013).xml

@@ -36,6 +36,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes>
   <XmlRootAttributes>
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
     <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
   </XmlRootAttributes>
   </XmlRootAttributes>

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Sony PlayStation 3.xml

@@ -36,6 +36,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="avi" audioCodec="mp2,mp3" videoCodec="mpeg4" type="Video" />
     <DirectPlayProfile container="avi" audioCodec="mp2,mp3" videoCodec="mpeg4" type="Video" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/WDTV Live.xml

@@ -35,6 +35,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="avi" audioCodec="ac3,dca,mp2,mp3,pcm" videoCodec="mpeg1video,mpeg2video,mpeg4,h264,vc1" type="Video" />
     <DirectPlayProfile container="avi" audioCodec="ac3,dca,mp2,mp3,pcm" videoCodec="mpeg1video,mpeg2video,mpeg4,h264,vc1" type="Video" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Xbox 360.xml

@@ -35,6 +35,7 @@
   <RequiresPlainFolders>true</RequiresPlainFolders>
   <RequiresPlainFolders>true</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>true</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="avi" audioCodec="ac3,mp3" videoCodec="mpeg4" type="Video" />
     <DirectPlayProfile container="avi" audioCodec="ac3,mp3" videoCodec="mpeg4" type="Video" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/Xbox One.xml

@@ -35,6 +35,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="ts" audioCodec="ac3" videoCodec="h264" type="Video" />
     <DirectPlayProfile container="ts" audioCodec="ac3" videoCodec="h264" type="Video" />

+ 1 - 0
MediaBrowser.Dlna/Profiles/Xml/foobar2000.xml

@@ -34,6 +34,7 @@
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <RequiresPlainFolders>false</RequiresPlainFolders>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsDirectRemoteContent>false</SupportsDirectRemoteContent>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
   <SupportsCustomHttpHeaders>false</SupportsCustomHttpHeaders>
+  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
   <XmlRootAttributes />
   <XmlRootAttributes />
   <DirectPlayProfiles>
   <DirectPlayProfiles>
     <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />
     <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />

+ 10 - 7
MediaBrowser.Dlna/Server/DescriptionXmlBuilder.cs

@@ -261,14 +261,17 @@ namespace MediaBrowser.Dlna.Server
                 EventSubUrl = "connectionmanager/events"
                 EventSubUrl = "connectionmanager/events"
             });
             });
 
 
-            list.Add(new DeviceService
+            if (_profile.EnableMSMediaReceiverRegistrar)
             {
             {
-                ServiceType = "urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1",
-                ServiceId = "urn:microsoft.com:serviceId:X_MS_MediaReceiverRegistrar",
-                ScpdUrl = "mediareceiverregistrar/mediareceiverregistrar.xml",
-                ControlUrl = "mediareceiverregistrar/control",
-                EventSubUrl = "mediareceiverregistrar/events"
-            });
+                list.Add(new DeviceService
+                {
+                    ServiceType = "urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1",
+                    ServiceId = "urn:microsoft.com:serviceId:X_MS_MediaReceiverRegistrar",
+                    ScpdUrl = "mediareceiverregistrar/mediareceiverregistrar.xml",
+                    ControlUrl = "mediareceiverregistrar/control",
+                    EventSubUrl = "mediareceiverregistrar/events"
+                });
+            }
 
 
             return list;
             return list;
         }
         }

+ 1 - 0
MediaBrowser.Model/Dlna/DeviceProfile.cs

@@ -78,6 +78,7 @@ namespace MediaBrowser.Model.Dlna
 
 
         public bool SupportsDirectRemoteContent { get; set; }
         public bool SupportsDirectRemoteContent { get; set; }
         public bool SupportsCustomHttpHeaders { get; set; }
         public bool SupportsCustomHttpHeaders { get; set; }
+        public bool EnableMSMediaReceiverRegistrar { get; set; }
 
 
         public XmlAttribute[] XmlRootAttributes { get; set; }
         public XmlAttribute[] XmlRootAttributes { get; set; }
 
 

+ 0 - 18
MediaBrowser.Model/Dlna/StreamBuilder.cs

@@ -524,11 +524,6 @@ namespace MediaBrowser.Model.Dlna
         {
         {
             if (subtitleStream != null)
             if (subtitleStream != null)
             {
             {
-                if (!subtitleStream.IsTextSubtitleStream)
-                {
-                    return false;
-                }
-
                 SubtitleProfile subtitleProfile = GetSubtitleProfile(subtitleStream, options);
                 SubtitleProfile subtitleProfile = GetSubtitleProfile(subtitleStream, options);
 
 
                 if (subtitleProfile.Method != SubtitleDeliveryMethod.External && subtitleProfile.Method != SubtitleDeliveryMethod.Embed)
                 if (subtitleProfile.Method != SubtitleDeliveryMethod.External && subtitleProfile.Method != SubtitleDeliveryMethod.Embed)
@@ -568,19 +563,6 @@ namespace MediaBrowser.Model.Dlna
             };
             };
         }
         }
 
 
-        private SubtitleProfile GetSubtitleProfile(SubtitleProfile[] profiles, SubtitleDeliveryMethod method, string[] formats)
-        {
-            foreach (SubtitleProfile profile in profiles)
-            {
-                if (method == profile.Method && ListHelper.ContainsIgnoreCase(formats, profile.Format))
-                {
-                    return profile;
-                }
-            }
-
-            return null;
-        }
-
         private SubtitleProfile GetSubtitleProfile(SubtitleProfile[] profiles, SubtitleDeliveryMethod method)
         private SubtitleProfile GetSubtitleProfile(SubtitleProfile[] profiles, SubtitleDeliveryMethod method)
         {
         {
             foreach (SubtitleProfile profile in profiles)
             foreach (SubtitleProfile profile in profiles)

+ 17 - 6
MediaBrowser.Model/Sync/SyncJobQuery.cs

@@ -1,4 +1,5 @@
-
+using System.Collections.Generic;
+
 namespace MediaBrowser.Model.Sync
 namespace MediaBrowser.Model.Sync
 {
 {
     public class SyncJobQuery
     public class SyncJobQuery
@@ -14,11 +15,6 @@ namespace MediaBrowser.Model.Sync
         /// <value>The limit.</value>
         /// <value>The limit.</value>
         public int? Limit { get; set; }
         public int? Limit { get; set; }
         /// <summary>
         /// <summary>
-        /// Gets or sets a value indicating whether this instance is completed.
-        /// </summary>
-        /// <value><c>null</c> if [is completed] contains no value, <c>true</c> if [is completed]; otherwise, <c>false</c>.</value>
-        public bool? IsCompleted { get; set; }
-        /// <summary>
         /// Gets or sets the target identifier.
         /// Gets or sets the target identifier.
         /// </summary>
         /// </summary>
         /// <value>The target identifier.</value>
         /// <value>The target identifier.</value>
@@ -28,5 +24,20 @@ namespace MediaBrowser.Model.Sync
         /// </summary>
         /// </summary>
         /// <value>The user identifier.</value>
         /// <value>The user identifier.</value>
         public string UserId { get; set; }
         public string UserId { get; set; }
+        /// <summary>
+        /// Gets or sets the status.
+        /// </summary>
+        /// <value>The status.</value>
+        public List<SyncJobStatus> Statuses { get; set; }
+        /// <summary>
+        /// Gets or sets a value indicating whether [synchronize new content].
+        /// </summary>
+        /// <value><c>null</c> if [synchronize new content] contains no value, <c>true</c> if [synchronize new content]; otherwise, <c>false</c>.</value>
+        public bool? SyncNewContent { get; set; }
+
+        public SyncJobQuery()
+        {
+            Statuses = new List<SyncJobStatus>();
+        }
     }
     }
 }
 }

+ 2 - 2
MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json

@@ -89,8 +89,8 @@
     "LabelFree": "Free",
     "LabelFree": "Free",
     "HeaderSelectAudio": "Select Audio",
     "HeaderSelectAudio": "Select Audio",
     "HeaderSelectSubtitles": "Select Subtitles",
     "HeaderSelectSubtitles": "Select Subtitles",
-    "ButtonMarkForRemoval": "Mark for removal from device",
-    "ButtonUnmarkForRemoval": "Unmark for removal from device",
+    "ButtonMarkForRemoval": "Remove from device",
+    "ButtonUnmarkForRemoval": "Cancel removal from device",
     "LabelDefaultStream": "(Default)",
     "LabelDefaultStream": "(Default)",
     "LabelForcedStream": "(Forced)",
     "LabelForcedStream": "(Forced)",
     "LabelDefaultForcedStream": "(Default/Forced)",
     "LabelDefaultForcedStream": "(Default/Forced)",

+ 3 - 3
MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs

@@ -308,11 +308,11 @@ namespace MediaBrowser.Server.Implementations.Sync
             return new[] { item };
             return new[] { item };
         }
         }
 
 
-        public async Task EnsureSyncJobs(CancellationToken cancellationToken)
+        public async Task EnsureSyncJobItems(CancellationToken cancellationToken)
         {
         {
             var jobResult = _syncRepo.GetJobs(new SyncJobQuery
             var jobResult = _syncRepo.GetJobs(new SyncJobQuery
             {
             {
-                IsCompleted = false
+                SyncNewContent = true
             });
             });
 
 
             foreach (var job in jobResult.Items)
             foreach (var job in jobResult.Items)
@@ -328,7 +328,7 @@ namespace MediaBrowser.Server.Implementations.Sync
 
 
         public async Task Sync(IProgress<double> progress, CancellationToken cancellationToken)
         public async Task Sync(IProgress<double> progress, CancellationToken cancellationToken)
         {
         {
-            await EnsureSyncJobs(cancellationToken).ConfigureAwait(false);
+            await EnsureSyncJobItems(cancellationToken).ConfigureAwait(false);
 
 
             // If it already has a converting status then is must have been aborted during conversion
             // If it already has a converting status then is must have been aborted during conversion
             var result = _syncRepo.GetJobItems(new SyncJobItemQuery
             var result = _syncRepo.GetJobItems(new SyncJobItemQuery

+ 76 - 51
MediaBrowser.Server.Implementations/Sync/SyncRepository.cs

@@ -30,7 +30,8 @@ namespace MediaBrowser.Server.Implementations.Sync
         private IDbCommand _deleteJobCommand;
         private IDbCommand _deleteJobCommand;
 
 
         private IDbCommand _deleteJobItemsCommand;
         private IDbCommand _deleteJobItemsCommand;
-        private IDbCommand _saveJobItemCommand;
+        private IDbCommand _insertJobItemCommand;
+        private IDbCommand _updateJobItemCommand;
 
 
         private readonly IJsonSerializer _json;
         private readonly IJsonSerializer _json;
 
 
@@ -120,25 +121,45 @@ namespace MediaBrowser.Server.Implementations.Sync
             _updateJobCommand.Parameters.Add(_updateJobCommand, "@DateLastModified");
             _updateJobCommand.Parameters.Add(_updateJobCommand, "@DateLastModified");
             _updateJobCommand.Parameters.Add(_updateJobCommand, "@ItemCount");
             _updateJobCommand.Parameters.Add(_updateJobCommand, "@ItemCount");
 
 
-            // _saveJobItemCommand
-            _saveJobItemCommand = _connection.CreateCommand();
-            _saveJobItemCommand.CommandText = "replace into SyncJobItems (Id, ItemId, ItemName, MediaSourceId, JobId, TemporaryPath, OutputPath, Status, TargetId, DateCreated, Progress, AdditionalFiles, MediaSource, IsMarkedForRemoval, JobItemIndex) values (@Id, @ItemId, @ItemName, @MediaSourceId, @JobId, @TemporaryPath, @OutputPath, @Status, @TargetId, @DateCreated, @Progress, @AdditionalFiles, @MediaSource, @IsMarkedForRemoval, @JobItemIndex)";
-
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@Id");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@ItemId");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@ItemName");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@MediaSourceId");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@JobId");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@TemporaryPath");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@OutputPath");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@Status");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@TargetId");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@DateCreated");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@Progress");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@AdditionalFiles");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@MediaSource");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@IsMarkedForRemoval");
-            _saveJobItemCommand.Parameters.Add(_saveJobItemCommand, "@JobItemIndex");
+            // _insertJobItemCommand
+            _insertJobItemCommand = _connection.CreateCommand();
+            _insertJobItemCommand.CommandText = "insert into SyncJobItems (Id, ItemId, ItemName, MediaSourceId, JobId, TemporaryPath, OutputPath, Status, TargetId, DateCreated, Progress, AdditionalFiles, MediaSource, IsMarkedForRemoval, JobItemIndex) values (@Id, @ItemId, @ItemName, @MediaSourceId, @JobId, @TemporaryPath, @OutputPath, @Status, @TargetId, @DateCreated, @Progress, @AdditionalFiles, @MediaSource, @IsMarkedForRemoval, @JobItemIndex)";
+
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@Id");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@ItemId");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@ItemName");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@MediaSourceId");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@JobId");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@TemporaryPath");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@OutputPath");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@Status");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@TargetId");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@DateCreated");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@Progress");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@AdditionalFiles");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@MediaSource");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@IsMarkedForRemoval");
+            _insertJobItemCommand.Parameters.Add(_insertJobItemCommand, "@JobItemIndex");
+
+            // _updateJobItemCommand
+            _updateJobItemCommand = _connection.CreateCommand();
+            _updateJobItemCommand.CommandText = "update SyncJobItems set ItemId=@ItemId,ItemName=@ItemName,MediaSourceId=@MediaSourceId,JobId=@JobId,TemporaryPath=@TemporaryPath,OutputPath=@OutputPath,Status=@Status,TargetId=@TargetId,DateCreated=@DateCreated,Progress=@Progress,AdditionalFiles=@AdditionalFiles,MediaSource=@MediaSource,IsMarkedForRemoval=@IsMarkedForRemoval,JobItemIndex=@JobItemIndex where Id=@Id";
+
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@Id");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@ItemId");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@ItemName");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@MediaSourceId");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@JobId");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@TemporaryPath");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@OutputPath");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@Status");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@TargetId");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@DateCreated");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@Progress");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@AdditionalFiles");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@MediaSource");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@IsMarkedForRemoval");
+            _updateJobItemCommand.Parameters.Add(_updateJobItemCommand, "@JobItemIndex");
         }
         }
 
 
         private const string BaseJobSelectText = "select Id, TargetId, Name, Quality, Status, Progress, UserId, ItemIds, Category, ParentId, UnwatchedOnly, ItemLimit, SyncNewContent, DateCreated, DateLastModified, ItemCount from SyncJobs";
         private const string BaseJobSelectText = "select Id, TargetId, Name, Quality, Status, Progress, UserId, ItemIds, Category, ParentId, UnwatchedOnly, ItemLimit, SyncNewContent, DateCreated, DateLastModified, ItemCount from SyncJobs";
@@ -392,17 +413,11 @@ namespace MediaBrowser.Server.Implementations.Sync
 
 
                 var whereClauses = new List<string>();
                 var whereClauses = new List<string>();
 
 
-                if (query.IsCompleted.HasValue)
+                if (query.Statuses.Count > 0)
                 {
                 {
-                    if (query.IsCompleted.Value)
-                    {
-                        whereClauses.Add("Status=@Status");
-                    }
-                    else
-                    {
-                        whereClauses.Add("Status<>@Status");
-                    }
-                    cmd.Parameters.Add(cmd, "@Status", DbType.String).Value = SyncJobStatus.Completed.ToString();
+                    var statuses = string.Join(",", query.Statuses.Select(i => "'" + i.ToString() + "'").ToArray());
+
+                    whereClauses.Add(string.Format("Status in ({0})", statuses));
                 }
                 }
                 if (!string.IsNullOrWhiteSpace(query.TargetId))
                 if (!string.IsNullOrWhiteSpace(query.TargetId))
                 {
                 {
@@ -413,6 +428,11 @@ namespace MediaBrowser.Server.Implementations.Sync
                     whereClauses.Add("UserId=@UserId");
                     whereClauses.Add("UserId=@UserId");
                     cmd.Parameters.Add(cmd, "@UserId", DbType.String).Value = query.UserId;
                     cmd.Parameters.Add(cmd, "@UserId", DbType.String).Value = query.UserId;
                 }
                 }
+                if (query.SyncNewContent.HasValue)
+                {
+                    whereClauses.Add("SyncNewContent=@SyncNewContent");
+                    cmd.Parameters.Add(cmd, "@SyncNewContent", DbType.Boolean).Value = query.SyncNewContent.Value;
+                }
 
 
                 var whereTextWithoutPaging = whereClauses.Count == 0 ?
                 var whereTextWithoutPaging = whereClauses.Count == 0 ?
                     string.Empty :
                     string.Empty :
@@ -583,10 +603,15 @@ namespace MediaBrowser.Server.Implementations.Sync
 
 
         public Task Create(SyncJobItem jobItem)
         public Task Create(SyncJobItem jobItem)
         {
         {
-            return Update(jobItem);
+            return InsertOrUpdate(jobItem, _insertJobItemCommand);
+        }
+
+        public Task Update(SyncJobItem jobItem)
+        {
+            return InsertOrUpdate(jobItem, _updateJobItemCommand);
         }
         }
 
 
-        public async Task Update(SyncJobItem jobItem)
+        private async Task InsertOrUpdate(SyncJobItem jobItem, IDbCommand cmd)
         {
         {
             if (jobItem == null)
             if (jobItem == null)
             {
             {
@@ -603,25 +628,25 @@ namespace MediaBrowser.Server.Implementations.Sync
 
 
                 var index = 0;
                 var index = 0;
 
 
-                _saveJobItemCommand.GetParameter(index++).Value = new Guid(jobItem.Id);
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.ItemId;
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.ItemName;
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.MediaSourceId;
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.JobId;
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.TemporaryPath;
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.OutputPath;
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.Status.ToString();
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.TargetId;
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.DateCreated;
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.Progress;
-                _saveJobItemCommand.GetParameter(index++).Value = _json.SerializeToString(jobItem.AdditionalFiles);
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.MediaSource == null ? null : _json.SerializeToString(jobItem.MediaSource);
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.IsMarkedForRemoval;
-                _saveJobItemCommand.GetParameter(index++).Value = jobItem.JobItemIndex;
-
-                _saveJobItemCommand.Transaction = transaction;
-
-                _saveJobItemCommand.ExecuteNonQuery();
+                cmd.GetParameter(index++).Value = new Guid(jobItem.Id);
+                cmd.GetParameter(index++).Value = jobItem.ItemId;
+                cmd.GetParameter(index++).Value = jobItem.ItemName;
+                cmd.GetParameter(index++).Value = jobItem.MediaSourceId;
+                cmd.GetParameter(index++).Value = jobItem.JobId;
+                cmd.GetParameter(index++).Value = jobItem.TemporaryPath;
+                cmd.GetParameter(index++).Value = jobItem.OutputPath;
+                cmd.GetParameter(index++).Value = jobItem.Status.ToString();
+                cmd.GetParameter(index++).Value = jobItem.TargetId;
+                cmd.GetParameter(index++).Value = jobItem.DateCreated;
+                cmd.GetParameter(index++).Value = jobItem.Progress;
+                cmd.GetParameter(index++).Value = _json.SerializeToString(jobItem.AdditionalFiles);
+                cmd.GetParameter(index++).Value = jobItem.MediaSource == null ? null : _json.SerializeToString(jobItem.MediaSource);
+                cmd.GetParameter(index++).Value = jobItem.IsMarkedForRemoval;
+                cmd.GetParameter(index++).Value = jobItem.JobItemIndex;
+
+                cmd.Transaction = transaction;
+
+                cmd.ExecuteNonQuery();
 
 
                 transaction.Commit();
                 transaction.Commit();
             }
             }

+ 1 - 1
MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs

@@ -129,7 +129,7 @@ namespace MediaBrowser.Server.Implementations.TV
             // Get them in display order, then reverse
             // Get them in display order, then reverse
             var allEpisodes = series.GetSeasons(user, true, true)
             var allEpisodes = series.GetSeasons(user, true, true)
                 .Where(i => !i.IndexNumber.HasValue || i.IndexNumber.Value != 0)
                 .Where(i => !i.IndexNumber.HasValue || i.IndexNumber.Value != 0)
-                .SelectMany(i => i.GetEpisodes(user, true, true))
+                .SelectMany(i => i.GetEpisodes(user))
                 .Reverse()
                 .Reverse()
                 .ToList();
                 .ToList();
 
 

+ 2 - 2
Nuget/MediaBrowser.Common.Internal.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
     <metadata>
         <id>MediaBrowser.Common.Internal</id>
         <id>MediaBrowser.Common.Internal</id>
-        <version>3.0.553</version>
+        <version>3.0.554</version>
         <title>MediaBrowser.Common.Internal</title>
         <title>MediaBrowser.Common.Internal</title>
         <authors>Luke</authors>
         <authors>Luke</authors>
         <owners>ebr,Luke,scottisafool</owners>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
         <description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.553" />
+            <dependency id="MediaBrowser.Common" version="3.0.554" />
             <dependency id="NLog" version="3.1.0.0" />
             <dependency id="NLog" version="3.1.0.0" />
             <dependency id="SimpleInjector" version="2.6.1" />
             <dependency id="SimpleInjector" version="2.6.1" />
         </dependencies>
         </dependencies>

+ 1 - 1
Nuget/MediaBrowser.Common.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
     <metadata>
         <id>MediaBrowser.Common</id>
         <id>MediaBrowser.Common</id>
-        <version>3.0.553</version>
+        <version>3.0.554</version>
         <title>MediaBrowser.Common</title>
         <title>MediaBrowser.Common</title>
         <authors>Media Browser Team</authors>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
         <owners>ebr,Luke,scottisafool</owners>

+ 1 - 1
Nuget/MediaBrowser.Model.Signed.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
     <metadata>
         <id>MediaBrowser.Model.Signed</id>
         <id>MediaBrowser.Model.Signed</id>
-        <version>3.0.553</version>
+        <version>3.0.554</version>
         <title>MediaBrowser.Model - Signed Edition</title>
         <title>MediaBrowser.Model - Signed Edition</title>
         <authors>Media Browser Team</authors>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
         <owners>ebr,Luke,scottisafool</owners>

+ 2 - 2
Nuget/MediaBrowser.Server.Core.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
     <metadata>
     <metadata>
         <id>MediaBrowser.Server.Core</id>
         <id>MediaBrowser.Server.Core</id>
-        <version>3.0.553</version>
+        <version>3.0.554</version>
         <title>Media Browser.Server.Core</title>
         <title>Media Browser.Server.Core</title>
         <authors>Media Browser Team</authors>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains core components required to build plugins for Media Browser Server.</description>
         <description>Contains core components required to build plugins for Media Browser Server.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.553" />
+            <dependency id="MediaBrowser.Common" version="3.0.554" />
         </dependencies>
         </dependencies>
     </metadata>
     </metadata>
     <files>
     <files>