summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsr55 <[email protected]>2015-01-25 19:13:54 +0000
committersr55 <[email protected]>2015-01-25 19:13:54 +0000
commitcaed9f1d774a7f64ff0e71f247cd19ce7e3f6b89 (patch)
tree1e687c7993c0367d79ef8d3d8ed94e99ac104802
parent7e55e64f9478bf0cc5b4f05516936e019a3c3812 (diff)
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
-rw-r--r--win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj1
-rw-r--r--win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.Nightly.tmpl2
-rw-r--r--win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.tmpl4
-rw-r--r--win/CS/HandBrake.ApplicationServices/Utilities/QueryParserUtility.cs539
-rw-r--r--win/CS/HandBrake.ApplicationServices/Utilities/SystemInfo.cs31
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/Properties/AssemblyInfo.cs6
-rw-r--r--win/CS/HandBrakeWPF/Presets.dat1656
-rw-r--r--win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs2
-rw-r--r--win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs.tmpl2
-rw-r--r--win/CS/HandBrakeWPF/Services/Presets/PresetService.cs69
10 files changed, 1660 insertions, 652 deletions
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 @@
<Compile Include="Utilities\GeneralUtilities.cs" />
<Compile Include="Utilities\LanguageUtilities.cs" />
<Compile Include="Utilities\QueryGeneratorUtility.cs" />
- <Compile Include="Utilities\QueryParserUtility.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
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 @@
-// --------------------------------------------------------------------------------------------------------------------
-// <copyright file="QueryParserUtility.cs" company="HandBrake Project (http://handbrake.fr)">
-// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
-// </copyright>
-// <summary>
-// Parse a CLI Query
-// </summary>
-// --------------------------------------------------------------------------------------------------------------------
-
-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;
-
- /// <summary>
- /// Parse a CLI Query
- /// </summary>
- public class QueryParserUtility
- {
- /**
- * TODO
- * - Add support for PointToPointMode = Seconds or Frames
- **/
-
- /// <summary>
- /// The Culture
- /// </summary>
- private static readonly CultureInfo Culture = new CultureInfo("en-US", false);
-
- /// <summary>
- /// Takes in a query which can be in any order and parses it.
- /// All varibles are then set so they can be used elsewhere.
- /// </summary>
- /// <param name="input">A ClI Query</param>
- /// <returns>A Parsed Query</returns>
- 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<AudioTrack> allAudioTrackInfo = new ObservableCollection<AudioTrack>();
- 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;
@@ -88,36 +87,6 @@ namespace HandBrake.ApplicationServices.Utilities
}
/// <summary>
- /// Gets a value indicating whether is hsw or newer.
- /// </summary>
- 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;
- }
- }
-
- /// <summary>
/// Gets the get gpu driver version.
/// </summary>
public static List<string> GetGPUInfo
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<List<Preset>>(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<Preset> 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))
{