Explorar o código

expand on hardware decoding options

Luke Pulverenti %!s(int64=7) %!d(string=hai) anos
pai
achega
cf350f3b7e

+ 2 - 6
Emby.Server.Implementations/ApplicationHost.cs

@@ -1590,14 +1590,10 @@ namespace Emby.Server.Implementations
         /// <returns>Task{CheckForUpdateResult}.</returns>
         public override async Task<CheckForUpdateResult> CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress<double> progress)
         {
-            var cacheLength = TimeSpan.FromHours(3);
+            var cacheLength = TimeSpan.FromHours(1);
             var updateLevel = SystemUpdateLevel;
 
-            if (updateLevel == PackageVersionClass.Beta)
-            {
-                cacheLength = TimeSpan.FromHours(1);
-            }
-            else if (updateLevel == PackageVersionClass.Dev)
+            if (updateLevel != PackageVersionClass.Release)
             {
                 cacheLength = TimeSpan.FromMinutes(5);
             }

+ 2 - 45
Emby.Server.Implementations/Data/CleanDatabaseScheduledTask.cs

@@ -11,9 +11,6 @@ using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Common.Configuration;
 using MediaBrowser.Model.IO;
-using MediaBrowser.Controller.Channels;
-using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Model.Tasks;
 
 namespace Emby.Server.Implementations.Data
 {
@@ -34,31 +31,9 @@ namespace Emby.Server.Implementations.Data
             _appPaths = appPaths;
         }
 
-        public string Name
+        public Task Run(IProgress<double> progress, CancellationToken cancellationToken)
         {
-            get { return "Clean Database"; }
-        }
-
-        public string Description
-        {
-            get { return "Deletes obsolete content from the database."; }
-        }
-
-        public string Category
-        {
-            get { return "Library"; }
-        }
-
-        public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
-        {
-            // Ensure these objects are lazy loaded.
-            // Without this there is a deadlock that will need to be investigated
-            var rootChildren = _libraryManager.RootFolder.Children.ToList();
-            rootChildren = _libraryManager.GetUserRootFolder().Children.ToList();
-
-            await CleanDeadItems(cancellationToken, progress).ConfigureAwait(false);
-
-            //await _itemRepo.UpdateInheritedValues(cancellationToken).ConfigureAwait(false);
+            return CleanDeadItems(cancellationToken, progress);
         }
 
         private async Task CleanDeadItems(CancellationToken cancellationToken, IProgress<double> progress)
@@ -98,23 +73,5 @@ namespace Emby.Server.Implementations.Data
 
             progress.Report(100);
         }
-
-        /// <summary>
-        /// Creates the triggers that define when the task will run
-        /// </summary>
-        /// <returns>IEnumerable{BaseTaskTrigger}.</returns>
-        public IEnumerable<TaskTriggerInfo> GetDefaultTriggers()
-        {
-            return new[] { 
-            
-                // Every so often
-                new TaskTriggerInfo { Type = TaskTriggerInfo.TriggerInterval, IntervalTicks = TimeSpan.FromHours(24).Ticks}
-            };
-        }
-
-        public string Key
-        {
-            get { return "CleanDatabase"; }
-        }
     }
 }

+ 1 - 1
MediaBrowser.Controller/Entities/Movies/BoxSet.cs

@@ -116,7 +116,7 @@ namespace MediaBrowser.Controller.Entities.Movies
             {
                 if (IsLegacyBoxSet)
                 {
-                    return true;
+                    return false;
                 }
 
                 return false;

+ 13 - 14
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -1788,8 +1788,7 @@ namespace MediaBrowser.Controller.MediaEncoding
 
             if (videoStream != null &&
                 !string.IsNullOrWhiteSpace(videoStream.Codec) &&
-                !string.IsNullOrWhiteSpace(encodingOptions.HardwareAccelerationType) &&
-                encodingOptions.EnableHardwareDecoding)
+                !string.IsNullOrWhiteSpace(encodingOptions.HardwareAccelerationType))
             {
                 if (string.Equals(encodingOptions.HardwareAccelerationType, "qsv", StringComparison.OrdinalIgnoreCase))
                 {
@@ -1797,7 +1796,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                     {
                         case "avc":
                         case "h264":
-                            if (_mediaEncoder.SupportsDecoder("h264_qsv"))
+                            if (_mediaEncoder.SupportsDecoder("h264_qsv") && encodingOptions.HardwareDecodingCodecs.Contains("h264", StringComparer.OrdinalIgnoreCase))
                             {
                                 // qsv decoder does not support 10-bit input
                                 if ((videoStream.BitDepth ?? 8) > 8)
@@ -1807,21 +1806,21 @@ namespace MediaBrowser.Controller.MediaEncoding
                                 return "-c:v h264_qsv ";
                             }
                             break;
-                        //case "hevc":
-                        //case "h265":
-                        //    if (_mediaEncoder.SupportsDecoder("hevc_qsv"))
-                        //    {
-                        //        return "-c:v hevc_qsv ";
-                        //    }
-                        //    break;
+                        case "hevc":
+                        case "h265":
+                            if (_mediaEncoder.SupportsDecoder("hevc_qsv") && encodingOptions.HardwareDecodingCodecs.Contains("hevc", StringComparer.OrdinalIgnoreCase))
+                            {
+                                return "-c:v hevc_qsv ";
+                            }
+                            break;
                         case "mpeg2video":
-                            if (_mediaEncoder.SupportsDecoder("mpeg2_qsv"))
+                            if (_mediaEncoder.SupportsDecoder("mpeg2_qsv") && encodingOptions.HardwareDecodingCodecs.Contains("mpeg2video", StringComparer.OrdinalIgnoreCase))
                             {
                                 return "-c:v mpeg2_qsv ";
                             }
                             break;
                         case "vc1":
-                            if (_mediaEncoder.SupportsDecoder("vc1_qsv"))
+                            if (_mediaEncoder.SupportsDecoder("vc1_qsv") && encodingOptions.HardwareDecodingCodecs.Contains("vc1", StringComparer.OrdinalIgnoreCase))
                             {
                                 return "-c:v vc1_qsv ";
                             }
@@ -1835,14 +1834,14 @@ namespace MediaBrowser.Controller.MediaEncoding
                     {
                         case "avc":
                         case "h264":
-                            if (_mediaEncoder.SupportsDecoder("h264_cuvid"))
+                            if (_mediaEncoder.SupportsDecoder("h264_cuvid") && encodingOptions.HardwareDecodingCodecs.Contains("h264", StringComparer.OrdinalIgnoreCase))
                             {
                                 return "-c:v h264_cuvid ";
                             }
                             break;
                         case "hevc":
                         case "h265":
-                            if (_mediaEncoder.SupportsDecoder("hevc_cuvid"))
+                            if (_mediaEncoder.SupportsDecoder("hevc_cuvid") && encodingOptions.HardwareDecodingCodecs.Contains("hevc", StringComparer.OrdinalIgnoreCase))
                             {
                                 return "-c:v hevc_cuvid ";
                             }

+ 4 - 2
MediaBrowser.Model/Configuration/EncodingOptions.cs

@@ -13,9 +13,10 @@ namespace MediaBrowser.Model.Configuration
         public string VaapiDevice { get; set; }
         public int H264Crf { get; set; }
         public string H264Preset { get; set; }
-        public bool EnableHardwareDecoding { get; set; }
         public bool EnableHardwareEncoding { get; set; }
 
+        public string[] HardwareDecodingCodecs { get; set; }
+
         public EncodingOptions()
         {
             DownMixAudioBoost = 2;
@@ -24,8 +25,9 @@ namespace MediaBrowser.Model.Configuration
             EncodingThreadCount = -1;
             VaapiDevice = "/dev/dri/card0";
             H264Crf = 23;
-            EnableHardwareDecoding = true;
             EnableHardwareEncoding = true;
+
+            HardwareDecodingCodecs = new string[] { "h264", "mpeg2video", "vc1" };
         }
     }
 }

+ 0 - 3
MediaBrowser.Model/Sync/SyncJob.cs

@@ -105,12 +105,9 @@ namespace MediaBrowser.Model.Sync
         public string PrimaryImageItemId { get; set; }
         public string PrimaryImageTag { get; set; }
 
-        public bool EnableAutomaticResync { get; set; }
-
         public SyncJob()
         {
             RequestedItemIds = new List<string>();
-            EnableAutomaticResync = true;
         }
     }
 }

+ 1 - 1
SharedVersion.cs

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