ソースを参照

update legacy hd homerun support

Luke Pulverenti 8 年 前
コミット
9fa6868af3

+ 6 - 0
Emby.Dlna/Profiles/DefaultProfile.cs

@@ -83,6 +83,12 @@ namespace Emby.Dlna.Profiles
                 {
                     Format = "srt",
                     Method = SubtitleDeliveryMethod.Embed
+                },
+
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.External,
                 }
             };
 

+ 9 - 0
Emby.Dlna/Profiles/DirectTvProfile.cs

@@ -113,6 +113,15 @@ namespace Emby.Dlna.Profiles
                 }
             };
 
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
+
             ResponseProfiles = new ResponseProfile[] { };
         }
     }

+ 8 - 0
Emby.Dlna/Profiles/DishHopperJoeyProfile.cs

@@ -214,6 +214,14 @@ namespace Emby.Dlna.Profiles
                 }
             };
 
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/LinksysDMA2100Profile.cs

@@ -40,6 +40,15 @@ namespace Emby.Dlna.Profiles
                     MimeType = "video/mp4"
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/PopcornHourProfile.cs

@@ -210,6 +210,15 @@ namespace Emby.Dlna.Profiles
                     MimeType = "video/mp4"
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/SonyBlurayPlayerProfile.cs

@@ -269,6 +269,15 @@ namespace Emby.Dlna.Profiles
                     Type = DlnaProfileType.Audio
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/SonyBravia2010Profile.cs

@@ -351,6 +351,15 @@ namespace Emby.Dlna.Profiles
                     }
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/SonyBravia2011Profile.cs

@@ -374,6 +374,15 @@ namespace Emby.Dlna.Profiles
                     }
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/SonyBravia2012Profile.cs

@@ -292,6 +292,15 @@ namespace Emby.Dlna.Profiles
                     }
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/SonyBravia2013Profile.cs

@@ -310,6 +310,15 @@ namespace Emby.Dlna.Profiles
                     }
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/SonyBravia2014Profile.cs

@@ -310,6 +310,15 @@ namespace Emby.Dlna.Profiles
                     }
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/SonyPs3Profile.cs

@@ -255,6 +255,15 @@ namespace Emby.Dlna.Profiles
                     Type = DlnaProfileType.Audio
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/SonyPs4Profile.cs

@@ -264,6 +264,15 @@ namespace Emby.Dlna.Profiles
                     MimeType = "video/mp4"
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/Xbox360Profile.cs

@@ -312,6 +312,15 @@ namespace Emby.Dlna.Profiles
                     }
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

+ 9 - 0
Emby.Dlna/Profiles/XboxOneProfile.cs

@@ -357,6 +357,15 @@ namespace Emby.Dlna.Profiles
                     MimeType = "video/mp4"
                 }
             };
+
+            SubtitleProfiles = new[]
+            {
+                new SubtitleProfile
+                {
+                    Format = "srt",
+                    Method = SubtitleDeliveryMethod.Embed
+                }
+            };
         }
     }
 }

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

@@ -46,5 +46,6 @@
   </ResponseProfiles>
   <SubtitleProfiles>
     <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="srt" method="External" />
   </SubtitleProfiles>
 </Profile>

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

@@ -46,5 +46,6 @@
   <ResponseProfiles />
   <SubtitleProfiles>
     <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="srt" method="External" />
   </SubtitleProfiles>
 </Profile>

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

@@ -52,5 +52,6 @@
   <ResponseProfiles />
   <SubtitleProfiles>
     <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="srt" method="External" />
   </SubtitleProfiles>
 </Profile>

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

@@ -52,5 +52,6 @@
   <ResponseProfiles />
   <SubtitleProfiles>
     <SubtitleProfile format="srt" method="Embed" />
+    <SubtitleProfile format="srt" method="External" />
   </SubtitleProfiles>
 </Profile>

+ 3 - 4
Emby.Server.Implementations/Devices/DeviceManager.cs

@@ -195,13 +195,12 @@ namespace Emby.Server.Implementations.Devices
             }
 
             var config = _config.GetUploadOptions();
-            if (!string.IsNullOrWhiteSpace(config.CameraUploadPath))
+            var path = config.CameraUploadPath;
+            if (string.IsNullOrWhiteSpace(path))
             {
-                return config.CameraUploadPath;
+                path = DefaultCameraUploadsPath;
             }
 
-            var path = DefaultCameraUploadsPath;
-
             if (config.EnableCameraUploadSubfolders)
             {
                 path = Path.Combine(path, _fileSystem.GetValidFilename(device.Name));

+ 29 - 6
Emby.Server.Implementations/Library/LibraryManager.cs

@@ -409,18 +409,41 @@ namespace Emby.Server.Implementations.Library
 
             if (options.DeleteFileLocation && locationType != LocationType.Remote && locationType != LocationType.Virtual)
             {
+                // Assume only the first is required
+                // Add this flag to GetDeletePaths if required in the future
+                var isRequiredForDelete = true;
+
                 foreach (var fileSystemInfo in item.GetDeletePaths().ToList())
                 {
-                    if (fileSystemInfo.IsDirectory)
+                    try
                     {
-                        _logger.Debug("Deleting path {0}", fileSystemInfo.FullName);
-                        _fileSystem.DeleteDirectory(fileSystemInfo.FullName, true);
+                        if (fileSystemInfo.IsDirectory)
+                        {
+                            _logger.Debug("Deleting path {0}", fileSystemInfo.FullName);
+                            _fileSystem.DeleteDirectory(fileSystemInfo.FullName, true);
+                        }
+                        else
+                        {
+                            _logger.Debug("Deleting path {0}", fileSystemInfo.FullName);
+                            _fileSystem.DeleteFile(fileSystemInfo.FullName);
+                        }
                     }
-                    else
+                    catch (IOException)
                     {
-                        _logger.Debug("Deleting path {0}", fileSystemInfo.FullName);
-                        _fileSystem.DeleteFile(fileSystemInfo.FullName);
+                        if (isRequiredForDelete)
+                        {
+                            throw;
+                        }
                     }
+                    catch (UnauthorizedAccessException)
+                    {
+                        if (isRequiredForDelete)
+                        {
+                            throw;
+                        }
+                    }
+
+                    isRequiredForDelete = false;
                 }
 
                 if (parent != null)

+ 5 - 0
Emby.Server.Implementations/Library/UserManager.cs

@@ -434,6 +434,11 @@ namespace Emby.Server.Implementations.Library
                 Policy = user.Policy
             };
 
+            if (!hasPassword && Users.Count() == 1)
+            {
+                dto.EnableAutoLogin = true;
+            }
+
             var image = user.GetImageInfo(ImageType.Primary, 0);
 
             if (image != null)

+ 1 - 0
Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs

@@ -596,6 +596,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
             else
             {
                 var mediaSource = GetMediaSource(info, hdhrId, channelInfo, profile);
+                //var modelInfo = await GetModelInfo(info, false, cancellationToken).ConfigureAwait(false);
 
                 return new HdHomerunHttpStream(mediaSource, streamId, _fileSystem, _httpClient, Logger, Config.ApplicationPaths, _appHost);
                 //return new HdHomerunUdpStream(mediaSource, streamId, new HdHomerunChannelCommands(hdhomerunChannel.Number), modelInfo.TunerCount, _fileSystem, _httpClient, Logger, Config.ApplicationPaths, _appHost, _socketFactory, _networkManager);

+ 24 - 1
Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs

@@ -145,7 +145,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
                     {
                         var channelMsg = CreateSetMessage(i, command.Item1, command.Item2, _lockkey.Value);
                         await tcpClient.SendAsync(channelMsg, channelMsg.Length, ipEndPoint, cancellationToken).ConfigureAwait(false);
-                        await tcpClient.ReceiveAsync(cancellationToken).ConfigureAwait(false);
+                        response = await tcpClient.ReceiveAsync(cancellationToken).ConfigureAwait(false);
                         // parse response to make sure it worked
                         if (!ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal))
                         {
@@ -172,6 +172,29 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
             }
         }
 
+        public async Task ChangeChannel(IHdHomerunChannelCommands commands, CancellationToken cancellationToken)
+        {
+            if (!_lockkey.HasValue)
+                return;
+
+            using (var tcpClient = _socketFactory.CreateTcpSocket(_remoteIp, HdHomeRunPort))
+            {
+                var commandList = commands.GetCommands();
+                foreach (Tuple<string, string> command in commandList)
+                {
+                    var channelMsg = CreateSetMessage(_activeTuner, command.Item1, command.Item2, _lockkey.Value);
+                    await tcpClient.SendAsync(channelMsg, channelMsg.Length, new IpEndPointInfo(_remoteIp, HdHomeRunPort), cancellationToken).ConfigureAwait(false);
+                    var response = await tcpClient.ReceiveAsync(cancellationToken).ConfigureAwait(false);
+                    // parse response to make sure it worked
+                    string returnVal;
+                    if (!ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal))
+                    {
+                        return;
+                    }
+                }
+            }
+        }
+
         public async Task StopStreaming()
         {
             if (!_lockkey.HasValue)

+ 5 - 0
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -179,6 +179,11 @@ namespace MediaBrowser.Controller.MediaEncoding
             {
                 return null;
             }
+            // Seeing reported failures here, not sure yet if this is related to specfying input format
+            if (string.Equals(container, "m4v", StringComparison.OrdinalIgnoreCase))
+            {
+                return null;
+            }
 
             return container;
         }

+ 3 - 1
MediaBrowser.Model/Dto/UserDto.cs

@@ -89,7 +89,9 @@ namespace MediaBrowser.Model.Dto
         /// </summary>
         /// <value><c>true</c> if this instance has configured easy password; otherwise, <c>false</c>.</value>
         public bool HasConfiguredEasyPassword { get; set; }
-        
+
+        public bool? EnableAutoLogin { get; set; }
+
         /// <summary>
         /// Gets or sets the last login date.
         /// </summary>

+ 1 - 1
SharedVersion.cs

@@ -1,3 +1,3 @@
 using System.Reflection;
 
-[assembly: AssemblyVersion("3.2.5.7")]
+[assembly: AssemblyVersion("3.2.6.1")]