/// </param>\r
private static void AddEncodeSettings(XmlTextWriter xmlWriter, EncodeTask parsed, Preset preset, string build)\r
{\r
- AddEncodeElement(xmlWriter, "AudioAllowAACPass", "integer", getNullBoolValue(parsed.AllowedPassthruOptions.AudioAllowAACPass));\r
- AddEncodeElement(xmlWriter, "AudioAllowAC3Pass", "integer", getNullBoolValue(parsed.AllowedPassthruOptions.AudioAllowAC3Pass));\r
- AddEncodeElement(xmlWriter, "AudioAllowDTSHDPass", "integer", getNullBoolValue(parsed.AllowedPassthruOptions.AudioAllowDTSHDPass));\r
- AddEncodeElement(xmlWriter, "AudioAllowDTSPass", "integer", getNullBoolValue(parsed.AllowedPassthruOptions.AudioAllowDTSPass));\r
- AddEncodeElement(xmlWriter, "AudioAllowMP3Pass", "integer", getNullBoolValue(parsed.AllowedPassthruOptions.AudioAllowMP3Pass));\r
+ AddBooleanElement(xmlWriter, "AudioAllowAACPass", parsed.AllowedPassthruOptions.AudioAllowAACPass);\r
+ AddBooleanElement(xmlWriter, "AudioAllowAC3Pass", parsed.AllowedPassthruOptions.AudioAllowAC3Pass);\r
+ AddBooleanElement(xmlWriter, "AudioAllowDTSHDPass", parsed.AllowedPassthruOptions.AudioAllowDTSHDPass);\r
+ AddBooleanElement(xmlWriter, "AudioAllowDTSPass", parsed.AllowedPassthruOptions.AudioAllowDTSPass);\r
+ AddBooleanElement(xmlWriter, "AudioAllowMP3Pass", parsed.AllowedPassthruOptions.AudioAllowMP3Pass);\r
+\r
+ // TODO Update\r
AddEncodeElement(xmlWriter, "AudioEncoderFallback", "string", EnumHelper<AudioEncoder>.GetDisplay(parsed.AllowedPassthruOptions.AudioEncoderFallback));\r
\r
- AddEncodeElement(xmlWriter, "ChapterMarkers", "integer", parsed.IncludeChapterMarkers ? "1" : "0");\r
+ AddBooleanElement(xmlWriter, "ChapterMarkers", parsed.IncludeChapterMarkers);\r
AddEncodeElement(xmlWriter, "Default", "integer", "0");\r
- AddEncodeElement(xmlWriter, "FileFormat", "string", (parsed.OutputFormat == OutputFormat.Mp4) ? "MP4 file" : "MKV file");\r
+ AddEncodeElement(xmlWriter, "FileFormat", "string", (parsed.OutputFormat == OutputFormat.Mp4) ? "MP4 file" : "MKV file"); // TODO\r
AddBooleanElement(xmlWriter, "Folder", false);\r
AddEncodeElement(xmlWriter, "Mp4HttpOptimize", "integer", parsed.OptimizeMP4 ? "1" : "0");\r
AddEncodeElement(xmlWriter, "Mp4iPodCompatible", "integer", parsed.IPod5GSupport ? "1" : "0");\r
AddEncodeElement(xmlWriter, "PictureAutoCrop", "integer", "1");\r
- AddEncodeElement(xmlWriter, "PictureBottomCrop", "integer", parsed.Cropping.Bottom.ToString());\r
+ \r
\r
// Filters\r
AddEncodeElement(xmlWriter, "PictureDeblock", "integer", parsed.Deblock.ToString());\r
\r
- switch (parsed.Decomb)\r
- {\r
- case Decomb.Off:\r
- AddEncodeElement(xmlWriter, "PictureDecomb", "integer", "0");\r
- AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", string.Empty);\r
- break;\r
- case Decomb.Default:\r
- AddEncodeElement(xmlWriter, "PictureDecomb", "integer", "2");\r
- AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", string.Empty);\r
- break;\r
- case Decomb.Fast:\r
- AddEncodeElement(xmlWriter, "PictureDecomb", "integer", "3");\r
- AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", string.Empty);\r
- break;\r
- case Decomb.Bob:\r
- AddEncodeElement(xmlWriter, "PictureDecomb", "integer", "4");\r
- AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", string.Empty);\r
- break;\r
- case Decomb.Custom:\r
- AddEncodeElement(xmlWriter, "PictureDecomb", "integer", "1");\r
- AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", parsed.CustomDecomb);\r
- break;\r
- }\r
- AddEncodeElement(xmlWriter, "PictureDecombDeinterlace", "integer", parsed.Decomb != Decomb.Off ? "0" : "1");\r
-\r
- switch (parsed.Deinterlace)\r
- {\r
- case Deinterlace.Off:\r
- AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "0");\r
- AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", string.Empty);\r
- break;\r
- case Deinterlace.Fast:\r
- AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "2");\r
- AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", string.Empty);\r
- break;\r
- case Deinterlace.Slow:\r
- AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "3");\r
- AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", string.Empty);\r
- break;\r
- case Deinterlace.Slower:\r
- AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "4");\r
- AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", string.Empty);\r
- break;\r
- case Deinterlace.Bob:\r
- AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "5");\r
- AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", string.Empty);\r
- break;\r
- case Deinterlace.Custom:\r
- AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", "1");\r
- AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", parsed.CustomDeinterlace);\r
- break;\r
- }\r
-\r
+ AddBooleanElement(xmlWriter, "PictureDecombDeinterlace", parsed.Decomb != Decomb.Off);\r
+ AddEncodeElement(xmlWriter, "PictureDecombCustom", "string", parsed.Decomb == Decomb.Custom ? parsed.CustomDecomb : string.Empty);\r
+ AddEncodeElement(xmlWriter, "PictureDecomb", "integer", ((int)parsed.Decomb).ToString());\r
+ AddEncodeElement(xmlWriter, "PictureDeinterlaceCustom", "string", parsed.Deinterlace == Deinterlace.Custom ? parsed.CustomDeinterlace : string.Empty);\r
+ AddEncodeElement(xmlWriter, "PictureDeinterlace", "integer", ((int)parsed.Deinterlace).ToString());\r
\r
- if (parsed.Denoise == Denoise.hqdn3d)\r
- {\r
- switch (parsed.DenoisePreset)\r
- {\r
- case DenoisePreset.Weak:\r
- AddEncodeElement(xmlWriter, "PictureDenoise", "integer", "2");\r
- AddEncodeElement(xmlWriter, "PictureDenoiseCustom", "string", string.Empty);\r
- break;\r
- case DenoisePreset.Medium:\r
- AddEncodeElement(xmlWriter, "PictureDenoise", "integer", "3");\r
- AddEncodeElement(xmlWriter, "PictureDenoiseCustom", "string", string.Empty);\r
- break;\r
- case DenoisePreset.Strong:\r
- AddEncodeElement(xmlWriter, "PictureDenoise", "integer", "4");\r
- AddEncodeElement(xmlWriter, "PictureDenoiseCustom", "string", string.Empty);\r
- break;\r
- case DenoisePreset.Custom:\r
- AddEncodeElement(xmlWriter, "PictureDenoise", "integer", "1");\r
- AddEncodeElement(xmlWriter, "PictureDenoiseCustom", "string", parsed.CustomDenoise);\r
- break;\r
- }\r
- }\r
\r
- // These keys are still TBD. TODO Update these\r
+ AddEncodeElement(xmlWriter, "PictureDenoiseFilter", "string", parsed.Denoise.ToString().ToLower());\r
+ AddEncodeElement(xmlWriter, "PictureDenoiseCustom", "string", parsed.DenoisePreset == DenoisePreset.Custom ? parsed.CustomDenoise : string.Empty);\r
+ AddEncodeElement(xmlWriter, "PictureDenoisePreset", "string", parsed.DenoisePreset.ToString().ToLower());\r
if (parsed.Denoise == Denoise.NLMeans)\r
{\r
- switch (parsed.DenoisePreset)\r
- {\r
- case DenoisePreset.Ultralight:\r
- AddEncodeElement(xmlWriter, "DenoisePreset", "integer", "1");\r
- break;\r
- case DenoisePreset.Light:\r
- AddEncodeElement(xmlWriter, "DenoisePreset", "integer", "2");\r
- break;\r
- case DenoisePreset.Medium:\r
- AddEncodeElement(xmlWriter, "DenoisePreset", "integer", "3");\r
- break;\r
- case DenoisePreset.Strong:\r
- AddEncodeElement(xmlWriter, "DenoisePreset", "integer", "4");\r
- break;\r
- }\r
-\r
- switch (parsed.DenoiseTune)\r
- {\r
- case DenoiseTune.None:\r
- AddEncodeElement(xmlWriter, "DenoiseTune", "integer", "0");\r
- break;\r
- case DenoiseTune.Animation:\r
- AddEncodeElement(xmlWriter, "DenoiseTune", "integer", "1");\r
- break;\r
- case DenoiseTune.Film:\r
- AddEncodeElement(xmlWriter, "DenoiseTune", "integer", "2");\r
- break;\r
- case DenoiseTune.Grain:\r
- AddEncodeElement(xmlWriter, "DenoiseTune", "integer", "3");\r
- break;\r
- case DenoiseTune.HighMotion:\r
- AddEncodeElement(xmlWriter, "DenoiseTune", "integer", "4");\r
- break;\r
- }\r
- }\r
-\r
- int detelecine = 0;\r
- switch (parsed.Detelecine)\r
- {\r
- case Detelecine.Off:\r
- detelecine = 0;\r
- break;\r
- case Detelecine.Default:\r
- detelecine = 2;\r
- break;\r
- case Detelecine.Custom:\r
- detelecine = 1;\r
- break;\r
+ AddEncodeElement(xmlWriter, "PictureDenoiseTune", "string", parsed.DenoiseTune.ToString().ToLower());\r
}\r
\r
- AddEncodeElement(xmlWriter, "PictureDetelecine", "integer", detelecine.ToString());\r
- AddEncodeElement(xmlWriter, "PictureDetelecineCustom", "string", detelecine == 1 ? parsed.CustomDecomb : string.Empty);\r
+ AddEncodeElement(xmlWriter, "PictureDetelecine", "integer", ((int)parsed.Detelecine).ToString());\r
+ AddEncodeElement(xmlWriter, "PictureDetelecineCustom", "string", parsed.Detelecine == Detelecine.Custom ? parsed.CustomDecomb : string.Empty);\r
\r
// Picture Settings\r
AddEncodeElement(xmlWriter, "PictureHeight", "integer", parsed.Height.ToString());\r
- AddEncodeElement(xmlWriter, "PictureKeepRatio", "integer", parsed.KeepDisplayAspect ? "1" : "0");\r
- AddEncodeElement(xmlWriter, "PictureLeftCrop", "integer", parsed.Cropping.Left.ToString());\r
+ AddEncodeElement(xmlWriter, "PictureKeepRatio", "integer", parsed.KeepDisplayAspect ? "1" : "0"); \r
AddEncodeElement(xmlWriter, "PictureModulus", "integer", parsed.Modulus.ToString());\r
AddEncodeElement(xmlWriter, "PicturePAR", "integer", ((int)parsed.Anamorphic).ToString());\r
+ AddEncodeElement(xmlWriter, "PictureLeftCrop", "integer", parsed.Cropping.Left.ToString());\r
AddEncodeElement(xmlWriter, "PictureRightCrop", "integer", parsed.Cropping.Right.ToString());\r
AddEncodeElement(xmlWriter, "PictureTopCrop", "integer", parsed.Cropping.Top.ToString());\r
+ AddEncodeElement(xmlWriter, "PictureBottomCrop", "integer", parsed.Cropping.Bottom.ToString());\r
AddEncodeElement(xmlWriter, "PictureWidth", "integer", parsed.Width.ToString());\r
\r
// Preset Information\r
// Preset Settings\r
AddEncodeElement(xmlWriter, "UsesMaxPictureSettings", "integer", (parsed.MaxWidth != 0 || parsed.MaxHeight != 0) ? "1" : "0");\r
AddEncodeElement(xmlWriter, "UsesPictureFilters", "integer", "1");\r
- AddEncodeElement(xmlWriter, "UsesPictureSettings", "integer", "2");\r
+ AddEncodeElement(xmlWriter, "UsesPictureSettings", "integer", "1");\r
\r
// Video Settings\r
AddEncodeElement(xmlWriter, "VideoAvgBitrate", "string", parsed.VideoBitrate.ToString());\r
AddEncodeElement(xmlWriter, "VideoEncoder", "string", EnumHelper<VideoEncoder>.GetDisplay(parsed.VideoEncoder));\r
AddEncodeElement(xmlWriter, "VideoFramerate", "string", parsed.Framerate == null ? "Same as source" : parsed.Framerate.ToString());\r
AddEncodeElement(xmlWriter, "VideoFramerateMode", "string", parsed.FramerateMode.ToString().ToLower());\r
- AddEncodeElement(xmlWriter, "VideoGrayScale", "integer", parsed.Grayscale ? "1" : "0");\r
+ AddBooleanElement(xmlWriter, "VideoGrayScale", parsed.Grayscale);\r
AddEncodeElement(xmlWriter, "VideoQualitySlider", "real", parsed.Quality.ToString());\r
AddEncodeElement(xmlWriter, "h264Level", "string", parsed.H264Level);\r
AddEncodeElement(xmlWriter, "x264OptionExtra", "string", parsed.AdvancedEncoderOptions);\r
}\r
AddEncodeElement(xmlWriter, "x264Tune", "string", tune);\r
AddEncodeElement(xmlWriter, "x264UseAdvancedOptions", "integer", parsed.ShowAdvancedTab ? "1" : "0");\r
- AddEncodeElement(xmlWriter, "qsvPreset", "string", parsed.QsvPreset.ToString().ToLower());\r
\r
AddEncodeElement(xmlWriter, "h265Profile", "string", parsed.H265Profile.ToString().ToLower());\r
AddEncodeElement(xmlWriter, "x265Preset", "string", parsed.X265Preset.ToString().ToLower());\r
/// <param name="value">\r
/// The value.\r
/// </param>\r
- private static void AddBooleanElement(XmlTextWriter xmlWriter, string keyName, bool value)\r
+ private static void AddBooleanElement(XmlTextWriter xmlWriter, string keyName, bool? value)\r
{\r
xmlWriter.WriteStartElement("key");\r
xmlWriter.WriteString(keyName);\r
xmlWriter.WriteEndElement();\r
- xmlWriter.WriteStartElement(value ? "true" : "false");\r
+ xmlWriter.WriteStartElement(value.HasValue ? value.Value ? "true" : "false" : "false");\r
xmlWriter.WriteEndElement();\r
}\r
\r