From caed9f1d774a7f64ff0e71f247cd19ce7e3f6b89 Mon Sep 17 00:00:00 2001 From: sr55 Date: Sun, 25 Jan 2015 19:13:54 +0000 Subject: WinGui: - Change the internal presets.dat file which stores built-in presets to JSON. - Starting to remove the CLI handling code. - Some assembly info updates. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6812 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- .../HandBrake.ApplicationServices.csproj | 1 - .../Properties/AssemblyInfo.cs.Nightly.tmpl | 2 +- .../Properties/AssemblyInfo.cs.tmpl | 4 +- .../Utilities/QueryParserUtility.cs | 539 ------- .../Utilities/SystemInfo.cs | 31 - .../HandBrakeInterop/Properties/AssemblyInfo.cs | 6 +- win/CS/HandBrakeWPF/Presets.dat | 1656 +++++++++++++++++++- win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs | 2 +- .../HandBrakeWPF/Properties/AssemblyInfo.cs.tmpl | 2 +- .../HandBrakeWPF/Services/Presets/PresetService.cs | 69 +- 10 files changed, 1660 insertions(+), 652 deletions(-) delete mode 100644 win/CS/HandBrake.ApplicationServices/Utilities/QueryParserUtility.cs diff --git a/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj b/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj index 30740ab36..63844f7ab 100644 --- a/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj +++ b/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj @@ -170,7 +170,6 @@ - diff --git a/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.Nightly.tmpl b/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.Nightly.tmpl index edd3b7f96..1052671f7 100644 --- a/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.Nightly.tmpl +++ b/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.Nightly.tmpl @@ -16,7 +16,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("HandBrake Team")] [assembly: AssemblyProduct("HandBrake")] -[assembly: AssemblyCopyright("Copyright © 2014 HandBrake Team")] +[assembly: AssemblyCopyright("Copyright © 2003-2015 HandBrake Team")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.tmpl b/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.tmpl index 34f9eabe3..d913a2a96 100644 --- a/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.tmpl +++ b/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.tmpl @@ -16,7 +16,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("HandBrake Team")] [assembly: AssemblyProduct("HandBrake")] -[assembly: AssemblyCopyright("Copyright © 2014 HandBrake Team")] +[assembly: AssemblyCopyright("Copyright © 2003-2015 HandBrake Team")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -38,5 +38,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.11.0.$WCREV$")] +[assembly: AssemblyVersion("0.1.0.$WCREV$")] [assembly: NeutralResourcesLanguage("")] diff --git a/win/CS/HandBrake.ApplicationServices/Utilities/QueryParserUtility.cs b/win/CS/HandBrake.ApplicationServices/Utilities/QueryParserUtility.cs deleted file mode 100644 index 4955cc3ef..000000000 --- a/win/CS/HandBrake.ApplicationServices/Utilities/QueryParserUtility.cs +++ /dev/null @@ -1,539 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. -// -// -// Parse a CLI Query -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace HandBrake.ApplicationServices.Utilities -{ - using System; - using System.Collections.ObjectModel; - using System.Globalization; - using System.Linq; - using System.Text.RegularExpressions; - - using HandBrake.ApplicationServices.Model; - using HandBrake.ApplicationServices.Services.Encode.Model; - using HandBrake.ApplicationServices.Services.Encode.Model.Models; - using HandBrake.ApplicationServices.Services.Encode.Model.Models.Video; - using HandBrake.Interop.Model; - using HandBrake.Interop.Model.Encoding; - - /// - /// Parse a CLI Query - /// - public class QueryParserUtility - { - /** - * TODO - * - Add support for PointToPointMode = Seconds or Frames - **/ - - /// - /// The Culture - /// - private static readonly CultureInfo Culture = new CultureInfo("en-US", false); - - /// - /// Takes in a query which can be in any order and parses it. - /// All varibles are then set so they can be used elsewhere. - /// - /// A ClI Query - /// A Parsed Query - public static EncodeTask Parse(string input) - { - var parsed = new EncodeTask(); - - #region Regular Expressions - - // Source - Match title = Regex.Match(input, @"-t ([0-9]+)"); - Match chapters = Regex.Match(input, @"-c ([0-9-]+)"); - - // Output Settings - Match format = Regex.Match(input, @"-f ([a-zA-Z0-9]+)"); - Match grayscale = Regex.Match(input, @" -g"); - Match ipodAtom = Regex.Match(input, @" -I"); - - // Picture Settings Tab - Match width = Regex.Match(input, @"-w ([0-9]+)"); - Match height = Regex.Match(input, @"-l ([0-9]+)"); - Match maxWidth = Regex.Match(input, @"-X ([0-9]+)"); - Match maxHeight = Regex.Match(input, @"-Y ([0-9]+)"); - Match crop = Regex.Match(input, @"--crop ([0-9]*):([0-9]*):([0-9]*):([0-9]*)"); - - Match looseAnamorphic = Regex.Match(input, @"--loose-anamorphic"); - Match strictAnamorphic = Regex.Match(input, @"--strict-anamorphic"); - Match customAnamorphic = Regex.Match(input, @"--custom-anamorphic"); - - Match keepDisplayAsect = Regex.Match(input, @"--keep-display-aspect"); - Match displayWidth = Regex.Match(input, @"--display-width ([0-9]*)"); - Match pixelAspect = Regex.Match(input, @"--pixel-aspect ([0-9]*):([0-9]*)"); - Match modulus = Regex.Match(input, @"--modulus ([0-9]*)"); - - // Picture Settings - Filters - Match decomb = Regex.Match(input, @" --decomb"); - Match decombValue = Regex.Match(input, @" --decomb=([a-zA-Z0-9.:""\\]*)"); - Match deinterlace = Regex.Match(input, @"--deinterlace=\""([a-zA-Z0-9.:]*)\"""); - Match denoise = Regex.Match(input, @"--denoise=\""([a-zA-Z0-9.:]*)\"""); - Match nlmeans = Regex.Match(input, @"--nlmeans=\""([a-zA-Z0-9.:]*)\"""); - Match nlmeansTune = Regex.Match(input, @"--nlmeans-tune=\""([a-zA-Z0-9.:]*)\"""); - Match deblock = Regex.Match(input, @"--deblock=([0-9:]*)"); - Match detelecine = Regex.Match(input, @"--detelecine"); - Match detelecineValue = Regex.Match(input, @" --detelecine=\""([a-zA-Z0-9.:]*)\"""); - - // Video Settings Tab - Match videoEncoder = Regex.Match(input, @"-e ([a-zA-Z0-9]+)"); - Match videoFramerate = Regex.Match(input, @"-r ([0-9.]+)"); - Match videoBitrate = Regex.Match(input, @"-b ([0-9]+)"); - Match videoQuality = Regex.Match(input, @"-q ([0-9.]+)"); - Match twoPass = Regex.Match(input, @" -2"); - Match turboFirstPass = Regex.Match(input, @" -T"); - Match optimizeMP4 = Regex.Match(input, @" -O"); - Match pfr = Regex.Match(input, @" --pfr"); - Match cfr = Regex.Match(input, @" --cfr"); - - // Audio Settings Tab - Match audioTrackMixes = Regex.Match(input, @"-6 ([0-9a-zA-Z,]+)"); - Match audioEncoders = Regex.Match(input, @"-E ([a-zA-Z0-9+,:\*]+)"); - Match audioBitrates = Regex.Match(input, @"-B ([0-9a-zA-Z,]+)"); // Auto = a-z - Match audioSampleRates = Regex.Match(input, @"-R ([0-9a-zA-Z.,]+)"); // Auto = a-z - Match drcValues = Regex.Match(input, @"-D ([0-9.,]+)"); - Match gainValues = Regex.Match(input, @"--gain=([0-9.,-]+)"); - Match fallbackEncoder = Regex.Match(input, @"--audio-fallback([a-zA-Z0-9:=\s ]*)"); - Match allowedPassthru = Regex.Match(input, @"--audio-copy-mask([a-zA-Z0-9:,=\s ]*)"); - - // Chapters Tab - Match chapterMarkers = Regex.Match(input, @" -m"); - Match chapterMarkersFileMode = Regex.Match(input, @"--markers"); - - // Advanced Tab - Match advanced = Regex.Match(input, @"-x ([.,/a-zA-Z0-9=:-]*)"); - Match videoLevel = Regex.Match(input, @"--encoder-level([=a-zA-Z0-9.\s ]*)"); - Match videoProfile = Regex.Match(input, @"--encoder-profile([=a-zA-Z0-9\s ]*)"); - Match videoTune = Regex.Match(input, @"--encoder-tune([=,a-zA-Z0-9\s ]*)"); - Match videoPreset = Regex.Match(input, @"--encoder-preset([=a-zA-Z0-9\s ]*)"); - - #endregion - - #region Set Varibles - - try - { - #region Source Tab - - if (title.Success) - { - parsed.Title = int.Parse(title.ToString().Replace("-t ", string.Empty)); - } - - if (chapters.Success) - { - parsed.PointToPointMode = PointToPointMode.Chapters; - string[] actTitles = chapters.ToString().Replace("-c ", string.Empty).Split('-'); - parsed.StartPoint = int.Parse(actTitles[0]); - if (actTitles.Length > 1) - { - parsed.EndPoint = int.Parse(actTitles[1]); - } - - if ((parsed.StartPoint == 1) && (parsed.EndPoint == 0)) - { - parsed.EndPoint = parsed.StartPoint; - } - } - - #endregion - - #region Output Settings - - if (format.Success) - { - parsed.OutputFormat = Converters.GetFileFormat(format.Groups[1].ToString()); - } - parsed.IPod5GSupport = ipodAtom.Success; - parsed.OptimizeMP4 = optimizeMP4.Success; - - #endregion - - #region Picture Tab - - if (width.Success) - parsed.Width = int.Parse(width.Groups[0].Value.Replace("-w ", string.Empty)); - - if (height.Success) - parsed.Height = int.Parse(height.Groups[0].Value.Replace("-l ", string.Empty)); - - if (maxWidth.Success) - parsed.MaxWidth = int.Parse(maxWidth.Groups[0].Value.Replace("-X ", string.Empty)); - - if (maxHeight.Success) - parsed.MaxHeight = int.Parse(maxHeight.Groups[0].Value.Replace("-Y ", string.Empty)); - - if (crop.Success) - { - try - { - string values = crop.ToString().Replace("--crop ", string.Empty); - string[] actCropValues = values.Split(':'); - parsed.Cropping = new Cropping( - int.Parse(actCropValues[0]), - int.Parse(actCropValues[1]), - int.Parse(actCropValues[2]), - int.Parse(actCropValues[3])); - parsed.HasCropping = true; - } - catch (Exception) - { - parsed.Cropping = null; - parsed.HasCropping = false; - // No need to do anything. - } - } - - if (strictAnamorphic.Success) - parsed.Anamorphic = Anamorphic.Strict; - else if (looseAnamorphic.Success) - parsed.Anamorphic = Anamorphic.Loose; - else if (customAnamorphic.Success) - parsed.Anamorphic = Anamorphic.Custom; - else - parsed.Anamorphic = Anamorphic.None; - - parsed.KeepDisplayAspect = keepDisplayAsect.Success; - - if (displayWidth.Success) - parsed.DisplayWidth = - double.Parse(displayWidth.Groups[0].Value.Replace("--display-width ", string.Empty), Culture); - - if (pixelAspect.Success) - parsed.PixelAspectX = int.Parse(pixelAspect.Groups[1].Value.Replace("--pixel-aspect ", string.Empty)); - - if (pixelAspect.Success && pixelAspect.Groups.Count >= 3) - parsed.PixelAspectY = int.Parse(pixelAspect.Groups[2].Value.Replace("--pixel-aspect ", string.Empty)); - - if (modulus.Success) - parsed.Modulus = int.Parse(modulus.Groups[0].Value.Replace("--modulus ", string.Empty)); - - #endregion - - #region Filters - - parsed.Decomb = Decomb.Off; - if (decomb.Success) - { - parsed.Decomb = Decomb.Default; - if (decombValue.Success) - { - string value = decombValue.ToString().Replace("--decomb=", string.Empty).Replace("\"", string.Empty).Trim(); - - if (value == "bob") - { - parsed.Decomb = Decomb.Bob; - } - else if (value == "fast") - { - parsed.Decomb = Decomb.Fast; - } - else - { - parsed.CustomDecomb = value; - parsed.Decomb = parsed.CustomDecomb == "7:2:6:9:1:80" ? Decomb.Fast : Decomb.Custom; - } - } - } - - parsed.Deinterlace = Deinterlace.Off; - if (deinterlace.Success) - { - switch (deinterlace.ToString().Replace("--deinterlace=", string.Empty).Replace("\"", string.Empty).ToLower()) - { - case "fast": - parsed.Deinterlace = Deinterlace.Fast; - break; - case "slow": - parsed.Deinterlace = Deinterlace.Slow; - break; - case "slower": - parsed.Deinterlace = Deinterlace.Slower; - break; - case "bob": - parsed.Deinterlace = Deinterlace.Bob; - break; - default: - parsed.Deinterlace = Deinterlace.Custom; - parsed.CustomDeinterlace = deinterlace.ToString().Replace("--deinterlace=", string.Empty).Replace("\"", string.Empty).ToLower(); - break; - } - } - - parsed.Denoise = Denoise.Off; - if (denoise.Success) - { - parsed.Denoise = Denoise.hqdn3d; - switch (denoise.ToString().Replace("--denoise=", string.Empty).Replace("\"", string.Empty)) - { - case "weak": - parsed.DenoisePreset = DenoisePreset.Weak; - break; - case "medium": - parsed.DenoisePreset = DenoisePreset.Medium; - break; - case "strong": - parsed.DenoisePreset = DenoisePreset.Strong; - break; - default: - parsed.DenoisePreset = DenoisePreset.Custom; - parsed.CustomDenoise = denoise.ToString().Replace("--denoise=", string.Empty).Replace("\"", string.Empty); - break; - } - } - - if (nlmeans.Success) - { - parsed.Denoise = Denoise.NLMeans; - switch (nlmeans.ToString().Replace("--nlmeans=", string.Empty).Replace("\"", string.Empty)) - { - case "ultralight": - parsed.DenoisePreset = DenoisePreset.Ultralight; - break; - case "light": - parsed.DenoisePreset = DenoisePreset.Light; - break; - case "medium": - parsed.DenoisePreset = DenoisePreset.Medium; - break; - case "strong": - parsed.DenoisePreset = DenoisePreset.Strong; - break; - } - - if (nlmeansTune.Success) - { - switch (nlmeansTune.ToString().Replace("--nlmeans-tune=", string.Empty).Replace("\"", string.Empty)) - { - case "animation": - parsed.DenoiseTune = DenoiseTune.Animation; - break; - case "film": - parsed.DenoiseTune = DenoiseTune.Film; - break; - case "grain": - parsed.DenoiseTune = DenoiseTune.Grain; - break; - case "highmotion": - parsed.DenoiseTune = DenoiseTune.HighMotion; - break; - } - } - } - - parsed.Deblock = 0; - if (deblock.Success) - { - int dval; - int.TryParse(deblock.ToString().Replace("--deblock=", string.Empty), out dval); - parsed.Deblock = dval; - } - - parsed.Detelecine = Detelecine.Off; - if (detelecine.Success) - { - parsed.Detelecine = Detelecine.Default; - if (detelecineValue.Success) - { - parsed.CustomDetelecine = detelecineValue.ToString().Replace("--detelecine=", string.Empty).Replace("\"", string.Empty); - parsed.Detelecine = Detelecine.Custom; - } - } - - #endregion - - #region Video Settings Tab - - parsed.VideoEncoder = videoEncoder.Success - ? Converters.GetVideoEncoder(videoEncoder.ToString().Replace("-e ", string.Empty)) - : VideoEncoder.FFMpeg; - - if (videoFramerate.Success) - { - double fps; - double.TryParse(videoFramerate.Groups[1].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture, out fps); - parsed.Framerate = fps; - } - - if (pfr.Success) - parsed.FramerateMode = FramerateMode.PFR; - else if (cfr.Success) - parsed.FramerateMode = FramerateMode.CFR; - else - parsed.FramerateMode = FramerateMode.VFR; // Default to VFR - - parsed.Grayscale = grayscale.Success; - parsed.TwoPass = twoPass.Success; - parsed.TurboFirstPass = turboFirstPass.Success; - - if (videoBitrate.Success) - { - parsed.VideoEncodeRateType = VideoEncodeRateType.AverageBitrate; - parsed.VideoBitrate = int.Parse(videoBitrate.ToString().Replace("-b ", string.Empty)); - } - - if (videoQuality.Success) - { - float quality = float.Parse(videoQuality.ToString().Replace("-q ", string.Empty), Culture); - parsed.Quality = quality; - - parsed.VideoEncodeRateType = VideoEncodeRateType.ConstantQuality; - } - - #endregion - - #region Audio Tab - - // Find out how many tracks we need to add by checking how many encoders or audio tracks are selected. - int encoderCount = 0; - if (audioEncoders.Success) - { - string[] audioDataCounters = audioEncoders.ToString().Replace("-E ", string.Empty).Split(','); - encoderCount = audioDataCounters.Length; - } - - // Get the data from the regular expression results - string[] trackMixes = null; - string[] trackEncoders = null; - string[] trackBitrates = null; - string[] trackSamplerates = null; - string[] trackDRCvalues = null; - string[] trackGainValues = null; - - if (audioTrackMixes.Success) - trackMixes = audioTrackMixes.ToString().Replace("-6 ", string.Empty).Split(','); - if (audioEncoders.Success) - trackEncoders = audioEncoders.ToString().Replace("-E ", string.Empty).Split(','); - if (audioBitrates.Success) - trackBitrates = audioBitrates.ToString().Replace("-B ", string.Empty).Split(','); - if (audioSampleRates.Success) - trackSamplerates = audioSampleRates.ToString().Replace("-R ", string.Empty).Split(','); - if (drcValues.Success) - trackDRCvalues = drcValues.ToString().Replace("-D ", string.Empty).Split(','); - if (gainValues.Success) - trackGainValues = gainValues.ToString().Replace("--gain=", string.Empty).Split(','); - - // Create new Audio Track Classes and store them in the ArrayList - ObservableCollection allAudioTrackInfo = new ObservableCollection(); - for (int x = 0; x < encoderCount; x++) - { - AudioTrack track = new AudioTrack(); - - if (trackMixes != null) - if (trackMixes.Length >= (x + 1)) // Audio Mix - track.MixDown = Converters.GetAudioMixDown(Converters.GetMixDown(trackMixes[x].Trim())); - - if (trackEncoders != null) - if (trackEncoders.Length >= (x + 1)) // Audio Mix - track.Encoder = Converters.GetAudioEncoderFromCliString(trackEncoders[x].Trim()); - - if (trackBitrates != null) - if (trackBitrates.Length >= (x + 1)) // Audio Encoder - track.Bitrate = int.Parse(trackBitrates[x].Trim() == "auto" ? "0" : trackBitrates[x].Trim()); - - if (trackSamplerates != null) - if (trackSamplerates.Length >= (x + 1)) // Audio SampleRate - track.SampleRate = double.Parse(trackSamplerates[x].Replace("Auto", "0").Trim(), Culture); - - if (trackDRCvalues != null) - if (trackDRCvalues.Length >= (x + 1)) // Audio DRC Values - track.DRC = double.Parse(trackDRCvalues[x].Trim(), Culture); - - if (trackGainValues != null) - if (trackGainValues.Length >= (x + 1)) // Audio DRC Values - track.Gain = int.Parse(trackGainValues[x].Trim()); - - allAudioTrackInfo.Add(track); - } - - parsed.AudioTracks = allAudioTrackInfo; - - if (fallbackEncoder.Success) - { - parsed.AllowedPassthruOptions.AudioEncoderFallback = - Converters.GetAudioEncoderFromCliString(fallbackEncoder.Groups[1].ToString().Trim()); - } - - if (allowedPassthru.Success) - { - string[] allowedEncoders = allowedPassthru.Groups[1].ToString().Trim().Split(','); - - parsed.AllowedPassthruOptions.AudioAllowAACPass = allowedEncoders.Contains("aac"); - parsed.AllowedPassthruOptions.AudioAllowAC3Pass = allowedEncoders.Contains("ac3"); - parsed.AllowedPassthruOptions.AudioAllowDTSHDPass = allowedEncoders.Contains("dtshd"); - parsed.AllowedPassthruOptions.AudioAllowDTSPass = allowedEncoders.Contains("dts"); - parsed.AllowedPassthruOptions.AudioAllowMP3Pass = allowedEncoders.Contains("mp3"); - } - - #endregion - - #region Chapters Tab - - if (chapterMarkersFileMode.Success || chapterMarkers.Success) - parsed.IncludeChapterMarkers = true; - - #endregion - - #region Advanced and other - - if (advanced.Success) - parsed.AdvancedEncoderOptions = advanced.ToString().Replace("-x ", string.Empty); - - if (videoPreset.Success) - { - string preset = videoPreset.ToString().Replace("--encoder-preset", string.Empty).Replace("=", string.Empty).Trim(); - parsed.VideoPreset = new VideoPreset(preset, preset); - } - - if (videoProfile.Success) - { - string profile = videoProfile.ToString().Replace("--encoder-profile", string.Empty).Replace("=", string.Empty).Trim(); - parsed.VideoProfile = new VideoProfile(profile, profile); - } - - if (videoLevel.Success) - { - string level = videoLevel.ToString().Replace("--encoder-level", string.Empty).Replace("=", string.Empty).Trim(); - parsed.VideoLevel = new VideoLevel(level, level); - } - - if (videoTune.Success) - { - string tuneOptions = videoTune.ToString().Replace("--encoder-tune", string.Empty).Replace("=", string.Empty).Trim(); - - if (tuneOptions.Contains("fastdecode")) - { - parsed.VideoTunes.Add(new VideoTune("fastdecode", "fastdecode")); - } - - // Remove these options. They are not in the dropdown. - tuneOptions = tuneOptions.Replace("fastdecode", string.Empty).Replace(",", string.Empty); - if (!string.IsNullOrEmpty(tuneOptions.Trim())) - { - parsed.VideoTunes.Add(new VideoTune(tuneOptions, tuneOptions)); - } - } - - #endregion - } - catch (Exception exc) - { - throw new Exception("An error has occured in the QueryParser Utility.", exc); - } - - #endregion - - return parsed; - } - } -} \ No newline at end of file diff --git a/win/CS/HandBrake.ApplicationServices/Utilities/SystemInfo.cs b/win/CS/HandBrake.ApplicationServices/Utilities/SystemInfo.cs index df1211528..7ec730330 100644 --- a/win/CS/HandBrake.ApplicationServices/Utilities/SystemInfo.cs +++ b/win/CS/HandBrake.ApplicationServices/Utilities/SystemInfo.cs @@ -12,7 +12,6 @@ namespace HandBrake.ApplicationServices.Utilities using System; using System.Collections.Generic; using System.Management; - using System.Text.RegularExpressions; using System.Windows.Forms; using HandBrake.Interop.HbLib; @@ -87,36 +86,6 @@ namespace HandBrake.ApplicationServices.Utilities } } - /// - /// Gets a value indicating whether is hsw or newer. - /// - public static bool IsHswOrNewer - { - get - { - // TODO replace with a call to libhb - string cpu = GetCpuCount.ToString(); - if (cpu.Contains("Intel")) - { - Match match = Regex.Match(cpu, "([0-9]{4})"); - if (match.Success) - { - string cpuId = match.Groups[0].ToString(); - int cpuNumber; - if (int.TryParse(cpuId, out cpuNumber)) - { - if (cpuNumber > 4000) - { - return true; - } - } - } - } - - return false; - } - } - /// /// Gets the get gpu driver version. /// diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/Properties/AssemblyInfo.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/Properties/AssemblyInfo.cs index 15a155884..d7678dfd0 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/Properties/AssemblyInfo.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("HandBrake Team")] [assembly: AssemblyProduct("HandBrake.Interop")] -[assembly: AssemblyCopyright("Copyright © 2014 HandBrake Team")] +[assembly: AssemblyCopyright("Copyright © 2015 HandBrake Team")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.52.0.0")] -[assembly: AssemblyFileVersion("1.52.0.0")] +[assembly: AssemblyVersion("2.0.0.0")] +[assembly: AssemblyFileVersion("2.0.0.0")] diff --git a/win/CS/HandBrakeWPF/Presets.dat b/win/CS/HandBrakeWPF/Presets.dat index 0edf6b02f..9ecb25fa9 100644 --- a/win/CS/HandBrakeWPF/Presets.dat +++ b/win/CS/HandBrakeWPF/Presets.dat @@ -1,31 +1,1625 @@ -< Devices - - + Universal: -e x264 -q 20.0 -r 30 --pfr -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 720 -Y 576 --loose-anamorphic --modulus 2 -m --encoder-preset fast --encoder-profile baseline --encoder-level 3.0 - - + iPod: -e x264 -q 22.0 -r 30 --pfr -a 1 -E ffaac -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -I -X 320 -Y 240 --modulus 2 -m --encoder-preset medium --encoder-profile baseline --encoder-level 1.3 - - + iPhone & iPod touch: -e x264 -q 22.0 -r 30 --pfr -a 1 -E ffaac -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 -X 960 -Y 640 --loose-anamorphic --modulus 2 -m --encoder-preset medium --encoder-profile high --encoder-level 3.1 - - + iPad: -e x264 -q 20.0 -r 30 --pfr -a 1 -E ffaac -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 -X 1280 -Y 720 --loose-anamorphic --modulus 2 -m --encoder-preset medium --encoder-profile high --encoder-level 3.1 - - + AppleTV: -e x264 -q 20.0 -r 30 --pfr -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 -X 960 -Y 720 --loose-anamorphic --modulus 2 -m --encoder-preset medium --encoder-profile high --encoder-level 3.1 -x qpmin=4:cabac=0:ref=2:b-pyramid=none:weightb=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500 - - + AppleTV 2: -e x264 -q 20.0 -r 30 --pfr -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 -X 1280 -Y 720 --loose-anamorphic --modulus 2 -m --encoder-preset medium --encoder-profile high --encoder-level 3.1 - - + AppleTV 3: -e x264 -q 20.0 -r 30 --pfr -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 -X 1920 -Y 1080 --decomb=fast --loose-anamorphic --modulus 2 -m --encoder-preset medium --encoder-profile high --encoder-level 4.0 - - + Android: -e x264 -q 22.0 -r 30 --pfr -a 1 -E ffaac -B 128 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 720 -Y 576 --loose-anamorphic --modulus 2 --encoder-preset medium --encoder-profile main --encoder-level 3.0 - - + Android Tablet: -e x264 -q 22.0 -r 30 --pfr -a 1 -E ffaac -B 128 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 1280 -Y 720 --loose-anamorphic --modulus 2 --encoder-preset medium --encoder-profile main --encoder-level 3.1 - - + Windows Phone 8: -e x264 -q 22.0 -r 30 --pfr -a 1 -E ffaac -B 128 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 1280 -Y 720 --modulus 2 --encoder-preset medium --encoder-profile main --encoder-level 3.1 - -> - -< Regular - - + Normal: -e x264 -q 20.0 -a 1 -E ffaac -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 --loose-anamorphic --modulus 2 -m --encoder-preset veryfast --encoder-profile main --encoder-level 4.0 - - + High Profile: -e x264 -q 20.0 -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 --decomb --loose-anamorphic --modulus 2 -m --encoder-preset medium --encoder-profile high --encoder-level 4.1 - -> \ No newline at end of file +[ + { + "Category": "Devices", + "Description": "", + "IsBuildIn": true, + "IsDefault": false, + "Name": "Universal", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": false, + "Width": null, + "Height": null, + "MaxWidth": 720, + "MaxHeight": 576, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 2, + "DisplayWidth": null, + "KeepDisplayAspect": false, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 0, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 1, + "Quality": 20.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": 30.0, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "160", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + }, + { + "AudioEncoderDisplayValue": "AC3 Passthru", + "AudioMixdownDisplayValue": "Automatic", + "BitRateDisplayValue": "Auto", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 6, + "Gain": 0, + "MixDown": 2, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": true, + "CannotSetBitrate": true, + "IsLossless": true, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": true, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": null, + "VideoProfile": { + "DisplayName": "Baseline", + "ShortName": "baseline" + }, + "VideoLevel": { + "DisplayName": "3.0", + "ShortName": "3.0" + }, + "VideoPreset": { + "DisplayName": "Fast", + "ShortName": "fast" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": true, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Anamorphic: Loose, Width: \r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + }, + { + "Category": "Devices", + "Description": "", + "IsBuildIn": true, + "IsDefault": false, + "Name": "iPod", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": true, + "Width": null, + "Height": null, + "MaxWidth": 320, + "MaxHeight": 240, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 0, + "DisplayWidth": null, + "KeepDisplayAspect": true, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 0, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 1, + "Quality": 22.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": 30.0, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "160", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": true, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": null, + "VideoProfile": { + "DisplayName": "Baseline", + "ShortName": "baseline" + }, + "VideoLevel": { + "DisplayName": "1.3", + "ShortName": "1.3" + }, + "VideoPreset": { + "DisplayName": "Medium", + "ShortName": "medium" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": false, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Resolution: x\r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + }, + { + "Category": "Devices", + "Description": "", + "IsBuildIn": true, + "IsDefault": false, + "Name": "iPhone & iPod touch", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": false, + "Width": null, + "Height": null, + "MaxWidth": 960, + "MaxHeight": 640, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 2, + "DisplayWidth": null, + "KeepDisplayAspect": false, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 0, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 1, + "Quality": 22.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": 30.0, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "160", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": true, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": null, + "VideoProfile": { + "DisplayName": "High", + "ShortName": "high" + }, + "VideoLevel": { + "DisplayName": "3.1", + "ShortName": "3.1" + }, + "VideoPreset": { + "DisplayName": "Medium", + "ShortName": "medium" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": false, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Anamorphic: Loose, Width: \r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + }, + { + "Category": "Devices", + "Description": "", + "IsBuildIn": true, + "IsDefault": false, + "Name": "iPad", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": false, + "Width": null, + "Height": null, + "MaxWidth": 1280, + "MaxHeight": 720, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 2, + "DisplayWidth": null, + "KeepDisplayAspect": false, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 0, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 1, + "Quality": 20.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": 30.0, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "160", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": true, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": null, + "VideoProfile": { + "DisplayName": "High", + "ShortName": "high" + }, + "VideoLevel": { + "DisplayName": "3.1", + "ShortName": "3.1" + }, + "VideoPreset": { + "DisplayName": "Medium", + "ShortName": "medium" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": false, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Anamorphic: Loose, Width: \r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + }, + { + "Category": "Devices", + "Description": "", + "IsBuildIn": true, + "IsDefault": false, + "Name": "AppleTV", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": false, + "Width": null, + "Height": null, + "MaxWidth": 960, + "MaxHeight": 720, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 2, + "DisplayWidth": null, + "KeepDisplayAspect": false, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 0, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 1, + "Quality": 20.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": 30.0, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "160", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + }, + { + "AudioEncoderDisplayValue": "AC3 Passthru", + "AudioMixdownDisplayValue": "Automatic", + "BitRateDisplayValue": "Auto", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 6, + "Gain": 0, + "MixDown": 2, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": true, + "CannotSetBitrate": true, + "IsLossless": true, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": true, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": "qpmin=4:cabac=0:ref=2:b-pyramid=none:weightb=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500", + "VideoProfile": { + "DisplayName": "High", + "ShortName": "high" + }, + "VideoLevel": { + "DisplayName": "3.1", + "ShortName": "3.1" + }, + "VideoPreset": { + "DisplayName": "Medium", + "ShortName": "medium" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": true, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Anamorphic: Loose, Width: \r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + }, + { + "Category": "Devices", + "Description": "", + "IsBuildIn": true, + "IsDefault": false, + "Name": "AppleTV 2", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": false, + "Width": null, + "Height": null, + "MaxWidth": 1280, + "MaxHeight": 720, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 2, + "DisplayWidth": null, + "KeepDisplayAspect": false, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 0, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 1, + "Quality": 20.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": 30.0, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "160", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + }, + { + "AudioEncoderDisplayValue": "AC3 Passthru", + "AudioMixdownDisplayValue": "Automatic", + "BitRateDisplayValue": "Auto", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 6, + "Gain": 0, + "MixDown": 2, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": true, + "CannotSetBitrate": true, + "IsLossless": true, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": true, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": null, + "VideoProfile": { + "DisplayName": "High", + "ShortName": "high" + }, + "VideoLevel": { + "DisplayName": "3.1", + "ShortName": "3.1" + }, + "VideoPreset": { + "DisplayName": "Medium", + "ShortName": "medium" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": true, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Anamorphic: Loose, Width: \r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + }, + { + "Category": "Devices", + "Description": "", + "IsBuildIn": true, + "IsDefault": false, + "Name": "AppleTV 3", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": false, + "Width": null, + "Height": null, + "MaxWidth": 1920, + "MaxHeight": 1080, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 2, + "DisplayWidth": null, + "KeepDisplayAspect": false, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 3, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 1, + "Quality": 20.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": 30.0, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "160", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + }, + { + "AudioEncoderDisplayValue": "AC3 Passthru", + "AudioMixdownDisplayValue": "Automatic", + "BitRateDisplayValue": "Auto", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 6, + "Gain": 0, + "MixDown": 2, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": true, + "CannotSetBitrate": true, + "IsLossless": true, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": true, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": null, + "VideoProfile": { + "DisplayName": "High", + "ShortName": "high" + }, + "VideoLevel": { + "DisplayName": "4.0", + "ShortName": "4.0" + }, + "VideoPreset": { + "DisplayName": "Medium", + "ShortName": "medium" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": true, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Anamorphic: Loose, Width: \r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + }, + { + "Category": "Devices", + "Description": "", + "IsBuildIn": true, + "IsDefault": false, + "Name": "Android", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": false, + "Width": null, + "Height": null, + "MaxWidth": 720, + "MaxHeight": 576, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 2, + "DisplayWidth": null, + "KeepDisplayAspect": false, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 0, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 1, + "Quality": 22.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": 30.0, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "128", + "Bitrate": 128, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": false, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": null, + "VideoProfile": { + "DisplayName": "Main", + "ShortName": "main" + }, + "VideoLevel": { + "DisplayName": "3.0", + "ShortName": "3.0" + }, + "VideoPreset": { + "DisplayName": "Medium", + "ShortName": "medium" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": false, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Anamorphic: Loose, Width: \r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + }, + { + "Category": "Devices", + "Description": "", + "IsBuildIn": true, + "IsDefault": false, + "Name": "Android Tablet", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": false, + "Width": null, + "Height": null, + "MaxWidth": 1280, + "MaxHeight": 720, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 2, + "DisplayWidth": null, + "KeepDisplayAspect": false, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 0, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 1, + "Quality": 22.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": 30.0, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "128", + "Bitrate": 128, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": false, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": null, + "VideoProfile": { + "DisplayName": "Main", + "ShortName": "main" + }, + "VideoLevel": { + "DisplayName": "3.1", + "ShortName": "3.1" + }, + "VideoPreset": { + "DisplayName": "Medium", + "ShortName": "medium" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": false, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Anamorphic: Loose, Width: \r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + }, + { + "Category": "Devices", + "Description": "", + "IsBuildIn": true, + "IsDefault": false, + "Name": "Windows Phone 8", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": false, + "Width": null, + "Height": null, + "MaxWidth": 1280, + "MaxHeight": 720, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 0, + "DisplayWidth": null, + "KeepDisplayAspect": false, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 0, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 1, + "Quality": 22.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": 30.0, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "128", + "Bitrate": 128, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": false, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": null, + "VideoProfile": { + "DisplayName": "Main", + "ShortName": "main" + }, + "VideoLevel": { + "DisplayName": "3.1", + "ShortName": "3.1" + }, + "VideoPreset": { + "DisplayName": "Medium", + "ShortName": "medium" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": false, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Resolution: x\r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + }, + { + "Category": "Regular", + "Description": "", + "IsBuildIn": true, + "IsDefault": true, + "Name": "Normal", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": false, + "Width": null, + "Height": null, + "MaxWidth": null, + "MaxHeight": null, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 2, + "DisplayWidth": null, + "KeepDisplayAspect": false, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 0, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 2, + "Quality": 20.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": null, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "160", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": true, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": null, + "VideoProfile": { + "DisplayName": "Main", + "ShortName": "main" + }, + "VideoLevel": { + "DisplayName": "4.0", + "ShortName": "4.0" + }, + "VideoPreset": { + "DisplayName": "Veryfast", + "ShortName": "veryfast" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": false, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Anamorphic: Loose, Width: \r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + }, + { + "Category": "Regular", + "Description": "", + "IsBuildIn": true, + "IsDefault": false, + "Name": "High Profile", + "PictureSettingsMode": 0, + "UseDeinterlace": false, + "Task": { + "Source": null, + "Title": 0, + "Angle": 0, + "PointToPointMode": 0, + "StartPoint": 0, + "EndPoint": 0, + "Destination": null, + "OutputFormat": 0, + "OptimizeMP4": false, + "IPod5GSupport": false, + "Width": null, + "Height": null, + "MaxWidth": null, + "MaxHeight": null, + "Cropping": { + "Top": 0, + "Bottom": 0, + "Left": 0, + "Right": 0 + }, + "HasCropping": false, + "Anamorphic": 2, + "DisplayWidth": null, + "KeepDisplayAspect": false, + "PixelAspectX": 0, + "PixelAspectY": 0, + "Modulus": 2, + "Deinterlace": 0, + "CustomDeinterlace": null, + "Decomb": 2, + "CustomDecomb": null, + "Detelecine": 0, + "CustomDetelecine": null, + "Denoise": 0, + "DenoisePreset": 0, + "DenoiseTune": 0, + "CustomDenoise": null, + "Deblock": 0, + "Grayscale": false, + "VideoEncodeRateType": 2, + "VideoEncoder": 0, + "FramerateMode": 2, + "Quality": 20.0, + "VideoBitrate": null, + "TwoPass": false, + "TurboFirstPass": false, + "Framerate": null, + "AudioTracks": [ + { + "AudioEncoderDisplayValue": "AAC (avcodec)", + "AudioMixdownDisplayValue": "Dolby Pro Logic II", + "BitRateDisplayValue": "160", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 0, + "Gain": 0, + "MixDown": 0, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": false, + "CannotSetBitrate": false, + "IsLossless": false, + "TrackName": "" + }, + { + "AudioEncoderDisplayValue": "AC3 Passthru", + "AudioMixdownDisplayValue": "Automatic", + "BitRateDisplayValue": "Auto", + "Bitrate": 160, + "DRC": 0.0, + "IsDefault": false, + "Encoder": 6, + "Gain": 0, + "MixDown": 2, + "SampleRate": 0.0, + "SampleRateDisplayValue": "Auto", + "ScannedTrack": { + "TrackNumber": 0, + "Language": null, + "LanguageCode": null, + "Description": null, + "Format": null, + "SampleRate": 0, + "Bitrate": 0 + }, + "Track": 0, + "IsPassthru": true, + "CannotSetBitrate": true, + "IsLossless": true, + "TrackName": "" + } + ], + "AllowedPassthruOptions": { + "AudioAllowAACPass": true, + "AudioAllowAC3Pass": true, + "AudioAllowDTSHDPass": true, + "AudioAllowDTSPass": true, + "AudioAllowMP3Pass": true, + "AudioEncoderFallback": 4 + }, + "SubtitleTracks": [], + "IncludeChapterMarkers": true, + "ChapterMarkersFilePath": null, + "ChapterNames": [], + "AdvancedEncoderOptions": null, + "VideoProfile": { + "DisplayName": "High", + "ShortName": "high" + }, + "VideoLevel": { + "DisplayName": "4.1", + "ShortName": "4.1" + }, + "VideoPreset": { + "DisplayName": "Medium", + "ShortName": "medium" + }, + "VideoTunes": [], + "ExtraAdvancedArguments": null, + "IsPreviewEncode": false, + "PreviewEncodeDuration": null, + "PreviewEncodeStartAt": null, + "RequiresM4v": true, + "ShowAdvancedTab": false, + "PictureSettingsDesc": "Anamorphic: Loose, Width: \r\nCrop Top: 0, Botton: 0, Left: 0, Right: 0" + }, + "UsePictureFilters": true, + "Version": "svn5311 (Nightly Build)", + "AudioTrackBehaviours": null, + "SubtitleTrackBehaviours": null + } +] diff --git a/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs b/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs index c9dd6cc8e..10daac53d 100644 --- a/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs +++ b/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs @@ -61,5 +61,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.0.0.5311")] +[assembly: AssemblyVersion("0.0.0.6809")] [assembly: NeutralResourcesLanguage("")] \ No newline at end of file diff --git a/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs.tmpl b/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs.tmpl index d99a490f7..db5403b6f 100644 --- a/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs.tmpl +++ b/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs.tmpl @@ -61,5 +61,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.11.0.$WCREV$")] +[assembly: AssemblyVersion("0.1.0.$WCREV$")] [assembly: NeutralResourcesLanguage("")] \ No newline at end of file diff --git a/win/CS/HandBrakeWPF/Services/Presets/PresetService.cs b/win/CS/HandBrakeWPF/Services/Presets/PresetService.cs index 09fcc4a50..c20af5ddc 100644 --- a/win/CS/HandBrakeWPF/Services/Presets/PresetService.cs +++ b/win/CS/HandBrakeWPF/Services/Presets/PresetService.cs @@ -281,58 +281,42 @@ namespace HandBrakeWPF.Services.Presets { using (StreamReader reader = new StreamReader(stream)) { - StringBuilder contents = new StringBuilder(); - - string category = String.Empty; - - while (!reader.EndOfStream) + // New Preset Format. + try { - string line = reader.ReadLine(); - contents.AppendLine(line); + string json = reader.ReadToEnd(); + var presetList = JsonConvert.DeserializeObject>(json); - // Found the beginning of a preset block ) - if (line != null && line.Contains("<") && !line.Contains("<<")) + foreach (Preset preset in presetList) { - category = line.Replace("<", string.Empty).Trim(); - } + preset.Version = VersionHelper.GetVersion(); + preset.UsePictureFilters = true; + preset.IsBuildIn = true; // Older versions did not have this flag so explicitly make sure it is set. - // Found a preset - if (line != null && line.Contains("+")) - { - Regex r = new Regex("(: )"); // Split on hyphens. - string[] presetName = r.Split(line); - - Preset newPreset = new Preset - { - Category = category, - Name = presetName[0].Replace("+", string.Empty).Trim(), - Version = VersionHelper.GetVersion(), - Description = string.Empty, // Maybe one day we will populate this. - IsBuildIn = true, - UsePictureFilters = true, - Task = QueryParserUtility.Parse(presetName[2]) - }; - - if (newPreset.Name == "iPod") + if (preset.Name == "iPod") { - newPreset.Task.KeepDisplayAspect = true; + preset.Task.KeepDisplayAspect = true; } - newPreset.Task.AllowedPassthruOptions = new AllowedPassthru(true); // We don't want to override the built-in preset + preset.Task.AllowedPassthruOptions = new AllowedPassthru(true); // We don't want to override the built-in preset - if (newPreset.Name == "Normal") + if (preset.Name == "Normal") { - newPreset.IsDefault = true; + preset.IsDefault = true; } - this.presets.Add(newPreset); + this.presets.Add(preset); } - } - // Verify we have presets. - if (this.presets.Count == 0) + // Verify we have presets. + if (this.presets.Count == 0) + { + throw new GeneralApplicationException("Failed to load built-in presets.", "Restarting HandBrake may resolve this issue", new Exception(json)); + } + } + catch (Exception exc) { - throw new GeneralApplicationException("Failed to load built-in presets.", "Restarting HandBrake may resolve this issue", new Exception(contents.ToString())); + // Do Nothing. } } } @@ -571,8 +555,10 @@ namespace HandBrakeWPF.Services.Presets Directory.CreateDirectory(directory); } + JsonSerializerSettings settings = new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Ignore }; + // Built-in Presets - JsonSerializerSettings settings = new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Ignore, NullValueHandling = NullValueHandling.Ignore }; + using (FileStream strm = new FileStream(this.builtInPresetFile, FileMode.Create, FileAccess.Write)) { string presetsJson = JsonConvert.SerializeObject(this.presets.Where(p => p.IsBuildIn).ToList(), Formatting.Indented, settings); @@ -583,14 +569,13 @@ namespace HandBrakeWPF.Services.Presets } // User Presets - JsonSerializerSettings userPresetSettings = new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Ignore }; using (FileStream strm = new FileStream(this.userPresetFile, FileMode.Create, FileAccess.Write)) { List userPresets = this.presets.Where(p => p.IsBuildIn == false).ToList(); - string presetsJson = JsonConvert.SerializeObject(userPresets, Formatting.Indented, userPresetSettings); + string presetsJson = JsonConvert.SerializeObject(userPresets, Formatting.Indented, settings); PresetContainer container = new PresetContainer(CurrentPresetVersion, presetsJson); - string containerJson = JsonConvert.SerializeObject(container, Formatting.Indented, userPresetSettings); + string containerJson = JsonConvert.SerializeObject(container, Formatting.Indented, settings); using (StreamWriter writer = new StreamWriter(strm)) { -- cgit v1.2.3