/* Common.cs $\r
\r
This file is part of the HandBrake source code.\r
- Homepage: <http://handbrake.m0k.org/>.\r
+ Homepage: <http://handbrake.fr>.\r
It may be used under the terms of the GNU General Public License. */\r
\r
using System;\r
/*\r
* Checks for updates and returns "true" boolean if one exists.\r
*/\r
- public Boolean updateCheck()\r
+ public Boolean updateCheck(Boolean debug)\r
{\r
try\r
{\r
}\r
catch (Exception exc)\r
{\r
- MessageBox.Show(exc.ToString());\r
+ if (debug == true)\r
+ MessageBox.Show("Unable to check for updates, Please try again later. \n" + exc.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
return false;\r
}\r
}\r
- \r
+\r
/*\r
* Function which generates the filename and path automatically based on the Source Name, DVD title and DVD Chapters\r
*/\r
{\r
if (Properties.Settings.Default.autoNamePath.Trim() != "Click 'Browse' to set the default location")\r
filePath = Properties.Settings.Default.autoNamePath + "\\";\r
- } \r
+ }\r
mainWindow.text_destination.Text = filePath + source + "_T" + title + "_C" + cs + dash + cf + ".mp4";\r
}\r
else\r
\r
// Source tab\r
#region source\r
+ // Reset some vaules to stock first to prevent errors.\r
+ mainWindow.check_iPodAtom.CheckState = CheckState.Unchecked;\r
+\r
+ // Now load all the new settings onto the main window\r
if (presetQuery.Source != "")\r
mainWindow.text_source.Text = presetQuery.Source;\r
\r
if (presetQuery.DVDChapterFinish != 0)\r
mainWindow.drop_chapterFinish.Text = presetQuery.DVDChapterFinish.ToString();\r
\r
- if (presetQuery.Format != "")\r
+ if (presetQuery.Format != null)\r
{\r
string destination = mainWindow.text_destination.Text;\r
destination = destination.Replace(".mp4", "." + presetQuery.Format);\r
mainWindow.text_destination.Text = presetQuery.Destination;\r
\r
mainWindow.drp_videoEncoder.Text = presetQuery.VideoEncoder;\r
- mainWindow.drp_audioCodec.Text = presetQuery.AudioEncoder;\r
+\r
+ if (presetQuery.IpodAtom == true)\r
+ mainWindow.check_iPodAtom.CheckState = CheckState.Checked;\r
+ else\r
+ mainWindow.check_iPodAtom.CheckState = CheckState.Unchecked;\r
+\r
+ if (presetQuery.OptimizeMP4 == true)\r
+ mainWindow.check_optimiseMP4.CheckState = CheckState.Checked;\r
+ else\r
+ mainWindow.check_optimiseMP4.CheckState = CheckState.Unchecked;\r
\r
#endregion\r
\r
// Picture Settings Tab\r
#region Picture\r
- mainWindow.drp_crop.Text = "Manual";\r
+ mainWindow.drp_crop.SelectedIndex = 1;\r
mainWindow.text_top.Text = presetQuery.CropTop;\r
mainWindow.text_bottom.Text = presetQuery.CropBottom;\r
mainWindow.text_left.Text = presetQuery.CropLeft;\r
else\r
mainWindow.check_deblock.CheckState = CheckState.Unchecked;\r
\r
- if (presetQuery.ChapterMarkers == true)\r
- mainWindow.Check_ChapterMarkers.CheckState = CheckState.Checked;\r
- else\r
- mainWindow.Check_ChapterMarkers.CheckState = CheckState.Unchecked;\r
\r
if (presetQuery.Anamorphic == true)\r
- mainWindow.CheckPixelRatio.CheckState = CheckState.Checked;\r
+ mainWindow.drp_anamorphic.SelectedIndex = 1;\r
else\r
- mainWindow.CheckPixelRatio.CheckState = CheckState.Unchecked;\r
+ mainWindow.drp_anamorphic.SelectedIndex = 0;\r
\r
if (presetQuery.LooseAnamorphic == true)\r
- mainWindow.check_lAnamorphic.CheckState = CheckState.Checked;\r
+ mainWindow.drp_anamorphic.SelectedIndex = 2;\r
else\r
- mainWindow.check_lAnamorphic.CheckState = CheckState.Unchecked;\r
+ {\r
+ if (presetQuery.Anamorphic != true)\r
+ mainWindow.drp_anamorphic.SelectedIndex = 0;\r
+ }\r
+\r
\r
if (presetQuery.Width != 0)\r
mainWindow.text_width.Text = presetQuery.Width.ToString();\r
else\r
{\r
mainWindow.text_width.Text = "";\r
- mainWindow.text_width.BackColor = Color.White;\r
}\r
\r
if (presetQuery.Height != 0)\r
else\r
{\r
mainWindow.text_height.Text = "";\r
- mainWindow.text_height.BackColor = Color.White;\r
}\r
\r
if (presetQuery.VFR == true)\r
if (presetQuery.LargeMP4 == true)\r
mainWindow.check_largeFile.CheckState = CheckState.Checked;\r
else\r
+ {\r
mainWindow.check_largeFile.CheckState = CheckState.Unchecked;\r
+ mainWindow.check_largeFile.BackColor = Color.Transparent;\r
+ }\r
\r
- if (presetQuery.IpodAtom == true)\r
- mainWindow.check_iPodAtom.CheckState = CheckState.Checked;\r
- else\r
- mainWindow.check_iPodAtom.CheckState = CheckState.Unchecked;\r
\r
- if (presetQuery.OptimizeMP4 == true)\r
- mainWindow.check_optimiseMP4.CheckState = CheckState.Checked;\r
+\r
+ #endregion\r
+\r
+ // Chapter Markers Tab\r
+ #region Chapter Markers\r
+\r
+ if (presetQuery.ChapterMarkers == true)\r
+ {\r
+ mainWindow.Check_ChapterMarkers.CheckState = CheckState.Checked;\r
+ mainWindow.text_destination.Text = mainWindow.text_destination.Text.Replace(".mp4", ".m4v");\r
+ }\r
else\r
- mainWindow.check_optimiseMP4.CheckState = CheckState.Unchecked;\r
+ mainWindow.Check_ChapterMarkers.CheckState = CheckState.Unchecked;\r
\r
#endregion\r
\r
// Audio Settings Tab\r
#region Audio\r
- mainWindow.drp_audioBitrate.Text = presetQuery.AudioBitrate;\r
- mainWindow.drp_audioSampleRate.Text = presetQuery.AudioSampleBitrate;\r
- mainWindow.drp_track1Audio.Text = presetQuery.AudioTrack1;\r
- mainWindow.drp_track2Audio.Text = presetQuery.AudioTrack2;\r
- mainWindow.drp_audioMixDown.Text = presetQuery.AudioTrackMix;\r
- mainWindow.drp_subtitle.Text = presetQuery.Subtitles;\r
\r
- if (presetQuery.ForcedSubtitles == true)\r
+ if (presetQuery.AudioTrack1 == "")\r
+ mainWindow.drp_track1Audio.Text = "Automatic";\r
+ else\r
+ mainWindow.drp_track1Audio.Text = presetQuery.AudioTrack1;\r
+\r
+ if (presetQuery.AudioTrack2 == "None")\r
{\r
- mainWindow.check_forced.CheckState = CheckState.Checked;\r
- mainWindow.check_forced.Enabled = true;\r
+ mainWindow.drp_track2Audio.SelectedIndex = 0;\r
+ mainWindow.drp_audsr_2.Enabled = false;\r
+ mainWindow.drp_audmix_2.Enabled = false;\r
+ mainWindow.drp_audenc_2.Enabled = false;\r
+ mainWindow.drp_audbit_2.Enabled = false;\r
}\r
else\r
- mainWindow.check_forced.CheckState = CheckState.Unchecked;\r
+ {\r
+ mainWindow.drp_track2Audio.Text = presetQuery.AudioTrack2;\r
+ mainWindow.drp_audsr_2.Enabled = true;\r
+ mainWindow.drp_audmix_2.Enabled = true;\r
+ mainWindow.drp_audenc_2.Enabled = true;\r
+ mainWindow.drp_audbit_2.Enabled = true;\r
+ }\r
+\r
+ if (presetQuery.AudioTrack3 == "None")\r
+ {\r
+ mainWindow.drp_track3Audio.SelectedIndex = 0;\r
+ mainWindow.drp_audsr_3.Enabled = false;\r
+ mainWindow.drp_audmix_3.Enabled = false;\r
+ mainWindow.drp_audenc_3.Enabled = false;\r
+ mainWindow.drp_audbit_3.Enabled = false;\r
+\r
+ }\r
+ else\r
+ {\r
+ mainWindow.drp_track3Audio.Text = presetQuery.AudioTrack3;\r
+ mainWindow.drp_audsr_3.Enabled = true;\r
+ mainWindow.drp_audmix_3.Enabled = true;\r
+ mainWindow.drp_audenc_3.Enabled = true;\r
+ mainWindow.drp_audbit_3.Enabled = true;\r
+ }\r
+\r
+ if (presetQuery.AudioTrack4 == "None")\r
+ {\r
+ mainWindow.drp_track4Audio.SelectedIndex = 0;\r
+ mainWindow.drp_audsr_4.Enabled = false;\r
+ mainWindow.drp_audmix_4.Enabled = false;\r
+ mainWindow.drp_audenc_4.Enabled = false;\r
+ mainWindow.drp_audbit_4.Enabled = false;\r
+ }\r
+ else\r
+ {\r
+ mainWindow.drp_track4Audio.Text = presetQuery.AudioTrack4;\r
+ mainWindow.drp_audsr_4.Enabled = true;\r
+ mainWindow.drp_audmix_4.Enabled = true;\r
+ mainWindow.drp_audenc_4.Enabled = true;\r
+ mainWindow.drp_audbit_4.Enabled = true;\r
+ }\r
+\r
+ if (presetQuery.AudioEncoder1 != null)\r
+ mainWindow.drp_audenc_1.Text = presetQuery.AudioEncoder1;\r
+ mainWindow.drp_audenc_2.Text = presetQuery.AudioEncoder2;\r
+ mainWindow.drp_audenc_3.Text = presetQuery.AudioEncoder3;\r
+ mainWindow.drp_audenc_4.Text = presetQuery.AudioEncoder4;\r
+\r
+ if (presetQuery.AudioBitrate1 != null)\r
+ mainWindow.drp_audbit_1.Text = presetQuery.AudioBitrate1;\r
+ mainWindow.drp_audbit_2.Text = presetQuery.AudioBitrate2;\r
+ mainWindow.drp_audbit_3.Text = presetQuery.AudioBitrate4;\r
+ mainWindow.drp_audbit_3.Text = presetQuery.AudioBitrate4;\r
+\r
+ if (presetQuery.AudioSamplerate1 != null)\r
+ mainWindow.drp_audsr_1.Text = presetQuery.AudioSamplerate1;\r
+ mainWindow.drp_audsr_2.Text = presetQuery.AudioSamplerate2;\r
+ mainWindow.drp_audsr_3.Text = presetQuery.AudioSamplerate3;\r
+ mainWindow.drp_audsr_4.Text = presetQuery.AudioSamplerate4;\r
+\r
+ mainWindow.drp_audmix_1.Text = presetQuery.AudioTrackMix1;\r
+ mainWindow.drp_audmix_2.Text = presetQuery.AudioTrackMix2;\r
+ mainWindow.drp_audmix_3.Text = presetQuery.AudioTrackMix3;\r
+ mainWindow.drp_audmix_4.Text = presetQuery.AudioTrackMix4;\r
+\r
\r
// Dynamic Range Compression (Should be a float but we use double for ease)\r
- double value = presetQuery.DRC;\r
+ double value = 0;\r
+ double actualValue = 0;\r
+\r
+ value = presetQuery.DRC1;\r
+ if (value > 0)\r
+ value = value - 10;\r
+ mainWindow.trackBar1.Value = int.Parse(value.ToString());\r
+ actualValue = presetQuery.DRC1 / 10;\r
+ mainWindow.lbl_drc1.Text = actualValue.ToString();\r
+\r
+ value = presetQuery.DRC2;\r
+ if (value > 0)\r
+ value = value - 10;\r
+ mainWindow.trackBar2.Value = int.Parse(value.ToString());\r
+ actualValue = presetQuery.DRC2 / 10;\r
+ mainWindow.lbl_drc2.Text = actualValue.ToString();\r
+\r
+ value = presetQuery.DRC3;\r
+ if (value > 0)\r
+ value = value - 10;\r
+ mainWindow.trackBar3.Value = int.Parse(value.ToString());\r
+ actualValue = presetQuery.DRC3 / 10;\r
+ mainWindow.lbl_drc3.Text = actualValue.ToString();\r
+\r
+ value = presetQuery.DRC4;\r
if (value > 0)\r
value = value - 10;\r
- mainWindow.slider_drc.Value = int.Parse(value.ToString());\r
+ mainWindow.trackBar4.Value = int.Parse(value.ToString());\r
+ actualValue = presetQuery.DRC4 / 10;\r
+ mainWindow.lbl_drc4.Text = actualValue.ToString();\r
+\r
+\r
+ // Subtitle Stuff\r
+ mainWindow.drp_subtitle.Text = presetQuery.Subtitles;\r
\r
- double actualValue = presetQuery.DRC / 10;\r
- mainWindow.lbl_drc.Text = actualValue.ToString();\r
+ if (presetQuery.ForcedSubtitles == true)\r
+ {\r
+ mainWindow.check_forced.CheckState = CheckState.Checked;\r
+ mainWindow.check_forced.Enabled = true;\r
+ }\r
+ else\r
+ mainWindow.check_forced.CheckState = CheckState.Unchecked;\r
\r
\r
#endregion\r
\r
// H264 Tab & Preset Name\r
#region other\r
- mainWindow.rtf_h264advanced.Text = presetQuery.H264Query;\r
+ mainWindow.rtf_x264Query.Text = presetQuery.H264Query;\r
\r
// Set the preset name\r
mainWindow.groupBox_output.Text = "Output Settings (Preset: " + name + ")";\r
int totalChapters = mainWindow.drop_chapterFinish.Items.Count - 1;\r
string dvdChapter = "";\r
\r
- if ((source != "") || (source != "Click 'Browse' to continue"))\r
+ if ((source != "") && (source.Trim() != "Click 'Browse' to continue"))\r
source = " -i " + '"' + source + '"';\r
+ else\r
+ source = "";\r
\r
if (dvdTitle == "Automatic")\r
dvdTitle = "";\r
\r
string destination = mainWindow.text_destination.Text;\r
string videoEncoder = mainWindow.drp_videoEncoder.Text;\r
- string audioEncoder = mainWindow.drp_audioCodec.Text;\r
string width = mainWindow.text_width.Text;\r
string height = mainWindow.text_height.Text;\r
\r
break;\r
}\r
\r
- switch (audioEncoder)\r
- {\r
- case "AAC":\r
- audioEncoder = " -E faac";\r
- break;\r
- case "MP3":\r
- audioEncoder = " -E lame";\r
- break;\r
- case "Vorbis":\r
- audioEncoder = " -E vorbis";\r
- break;\r
- case "AC3":\r
- audioEncoder = " -E ac3";\r
- break;\r
- case "AAC + AC3":\r
- audioEncoder = " -E aac+ac3";\r
- break;\r
- default:\r
- audioEncoder = " -E faac";\r
- break;\r
- }\r
-\r
if (width != "")\r
width = " -w " + width;\r
\r
}\r
\r
\r
- string queryDestination = destination + videoEncoder + audioEncoder + width + height;\r
+ string queryDestination = destination + videoEncoder + width + height;\r
#endregion\r
\r
// Picture Settings Tab\r
cropOut = " --crop 0:0:0:0 ";\r
else\r
{\r
- if (mainWindow.text_top.Text == "")\r
- cropTop = "0";\r
- if (mainWindow.text_bottom.Text == "")\r
- cropBottom = "0";\r
- if (mainWindow.text_left.Text == "")\r
- cropLeft = "0";\r
- if (mainWindow.text_right.Text == "")\r
- cropRight = "0";\r
-\r
- cropOut = " --crop " + cropTop + ":" + cropBottom + ":" + cropLeft + ":" + cropRight;\r
+ if ((mainWindow.text_top.Text == "") && (mainWindow.text_bottom.Text == "") && (mainWindow.text_left.Text == "") && (mainWindow.text_right.Text == ""))\r
+ cropOut = "";\r
+ else\r
+ {\r
+ if (mainWindow.text_top.Text == "")\r
+ cropTop = "0";\r
+ if (mainWindow.text_bottom.Text == "")\r
+ cropBottom = "0";\r
+ if (mainWindow.text_left.Text == "")\r
+ cropLeft = "0";\r
+ if (mainWindow.text_right.Text == "")\r
+ cropRight = "0";\r
+\r
+ cropOut = " --crop " + cropTop + ":" + cropBottom + ":" + cropLeft + ":" + cropRight;\r
+ }\r
}\r
\r
switch (deInterlace_Option)\r
deinterlace = "";\r
break;\r
case "Fast":\r
- deinterlace = " --deinterlace=fast";\r
+ deinterlace = " --deinterlace=\"fast\"";\r
break;\r
case "Slow":\r
- deinterlace = " --deinterlace=slow";\r
+ deinterlace = " --deinterlace=\"slow\"";\r
break;\r
case "Slower":\r
- deinterlace = " --deinterlace=slower";\r
+ deinterlace = " --deinterlace=\"slower\"";\r
break;\r
case "Slowest":\r
- deinterlace = " --deinterlace=slowest";\r
+ deinterlace = " --deinterlace=\"slowest\"";\r
break;\r
default:\r
deinterlace = "";\r
if (mainWindow.check_grayscale.Checked)\r
grayscale = " -g ";\r
\r
- if (mainWindow.CheckPixelRatio.Checked)\r
+ if (mainWindow.drp_anamorphic.SelectedIndex == 1)\r
pixelRatio = " -p ";\r
+ else if (mainWindow.drp_anamorphic.SelectedIndex == 2)\r
+ pixelRatio = " -P ";\r
+ else\r
+ pixelRatio = " ";\r
+\r
\r
if (mainWindow.check_deblock.Checked)\r
deblock = " --deblock";\r
if (mainWindow.check_vfr.Checked)\r
vfr = " -V ";\r
\r
- if (mainWindow.check_lAnamorphic.Checked)\r
- lanamorphic = " -P ";\r
+\r
\r
string queryPictureSettings = cropOut + deinterlace + deblock + detelecine + vfr + grayscale + pixelRatio + lanamorphic;\r
#endregion\r
if (mainWindow.check_2PassEncode.Checked)\r
twoPassEncoding = " -2 ";\r
\r
- if (videoFramerate == "Automatic")\r
+ if (videoFramerate == "Same as source")\r
vid_frame_rate = "";\r
else\r
{\r
denoise = "";\r
break;\r
case "Weak":\r
- denoise = " --denoise=weak";\r
+ denoise = " --denoise=\"weak\"";\r
break;\r
case "Medium":\r
- denoise = " --denoise=medium";\r
+ denoise = " --denoise=\"medium\"";\r
break;\r
case "Strong":\r
- denoise = " --denoise=strong";\r
+ denoise = " --denoise=\"strong\"";\r
break;\r
default:\r
denoise = "";\r
// Audio Settings Tab\r
#region Audio Settings Tab\r
\r
- string audioBitrate = mainWindow.drp_audioBitrate.Text;\r
- string audioSampleRate = mainWindow.drp_audioSampleRate.Text;\r
- string track1 = mainWindow.drp_track1Audio.Text;\r
- string track2 = mainWindow.drp_track2Audio.Text;\r
- string audioChannels = "";\r
- string Mixdown = mainWindow.drp_audioMixDown.Text;\r
- string SixChannelAudio = "";\r
- string subtitles = mainWindow.drp_subtitle.Text;\r
+ // Query\r
+ string tracks = "";\r
+ string aencoder = "";\r
+ string audioBitrate = "";\r
+ string audioSampleRate = "";\r
+ string Mixdown = "";\r
+ string drc = "";\r
string subScan = "";\r
string forced = "";\r
- string drc = "";\r
\r
- if (audioBitrate != "")\r
- audioBitrate = " -B " + audioBitrate;\r
-\r
- if (audioSampleRate != "")\r
- audioSampleRate = " -R " + audioSampleRate;\r
+ // Track 1\r
+ string track1 = mainWindow.drp_track1Audio.Text;\r
+ string aencoder1 = mainWindow.drp_audenc_1.Text;\r
+ string audioBitrate1 = mainWindow.drp_audbit_1.Text;\r
+ string audioSampleRate1 = mainWindow.drp_audsr_1.Text;\r
+ string Mixdown1 = mainWindow.drp_audmix_1.Text;\r
+ string drc1 = mainWindow.trackBar1.Value.ToString();\r
\r
- // Audio Track 1\r
+ // Track 2\r
+ string track2 = mainWindow.drp_track2Audio.Text;\r
+ string aencoder2 = mainWindow.drp_audenc_2.Text;\r
+ string audioBitrate2 = mainWindow.drp_audbit_2.Text;\r
+ string audioSampleRate2 = mainWindow.drp_audsr_2.Text;\r
+ string Mixdown2 = mainWindow.drp_audmix_2.Text;\r
+ string drc2 = mainWindow.trackBar2.Value.ToString();\r
+\r
+ // Track 3\r
+ string track3 = mainWindow.drp_track3Audio.Text;\r
+ string aencoder3 = mainWindow.drp_audenc_3.Text;\r
+ string audioBitrate3 = mainWindow.drp_audbit_3.Text;\r
+ string audioSampleRate3 = mainWindow.drp_audsr_3.Text;\r
+ string Mixdown3 = mainWindow.drp_audmix_3.Text;\r
+ string drc3 = mainWindow.trackBar3.Value.ToString();\r
+\r
+ // Track 4\r
+ string track4 = mainWindow.drp_track4Audio.Text;\r
+ string aencoder4 = mainWindow.drp_audenc_4.Text;\r
+ string audioBitrate4 = mainWindow.drp_audbit_4.Text;\r
+ string audioSampleRate4 = mainWindow.drp_audsr_4.Text;\r
+ string Mixdown4 = mainWindow.drp_audmix_4.Text;\r
+ string drc4 = mainWindow.trackBar4.Value.ToString();\r
+\r
+\r
+ //\r
+ // Audio Track Selections\r
+ //\r
if (track1 == "Automatic")\r
- audioChannels = "";\r
+ tracks = " -a auto";\r
else if (track1 == "")\r
- audioChannels = "";\r
+ tracks = "";\r
else if (track1 == "None")\r
- audioChannels = " -a none";\r
+ tracks = "";\r
else\r
{\r
+ string[] tempSub = track1.Split(' ');\r
+ tracks = " -a " + tempSub[0];\r
+ }\r
+\r
+ if (track2 != "None")\r
+ {\r
string[] tempSub;\r
- tempSub = track1.Split(' ');\r
- audioChannels = " -a " + tempSub[0];\r
+ tempSub = track2.Split(' ');\r
+ if (tracks == "")\r
+ tracks = " -a none," + tempSub[0];\r
+ else\r
+ tracks = tracks + "," + tempSub[0];\r
}\r
\r
- // Audio Track 2\r
- if (audioChannels != "")\r
+ if (track3 != "None")\r
{\r
- if ((track2 != "") && (track2 != "None"))\r
- {\r
- string[] tempSub;\r
- tempSub = track2.Split(' ');\r
- audioChannels = audioChannels + "," + tempSub[0];\r
- }\r
+ string[] tempSub;\r
+ tempSub = track3.Split(' ');\r
+ if (tracks == "")\r
+ tracks = " -a none,none," + tempSub[0];\r
+ else\r
+ tracks = tracks + "," + tempSub[0];\r
}\r
- else\r
+\r
+ if (track4 != "None")\r
{\r
- if ((track2 != "") && (track2 != "None"))\r
- {\r
- string[] tempSub;\r
- tempSub = track2.Split(' ');\r
- audioChannels = " -a " + tempSub[0];\r
- }\r
+ string[] tempSub;\r
+ tempSub = track4.Split(' ');\r
+ if (tracks == "")\r
+ tracks = " -a none,none,none," + tempSub[0];\r
+ else\r
+ tracks = tracks + "," + tempSub[0];\r
}\r
\r
+ //\r
+ // Audio Encoder\r
+ //\r
+ if (aencoder1 != "")\r
+ aencoder = " -E " + getAudioEncoder(aencoder1);\r
\r
+ if (aencoder2 != "")\r
+ {\r
+ if (aencoder == "")\r
+ aencoder = " -E faac," + getAudioEncoder(aencoder2);\r
+ else\r
+ aencoder = aencoder + "," + getAudioEncoder(aencoder2);\r
+ }\r
\r
- switch (Mixdown)\r
+ if (aencoder3 != "")\r
{\r
- case "Automatic":\r
- Mixdown = "";\r
- break;\r
- case "Mono":\r
- Mixdown = "mono";\r
- break;\r
- case "Stereo":\r
- Mixdown = "stereo";\r
- break;\r
- case "Dolby Surround":\r
- Mixdown = "dpl1";\r
- break;\r
- case "Dolby Pro Logic II":\r
- Mixdown = "dpl2";\r
- break;\r
- case "6 Channel Discrete":\r
- Mixdown = "6ch";\r
- break;\r
- default:\r
- Mixdown = "";\r
- break;\r
+ if (aencoder == "")\r
+ aencoder = " -E faac,faac," + getAudioEncoder(aencoder3);\r
+ else\r
+ aencoder = aencoder + "," + getAudioEncoder(aencoder3);\r
+ }\r
+\r
+ if (aencoder4 != "")\r
+ {\r
+ if (aencoder == "")\r
+ aencoder = " -E faac,faac,faac," + getAudioEncoder(aencoder4);\r
+ else\r
+ aencoder = aencoder + "," + getAudioEncoder(aencoder4);\r
+ }\r
+\r
+ //\r
+ // Audio Bitrate Selections\r
+ //\r
+ if (audioBitrate1 != "")\r
+ audioBitrate = " -B " + audioBitrate1;\r
+\r
+ if (audioBitrate2 != "")\r
+ {\r
+ if (audioBitrate == "")\r
+ audioBitrate = " -B 160," + audioBitrate2;\r
+ else\r
+ audioBitrate = audioBitrate + "," + audioBitrate2;\r
+ }\r
+\r
+ if (audioBitrate3 != "")\r
+ {\r
+ if (audioBitrate == "")\r
+ audioBitrate = " -B 160,160," + audioBitrate3;\r
+ else\r
+ audioBitrate = audioBitrate + "," + audioBitrate3;\r
+ }\r
+\r
+ if (audioBitrate4 != "")\r
+ {\r
+ if (audioBitrate == "")\r
+ audioBitrate = " -B 160,160,160," + audioBitrate4;\r
+ else\r
+ audioBitrate = audioBitrate + "," + audioBitrate4;\r
+ }\r
+\r
+ //Audio Sample Rate - audioSampleRate\r
+\r
+ if (audioSampleRate1 != "")\r
+ audioSampleRate = " -R " + audioSampleRate1;\r
+\r
+ if (audioSampleRate2 != "")\r
+ {\r
+ if (audioSampleRate == "")\r
+ audioSampleRate = " -R 48," + audioSampleRate2;\r
+ else\r
+ audioSampleRate = audioSampleRate + "," + audioSampleRate2;\r
+ }\r
+\r
+ if (audioSampleRate3 != "")\r
+ {\r
+ if (audioSampleRate == "")\r
+ audioSampleRate = " -R 48,48," + audioSampleRate3;\r
+ else\r
+ audioSampleRate = audioSampleRate + "," + audioSampleRate3;\r
+ }\r
+\r
+ if (audioSampleRate4 != "")\r
+ {\r
+ if (audioSampleRate == "")\r
+ audioSampleRate = " -R 48,48,48," + audioSampleRate4;\r
+ else\r
+ audioSampleRate = audioSampleRate + "," + audioSampleRate4;\r
+ }\r
+\r
+ //\r
+ // Audio Mixdown Selections\r
+ //\r
+\r
+ if ((Mixdown1 != "") && (Mixdown1 != "Automatic"))\r
+ Mixdown = " -6 " + getMixDown(Mixdown1);\r
+\r
+ if ((Mixdown2 != "") && (Mixdown2 != "Automatic"))\r
+ {\r
+ if (Mixdown != "")\r
+ Mixdown = Mixdown + "," + getMixDown(Mixdown2);\r
+ }\r
+\r
+ if ((Mixdown3 != "") && (Mixdown3 != "Automatic"))\r
+ {\r
+ if (Mixdown != "")\r
+ Mixdown = Mixdown + "," + getMixDown(Mixdown3);\r
+ }\r
+\r
+ if ((Mixdown4 != "") && (Mixdown4 != "Automatic"))\r
+ {\r
+ if (Mixdown != "")\r
+ Mixdown = Mixdown + "," + getMixDown(Mixdown4);\r
}\r
\r
- if (Mixdown != "")\r
- SixChannelAudio = " -6 " + Mixdown;\r
- else\r
- SixChannelAudio = "";\r
\r
+ //\r
+ // DRC\r
+ //\r
+ double value = 0;\r
+\r
+ value = mainWindow.trackBar1.Value / 10.0;\r
+ value++;\r
+\r
+ if (value > 1.0)\r
+ drc = " -D " + value;\r
+\r
+ value = mainWindow.trackBar2.Value / 10.0;\r
+ value++;\r
+ if (drc2 != "0")\r
+ {\r
+ if (drc == "")\r
+ drc = " -D 1," + value;\r
+ else\r
+ drc = drc + "," + value;\r
+ }\r
+\r
+ value = mainWindow.trackBar3.Value / 10.0;\r
+ value++;\r
+ if (drc3 != "0")\r
+ {\r
+ if (drc == "")\r
+ drc = " -D 1,1," + value;\r
+ else\r
+ drc = drc + "," + value;\r
+ }\r
+\r
+ value = mainWindow.trackBar4.Value / 10.0;\r
+ value++;\r
+ if (drc4 != "0")\r
+ {\r
+ if (drc == "")\r
+ drc = " -D 1,1,1," + value;\r
+ else\r
+ drc = drc + "," + value;\r
+ }\r
+\r
+\r
+ // Subtitles\r
+ string subtitles = mainWindow.drp_subtitle.Text;\r
if (subtitles == "None")\r
subtitles = "";\r
else if (subtitles == "")\r
if (mainWindow.check_forced.Checked)\r
forced = " -F ";\r
\r
- //Dynamic Range Compression (expects a float but a double is used for ease)\r
- double value = mainWindow.slider_drc.Value / 10.0;\r
- value++;\r
- drc = " -D " + value;\r
\r
- string queryAudioSettings = audioBitrate + audioSampleRate + drc + audioChannels + SixChannelAudio + subScan + subtitles + forced;\r
+ string queryAudioSettings = tracks + aencoder + audioBitrate + audioSampleRate + Mixdown + drc + subScan + subtitles + forced;\r
+\r
#endregion\r
\r
// Chapter Markers Tab\r
\r
string ChapterMarkers = "";\r
\r
+ // Attach Source name and dvd title to the start of the chapters.csv filename.\r
+ // This is for the queue. It allows different chapter name files for each title.\r
+ string source_name = mainWindow.text_source.Text;\r
+ string[] sourceName = source.Split('\\');\r
+ source_name = sourceName[sourceName.Length - 1].Replace(".iso", "").Replace(".mpg", "").Replace(".ts", "").Replace(".ps", "");\r
+ source_name = source_name.Replace("\"", "");\r
+\r
+ string source_title = mainWindow.drp_dvdtitle.Text;\r
+ string[] titlesplit = source_title.Split(' ');\r
+ source_title = titlesplit[0];\r
+\r
if (mainWindow.Check_ChapterMarkers.Checked)\r
{\r
- Boolean saveCSV = chapterCSVSave(mainWindow);\r
- if (saveCSV == false)\r
+\r
+ if ((source_name.Trim().Replace("-i ", "") != "Click 'Browse' to continue") && (source_name.Trim().Replace("-i ", "") != ""))\r
{\r
- MessageBox.Show("Unable to save Chapter Makrers file! \n Chapter marker names will NOT be saved in your encode \n\n", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
- ChapterMarkers = " -m ";\r
+ if (source_title != "Automatic")\r
+ {\r
+ string filename = source_name + "-" + source_title + "-chapters.csv";\r
+ string path = Path.Combine(Path.GetTempPath(), filename);\r
+\r
+ Boolean saveCSV = chapterCSVSave(mainWindow, path);\r
+ if (saveCSV == false)\r
+ ChapterMarkers = " -m ";\r
+ else\r
+ {\r
+ ChapterMarkers = " --markers=" + "\"" + path + "\"";\r
+ }\r
+ }\r
+ else\r
+ {\r
+ string filename = source_name + "-chapters.csv";\r
+ string path = Path.Combine(Path.GetTempPath(), filename);\r
+\r
+ Boolean saveCSV = chapterCSVSave(mainWindow, path);\r
+ if (saveCSV == false)\r
+ ChapterMarkers = " -m ";\r
+ else\r
+ {\r
+ ChapterMarkers = " --markers=" + "\"" + path + "\"";\r
+ }\r
+ }\r
}\r
else\r
{\r
string path = Path.Combine(Path.GetTempPath(), "chapters.csv");\r
-\r
ChapterMarkers = " --markers=" + "\"" + path + "\"";\r
}\r
}\r
// H264 Tab\r
#region H264 Tab\r
\r
- string h264Advanced = mainWindow.rtf_h264advanced.Text;\r
+ string h264Advanced = mainWindow.rtf_x264Query.Text;\r
\r
if ((h264Advanced == ""))\r
h264Advanced = "";\r
* This function saves the data in the chapters tab, dataGridView into a CSV file called chapters.csv in this applications\r
* running directory.\r
*/\r
- private Boolean chapterCSVSave(frmMain mainWindow)\r
+ private Boolean chapterCSVSave(frmMain mainWindow, string file_path_name)\r
{\r
try\r
{\r
- string path = Path.Combine(Path.GetTempPath(), "chapters.csv");\r
-\r
StringBuilder csv = new StringBuilder();\r
\r
foreach (DataGridViewRow row in mainWindow.data_chpt.Rows)\r
csv.Append(row.Cells[1].Value.ToString());\r
csv.Append(Environment.NewLine);\r
}\r
- StreamWriter file = new StreamWriter(path);\r
+ StreamWriter file = new StreamWriter(file_path_name);\r
file.Write(csv.ToString());\r
file.Close();\r
file.Dispose();\r
}\r
catch (Exception exc)\r
{\r
- MessageBox.Show(exc.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
+ MessageBox.Show("Unable to save Chapter Makrers file! \nChapter marker names will NOT be saved in your encode \n\n" + exc.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
return false;\r
}\r
}\r
\r
+\r
+ private string getMixDown(string selectedAudio)\r
+ {\r
+ switch (selectedAudio)\r
+ {\r
+ case "Automatic":\r
+ return "";\r
+ case "Mono":\r
+ return "mono";\r
+ case "Stereo":\r
+ return "stereo";\r
+ case "Dolby Surround":\r
+ return "dpl1";\r
+ case "Dolby Pro Logic II":\r
+ return "dpl2";\r
+ case "6 Channel Discrete":\r
+ return "6ch";\r
+ default:\r
+ return "";\r
+ }\r
+ }\r
+\r
+ private string getAudioEncoder(string selectedEncoder)\r
+ {\r
+ switch (selectedEncoder)\r
+ {\r
+ case "AAC":\r
+ return "faac";\r
+ case "MP3":\r
+ return "lame";\r
+ case "Vorbis":\r
+ return "vorbis";\r
+ case "AC3":\r
+ return "ac3";\r
+ default:\r
+ return "";\r
+ }\r
+ }\r
+\r
+\r
// End of Functions\r
}\r
}\r