]> granicus.if.org Git - handbrake/commitdiff
WinGui: Fix an issue which prevented the GUI from parsing presets with hb_presets_rea...
authorsr55 <sr55.hb@outlook.com>
Fri, 13 Jan 2017 21:44:08 +0000 (21:44 +0000)
committersr55 <sr55.hb@outlook.com>
Fri, 13 Jan 2017 21:44:35 +0000 (21:44 +0000)
Also made the parser more tolerant to casing and unset and unexpected values.

win/CS/HandBrake.ApplicationServices/Interop/HandBrakePresetService.cs
win/CS/HandBrakeWPF/Services/Presets/Factories/JsonPresetFactory.cs
win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs

index 38ebb35156b87622d46955af46ccf97606744e6e..adc9bcbd633e5fcb0d0985687e784bffc7f48e76 100644 (file)
@@ -66,7 +66,14 @@ namespace HandBrake.ApplicationServices.Interop
 \r
             if (!string.IsNullOrEmpty(presetJson))\r
             {\r
+                // Check to see if we have a list of presets.\r
+                if (presetJson.StartsWith("["))\r
+                {\r
+                    presetJson = "{ \"PresetList\":" + presetJson + " } ";\r
+                }\r
+\r
                 PresetTransportContainer preset = JsonConvert.DeserializeObject<PresetTransportContainer>(presetJson);\r
+\r
                 return preset;\r
             }\r
 \r
index f3b1bd56fe9a6bad35e3f8593a283e8e5d971986..4a2c973c677ccb72a852bb89941c50c5f2cac223 100644 (file)
@@ -309,7 +309,7 @@ namespace HandBrakeWPF.Services.Presets.Factories
                     preset.Task.VideoTunes.Add(new VideoTune(item, item));\r
                 }\r
             }\r
-            preset.Task.Framerate = importedPreset.VideoFramerate == "auto" || string.IsNullOrEmpty(importedPreset.VideoFramerate)\r
+            preset.Task.Framerate = importedPreset.VideoFramerate == "auto" || importedPreset.VideoFramerate == "Same as source" || string.IsNullOrEmpty(importedPreset.VideoFramerate)\r
                                  ? (double?)null\r
                                  : double.Parse(importedPreset.VideoFramerate, CultureInfo.InvariantCulture);\r
             string parsedValue = importedPreset.VideoFramerateMode;\r
@@ -403,7 +403,7 @@ namespace HandBrakeWPF.Services.Presets.Factories
                     track.MixDown = HandBrakeEncoderHelpers.GetMixdown(audioTrack.AudioMixdown);\r
 \r
                     // track.AudioNormalizeMixLevel = audioTrack.AudioNormalizeMixLevel;\r
-                    track.SampleRate = audioTrack.AudioSamplerate == "auto" ? 0 : double.Parse(audioTrack.AudioSamplerate);\r
+                    track.SampleRate = string.IsNullOrEmpty(audioTrack.AudioSamplerate) || audioTrack.AudioSamplerate.ToLower() == "auto" ? 0 : double.Parse(audioTrack.AudioSamplerate);\r
 \r
                     track.EncoderRateType = audioTrack.AudioTrackQualityEnable ? AudioEncoderRateType.Quality : AudioEncoderRateType.Bitrate;\r
                     track.Quality = audioTrack.AudioTrackQuality;\r
index 39aab77e0e586ccf752c05fac21e964631b89a0a..32f0b8dbda63f6b845e2955782073a63658d48d4 100644 (file)
@@ -713,8 +713,8 @@ namespace HandBrakeWPF.ViewModels
                 HBVideoEncoder encoder = HandBrakeEncoderHelpers.VideoEncoders.FirstOrDefault(s => s.ShortName == EnumHelper<VideoEncoder>.GetShortName(this.SelectedVideoEncoder));\r
                 if (encoder != null)\r
                 {\r
-                    string preset = encoder.Presets[value];\r
-                    this.VideoPreset = new VideoPreset(preset, preset);\r
+                    string preset = value >= 0 ? encoder.Presets[value] : null;\r
+                    this.VideoPreset = preset != null ?new VideoPreset(preset, preset) : this.VideoPresets.FirstOrDefault();\r
                 }\r
 \r
                 this.NotifyOfPropertyChange(() => this.VideoPresetValue);\r