]> granicus.if.org Git - handbrake/commitdiff
NVEnc: Add human names for encoder presets and remove currently invalid options.
authorsr55 <sr55.hb@outlook.com>
Wed, 8 Aug 2018 21:02:56 +0000 (22:02 +0100)
committersr55 <sr55.hb@outlook.com>
Wed, 8 Aug 2018 21:02:56 +0000 (22:02 +0100)
libhb/encavcodec.c
win/CS/HandBrakeWPF/Services/Encode/Factories/VideoPresetFactory.cs
win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs

index 1c853cb6068fea1b605fcc420549e6f4beaf539c..dbad69ca7801a528d2f81a84cd1402a0d842ab8b 100644 (file)
@@ -70,7 +70,7 @@ static const char * const vpx_preset_names[] =
 
 static const char * const h26x_nvenc_preset_names[] =
 {
-    "losslesshp", "lossless", "llhp", "llhq", "ll", "bd", "hq", "hp", "fast", "medium", "slow", "default", NULL
+    "llhp", "llhq", "ll", "bd", "hq", "hp", "fast", "medium", "slow", "default", NULL  // No Lossless "losslesshp", "lossless",
 };
 
 static const char * const h264_nvenc_profile_names[] =
@@ -80,7 +80,7 @@ static const char * const h264_nvenc_profile_names[] =
 
 static const char * const h265_nvenc_profile_names[] =
 {
-    "auto", "main", "main10", "rext", NULL 
+    "auto", "main", NULL // "main10", "rext"  We do not currently support 10bit encodes with this encoder. 
 };
 
 
index 491eb7c4ef7070daa56f2f2f4f8479075fff341e..e861b1f9c6cd5694d197c7ac50b9d7fe52ad69cf 100644 (file)
@@ -26,6 +26,12 @@ namespace HandBrakeWPF.Services.Encode.Factories
         /// </returns>
         public static string GetDisplayName(string shortName)
         {
+            string presetName = GetNvencPresetName(shortName);
+            if (presetName != shortName)
+            {
+                return presetName;
+            }
+
             switch (shortName)
             {
                 case "ultrafast":
@@ -59,5 +65,40 @@ namespace HandBrakeWPF.Services.Encode.Factories
 
             return shortName;
         }
+
+        public static string GetNvencPresetName(string shortName)
+        {
+            switch (shortName)
+            {
+                case "losslesshp":
+                    return "High Performance Lossless";
+                case "lossless":
+                    return "Lossless";
+                case "llhp":
+                    return "High Performance Low Latency";
+                case "llhq":
+                    return "High Quality Low Latency";
+                case "ll":
+                    return "Low Latency";
+                case "bd":
+                    return "Bluray Disk";
+                case "hq":
+                    return "High Quality";
+                case "hp":
+                    return "High Performance";
+                case "fast":
+                    return "Fast";
+                case "medium":
+                    return "Medium";
+                case "slow":
+                    return "Slow";
+                case "default":
+                    return "Default";
+                case null:
+                    return "Automatic";
+            }
+
+            return shortName;
+        }
     }
 }
index 7c14e15943a545192f9a566c4ca989af926cb65d..53f4103569a81234647dd23e93df4ecb94e1f8cd 100644 (file)
@@ -1425,6 +1425,12 @@ namespace HandBrakeWPF.ViewModels
 \r
                     this.VideoPresetMaxValue = encoder.Presets.Count - 1;\r
                     int middlePreset = (int)Math.Round((decimal)(this.VideoPresetMaxValue / 2), 0);\r
+\r
+                    if (selectedEncoder == VideoEncoder.NvencH264 || selectedEncoder == VideoEncoder.NvencH265)\r
+                    {\r
+                        middlePreset = this.VideoPresets.IndexOf(this.VideoPresets.FirstOrDefault(s => s.ShortName == "default"));\r
+                    }\r
+\r
                     this.VideoPresetValue = middlePreset;\r
                 }\r
                 else\r