this.AudioTrackGroup = new System.Windows.Forms.GroupBox();\r
this.AudioMenuRowHeightHack = new System.Windows.Forms.ImageList(this.components);\r
this.audioList = new System.Windows.Forms.DataGridView();\r
- this.DRC = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
- this.Bitrate = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
- this.Samplerate = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
- this.Mixdown = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
- this.AudioCodec = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
- this.Source = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
this.Track = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+ this.Source = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+ this.AudioCodec = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+ this.Mixdown = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+ this.Samplerate = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+ this.Bitrate = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
+ this.DRC = new System.Windows.Forms.DataGridViewTextBoxColumn();\r
this.audioMenu.SuspendLayout();\r
((System.ComponentModel.ISupportInitialize)(this.tb_drc)).BeginInit();\r
this.AudioTrackGroup.SuspendLayout();\r
this.tb_drc.Size = new System.Drawing.Size(57, 45);\r
this.tb_drc.TabIndex = 60;\r
this.tb_drc.TickFrequency = 10;\r
- this.tb_drc.Scroll += new System.EventHandler(this.controlChanged);\r
+ this.tb_drc.Scroll += new System.EventHandler(this.ControlChanged);\r
// \r
// label68\r
// \r
"AAC (faac)",\r
"MP3 (lame)",\r
"Vorbis (vorbis)",\r
- "AC3 Passthru"});\r
+ "AC3 Passthru",\r
+ "AC3 (ffmpeg)",\r
+ "DTS Passthru"});\r
this.drp_audioEncoder.Location = new System.Drawing.Point(215, 34);\r
this.drp_audioEncoder.Name = "drp_audioEncoder";\r
this.drp_audioEncoder.Size = new System.Drawing.Size(111, 21);\r
this.drp_audioEncoder.TabIndex = 52;\r
- this.drp_audioEncoder.SelectedIndexChanged += new System.EventHandler(this.controlChanged);\r
+ this.drp_audioEncoder.SelectedIndexChanged += new System.EventHandler(this.ControlChanged);\r
// \r
// label27\r
// \r
this.drp_audioMix.Name = "drp_audioMix";\r
this.drp_audioMix.Size = new System.Drawing.Size(129, 21);\r
this.drp_audioMix.TabIndex = 54;\r
- this.drp_audioMix.SelectedIndexChanged += new System.EventHandler(this.controlChanged);\r
+ this.drp_audioMix.SelectedIndexChanged += new System.EventHandler(this.ControlChanged);\r
// \r
// drp_audioTrack\r
// \r
this.drp_audioTrack.Name = "drp_audioTrack";\r
this.drp_audioTrack.Size = new System.Drawing.Size(194, 21);\r
this.drp_audioTrack.TabIndex = 50;\r
- this.drp_audioTrack.SelectedIndexChanged += new System.EventHandler(this.controlChanged);\r
+ this.drp_audioTrack.SelectedIndexChanged += new System.EventHandler(this.ControlChanged);\r
// \r
// drp_audioBitrate\r
// \r
this.drp_audioBitrate.Name = "drp_audioBitrate";\r
this.drp_audioBitrate.Size = new System.Drawing.Size(70, 21);\r
this.drp_audioBitrate.TabIndex = 58;\r
- this.drp_audioBitrate.SelectedIndexChanged += new System.EventHandler(this.controlChanged);\r
+ this.drp_audioBitrate.SelectedIndexChanged += new System.EventHandler(this.ControlChanged);\r
// \r
// drp_audioSample\r
// \r
this.drp_audioSample.Name = "drp_audioSample";\r
this.drp_audioSample.Size = new System.Drawing.Size(55, 21);\r
this.drp_audioSample.TabIndex = 56;\r
- this.drp_audioSample.SelectedIndexChanged += new System.EventHandler(this.controlChanged);\r
+ this.drp_audioSample.SelectedIndexChanged += new System.EventHandler(this.ControlChanged);\r
// \r
// AudioTrackGroup\r
// \r
this.audioList.TabIndex = 67;\r
this.audioList.SelectionChanged += new System.EventHandler(this.audioList_SelectionChanged);\r
// \r
- // DRC\r
+ // Track\r
// \r
- this.DRC.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;\r
- this.DRC.FillWeight = 96.36334F;\r
- this.DRC.HeaderText = "DRC";\r
- this.DRC.Name = "DRC";\r
- this.DRC.ReadOnly = true;\r
- this.DRC.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
+ this.Track.FillWeight = 304.2808F;\r
+ this.Track.HeaderText = "Track";\r
+ this.Track.Name = "Track";\r
+ this.Track.ReadOnly = true;\r
+ this.Track.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
+ this.Track.Width = 50;\r
// \r
- // Bitrate\r
+ // Source\r
// \r
- this.Bitrate.FillWeight = 49.69727F;\r
- this.Bitrate.HeaderText = "Bitrate";\r
- this.Bitrate.Name = "Bitrate";\r
- this.Bitrate.ReadOnly = true;\r
- this.Bitrate.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
- this.Bitrate.Width = 75;\r
+ this.Source.FillWeight = 49.69727F;\r
+ this.Source.HeaderText = "Source";\r
+ this.Source.Name = "Source";\r
+ this.Source.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
+ this.Source.Width = 150;\r
// \r
- // Samplerate\r
+ // AudioCodec\r
// \r
- this.Samplerate.FillWeight = 49.69727F;\r
- this.Samplerate.HeaderText = "Samplerate";\r
- this.Samplerate.Name = "Samplerate";\r
- this.Samplerate.ReadOnly = true;\r
- this.Samplerate.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
- this.Samplerate.Width = 75;\r
+ this.AudioCodec.HeaderText = "Audio Codec";\r
+ this.AudioCodec.Name = "AudioCodec";\r
+ this.AudioCodec.ReadOnly = true;\r
+ this.AudioCodec.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
// \r
// Mixdown\r
// \r
this.Mixdown.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
this.Mixdown.Width = 150;\r
// \r
- // AudioCodec\r
+ // Samplerate\r
// \r
- this.AudioCodec.HeaderText = "Audio Codec";\r
- this.AudioCodec.Name = "AudioCodec";\r
- this.AudioCodec.ReadOnly = true;\r
- this.AudioCodec.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
+ this.Samplerate.FillWeight = 49.69727F;\r
+ this.Samplerate.HeaderText = "Samplerate";\r
+ this.Samplerate.Name = "Samplerate";\r
+ this.Samplerate.ReadOnly = true;\r
+ this.Samplerate.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
+ this.Samplerate.Width = 75;\r
// \r
- // Source\r
+ // Bitrate\r
// \r
- this.Source.FillWeight = 49.69727F;\r
- this.Source.HeaderText = "Source";\r
- this.Source.Name = "Source";\r
- this.Source.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
- this.Source.Width = 150;\r
+ this.Bitrate.FillWeight = 49.69727F;\r
+ this.Bitrate.HeaderText = "Bitrate";\r
+ this.Bitrate.Name = "Bitrate";\r
+ this.Bitrate.ReadOnly = true;\r
+ this.Bitrate.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
+ this.Bitrate.Width = 75;\r
// \r
- // Track\r
+ // DRC\r
// \r
- this.Track.FillWeight = 304.2808F;\r
- this.Track.HeaderText = "Track";\r
- this.Track.Name = "Track";\r
- this.Track.ReadOnly = true;\r
- this.Track.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
- this.Track.Width = 50;\r
+ this.DRC.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;\r
+ this.DRC.FillWeight = 96.36334F;\r
+ this.DRC.HeaderText = "DRC";\r
+ this.DRC.Name = "DRC";\r
+ this.DRC.ReadOnly = true;\r
+ this.DRC.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;\r
// \r
// AudioPanel\r
// \r
/// </summary>\r
public partial class AudioPanel : UserControl\r
{\r
+\r
+ private const string AC3Passthru = "AC3 Passthru";\r
+\r
+ private const string DTSPassthru = "DTS Passthru";\r
+\r
/// <summary>\r
/// Initializes a new instance of the <see cref="AudioPanel"/> class. \r
/// Create a new instance of the Audio Panel\r
public void SetContainer(string path)\r
{\r
string oldval = drp_audioEncoder.Text;\r
- if ((path.Contains("MP4")) || (path.Contains("M4V")))\r
- {\r
- drp_audioEncoder.Items.Clear();\r
- drp_audioEncoder.Items.Add("AAC (faac)");\r
- drp_audioEncoder.Items.Add("MP3 (lame)");\r
- drp_audioEncoder.Items.Add("AC3 Passthru");\r
- if ((oldval != "AAC (faac)") && (oldval != "AC3 Passthru"))\r
- drp_audioEncoder.SelectedIndex = 0;\r
- else\r
- drp_audioEncoder.SelectedItem = oldval;\r
- }\r
- else if (path.Contains("MKV"))\r
+\r
+ drp_audioEncoder.Items.Clear();\r
+ drp_audioEncoder.Items.Add("AAC (faac)");\r
+ drp_audioEncoder.Items.Add("MP3 (lame)");\r
+ drp_audioEncoder.Items.Add(AC3Passthru);\r
+ drp_audioEncoder.Items.Add("AC3 (ffmpeg)");\r
+\r
+ if (path.Contains("MKV"))\r
{\r
- drp_audioEncoder.Items.Clear();\r
- drp_audioEncoder.Items.Add("AAC (faac)");\r
- drp_audioEncoder.Items.Add("MP3 (lame)");\r
- drp_audioEncoder.Items.Add("AC3 Passthru");\r
- drp_audioEncoder.Items.Add("DTS Passthru");\r
+ drp_audioEncoder.Items.Add(DTSPassthru);\r
drp_audioEncoder.Items.Add("Vorbis (vorbis)");\r
- drp_audioEncoder.SelectedItem = oldval;\r
-\r
- if (drp_audioEncoder.Text == string.Empty)\r
- drp_audioEncoder.SelectedIndex = 0;\r
}\r
\r
+ if (!drp_audioEncoder.Text.Contains(oldval))\r
+ drp_audioEncoder.SelectedIndex = 0;\r
+ else\r
+ drp_audioEncoder.SelectedItem = oldval;\r
+\r
// Make sure the table is updated with new audio codecs\r
+ // Defaults to AAC encoding.\r
foreach (DataGridViewRow row in audioList.Rows)\r
{\r
if (!drp_audioEncoder.Items.Contains(row.Cells[2].Value))\r
newTrack.Cells[2].Value = track.Encoder;\r
newTrack.Cells[3].Value = track.MixDown;\r
newTrack.Cells[4].Value = track.SampleRate;\r
- newTrack.Cells[5].Value = track.Encoder.Contains("AC3") || track.Encoder.Contains("DTS") ? "Auto" : track.Bitrate;\r
+ newTrack.Cells[5].Value = track.Encoder.Contains(AC3Passthru) || track.Encoder.Contains(DTSPassthru) ? "Auto" : track.Bitrate;\r
newTrack.Cells[6].Value = track.DRC;\r
AddTrackForPreset(newTrack);\r
}\r
drp_audioTrack.Items.Clear();\r
drp_audioTrack.Items.AddRange(selectedTitle.AudioTracks.ToArray());\r
\r
- // Reset the Audio Track Selection to the first audio track of the source, or Audiomatic if that fails\r
- foreach (DataGridViewRow row in this.audioList.Rows)\r
- {\r
- row.Cells[1].Value = "Automatic";\r
- }\r
-\r
// Add any tracks the preset has, if there is a preset and no audio tracks in the list currently\r
if (audioList.Rows.Count == 0 && preset != null)\r
{\r
/// <param name="e">\r
/// The e.\r
/// </param>\r
- private void controlChanged(object sender, EventArgs e)\r
+ private void ControlChanged(object sender, EventArgs e)\r
{\r
Control ctl = (Control)sender;\r
\r
audioList.SelectedRows[0].Cells[1].Value = drp_audioTrack.Text;\r
\r
// If the track isn't AC3, and the encoder is, change it.\r
- if (audioList.SelectedRows[0].Cells[2].Value.ToString().Contains("AC3") && !audioList.SelectedRows[0].Cells[1].Value.ToString().Contains("AC3"))\r
+ if (audioList.SelectedRows[0].Cells[2].Value.ToString().Contains(AC3Passthru) && !audioList.SelectedRows[0].Cells[1].Value.ToString().Contains("(AC3)"))\r
{\r
// Switch to AAC\r
drp_audioEncoder.SelectedIndex = 0;\r
}\r
\r
// If the track isn't DTS, and the encoder is, change it.\r
- if (audioList.SelectedRows[0].Cells[2].Value.ToString().Contains("DTS") && !audioList.SelectedRows[0].Cells[1].Value.ToString().Contains("DTS"))\r
+ if (audioList.SelectedRows[0].Cells[2].Value.ToString().Contains(DTSPassthru) && !audioList.SelectedRows[0].Cells[1].Value.ToString().Contains("DTS"))\r
{\r
// Switch to AAC\r
drp_audioEncoder.SelectedIndex = 0;\r
SetBitrate();\r
\r
// Configure the widgets with values\r
- if (drp_audioEncoder.Text.Contains("AC3") || drp_audioEncoder.Text.Contains("DTS"))\r
+ if (drp_audioEncoder.Text.Contains(AC3Passthru) || drp_audioEncoder.Text.Contains(DTSPassthru))\r
{\r
drp_audioMix.Enabled =\r
drp_audioBitrate.Enabled = drp_audioSample.Enabled = tb_drc.Enabled = false;\r
drp_audioBitrate.Items.Remove("320");\r
drp_audioBitrate.Items.Remove("384");\r
drp_audioBitrate.Items.Remove("448");\r
+ drp_audioBitrate.Items.Remove("640");\r
drp_audioBitrate.Items.Remove("768");\r
\r
switch (drp_audioEncoder.Text)\r
case "Vorbis (vorbis)":\r
max = 384;\r
break;\r
- case "AC3 Passthru":\r
+ case "AC3 (ffmpeg)":\r
+ max = 640;\r
+ break;\r
+ case AC3Passthru:\r
drp_audioBitrate.Items.Add("Auto");\r
drp_audioBitrate.SelectedItem = "Auto";\r
drp_audioSample.SelectedItem = "Auto";\r
break;\r
- case "DTS Passthru":\r
+ case DTSPassthru:\r
drp_audioBitrate.Items.Add("Auto");\r
drp_audioBitrate.SelectedItem = "Auto";\r
drp_audioSample.SelectedItem = "Auto";\r
drp_audioBitrate.Items.Add("384");\r
}\r
\r
- if (max == 768)\r
+ if (max >= 640)\r
{\r
drp_audioBitrate.Items.Add("448");\r
+ drp_audioBitrate.Items.Add("640");\r
+ }\r
+\r
+ if (max == 768)\r
+ {\r
drp_audioBitrate.Items.Add("768");\r
}\r
\r
drp_audioMix.Items.Add("Dolby Surround");\r
drp_audioMix.Items.Add("Dolby Pro Logic II");\r
drp_audioMix.Items.Add("6 Channel Discrete");\r
- drp_audioMix.Items.Add("AC3 Passthru");\r
- drp_audioMix.Items.Add("DTS Passthru");\r
+ drp_audioMix.Items.Add(AC3Passthru);\r
+ drp_audioMix.Items.Add(DTSPassthru);\r
\r
drp_audioMix.SelectedItem = "Dolby Pro Logic II";\r
\r
switch (drp_audioEncoder.Text)\r
{\r
case "AAC (faac)":\r
- drp_audioMix.Items.Remove("AC3 Passthru");\r
- drp_audioMix.Items.Remove("DTS Passthru");\r
+ drp_audioMix.Items.Remove(AC3Passthru);\r
+ drp_audioMix.Items.Remove(DTSPassthru);\r
break;\r
case "MP3 (lame)":\r
drp_audioMix.Items.Remove("6 Channel Discrete");\r
- drp_audioMix.Items.Remove("AC3 Passthru");\r
- drp_audioMix.Items.Remove("DTS Passthru");\r
+ drp_audioMix.Items.Remove(AC3Passthru);\r
+ drp_audioMix.Items.Remove(DTSPassthru);\r
break;\r
case "Vorbis (vorbis)":\r
- drp_audioMix.Items.Remove("AC3 Passthru");\r
- drp_audioMix.Items.Remove("DTS Passthru");\r
+ drp_audioMix.Items.Remove(AC3Passthru);\r
+ drp_audioMix.Items.Remove(DTSPassthru);\r
+ break;\r
+ case "AC3 (ffmpeg)":\r
+ drp_audioMix.Items.Remove(AC3Passthru);\r
+ drp_audioMix.Items.Remove(DTSPassthru);\r
break;\r
case "AC3 Passthru":\r
- drp_audioMix.SelectedItem = "AC3 Passthru";\r
+ drp_audioMix.SelectedItem = AC3Passthru;\r
break;\r
case "DTS Passthru":\r
- drp_audioMix.SelectedItem = "DTS Passthru";\r
+ drp_audioMix.SelectedItem = DTSPassthru;\r
break;\r
}\r
}\r
case "Vorbis (vorbis)":\r
return "vorbis";\r
case "AC3 Passthru":\r
- return "ac3";\r
+ return "copy:ac3";\r
case "DTS Passthru":\r
- return "dts";\r
+ return "copy:dts";\r
+ case "AC3 (ffmpeg)":\r
+ return "ac3";\r
default:\r
return string.Empty;\r
}\r
Match noAudio = Regex.Match(input, @"-a none");\r
Match audioTracks = Regex.Match(input, @"-a ([0-9,]*)");\r
Match audioTrackMixes = Regex.Match(input, @"-6 ([0-9a-zA-Z,]*)");\r
- Match audioEncoders = Regex.Match(input, @"-E ([a-zA-Z0-9+,]*)");\r
+ Match audioEncoders = Regex.Match(input, @"-E ([a-zA-Z0-9+,:]*)");\r
Match audioBitrates = Regex.Match(input, @"-B ([0-9a-zA-Z,]*)"); // Auto = a-z\r
Match audioSampleRates = Regex.Match(input, @"-R ([0-9a-zA-Z.,]*)"); // Auto = a-z\r
Match drcValues = Regex.Match(input, @"-D ([0-9.,]*)");\r
case "vorbis":\r
return "Vorbis (vorbis)";\r
case "ac3":\r
+ return "AC3 (ffmpeg)";\r
+ case "copy:ac3":\r
return "AC3 Passthru";\r
- case "dts":\r
+ case "copy:dts":\r
return "DTS Passthru";\r
default:\r
return "AAC (faac)";\r
xmlWriter.WriteStartElement("key");\r
xmlWriter.WriteString(keyName);\r
xmlWriter.WriteEndElement();\r
- if (value)\r
- {\r
- xmlWriter.WriteStartElement("true");\r
- xmlWriter.WriteEndElement();\r
- }\r
- else\r
- {\r
- xmlWriter.WriteStartElement("false");\r
- xmlWriter.WriteEndElement();\r
- }\r
+ xmlWriter.WriteStartElement(value ? "true" : "false");\r
+ xmlWriter.WriteEndElement();\r
}\r
\r
/// <summary>\r
this.components = new System.ComponentModel.Container();\r
System.Windows.Forms.ContextMenuStrip notifyIconMenu;\r
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain));\r
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();\r
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();\r
this.btn_restore = new System.Windows.Forms.ToolStripMenuItem();\r
this.DVD_Save = new System.Windows.Forms.SaveFileDialog();\r
this.ToolTip = new System.Windows.Forms.ToolTip(this.components);\r
// \r
// number\r
// \r
- dataGridViewCellStyle1.Format = "N0";\r
- dataGridViewCellStyle1.NullValue = null;\r
- this.number.DefaultCellStyle = dataGridViewCellStyle1;\r
+ dataGridViewCellStyle2.Format = "N0";\r
+ dataGridViewCellStyle2.NullValue = null;\r
+ this.number.DefaultCellStyle = dataGridViewCellStyle2;\r
this.number.Frozen = true;\r
this.number.HeaderText = "Chapter Number";\r
this.number.MaxInputLength = 3;\r
this.mnu_importMacPreset.Name = "mnu_importMacPreset";\r
this.mnu_importMacPreset.Size = new System.Drawing.Size(194, 22);\r
this.mnu_importMacPreset.Text = "Import";\r
+ this.mnu_importMacPreset.ToolTipText = "Import a (plist - mac format) preset.\r\nYou can import plist presets from the Mac," +\r
+ " Linux and Windows GUI\'s";\r
this.mnu_importMacPreset.Click += new System.EventHandler(this.mnu_importMacPreset_Click);\r
// \r
// mnu_exportMacPreset\r
// \r
this.mnu_exportMacPreset.Name = "mnu_exportMacPreset";\r
this.mnu_exportMacPreset.Size = new System.Drawing.Size(194, 22);\r
- this.mnu_exportMacPreset.Text = "Export";\r
+ this.mnu_exportMacPreset.Text = "Export (Experimental)";\r
+ this.mnu_exportMacPreset.ToolTipText = "Export a (plist - mac format) preset.\r\nThis can be imported by Mac, Linux or Wind" +\r
+ "ows GUI\'s";\r
this.mnu_exportMacPreset.Click += new System.EventHandler(this.mnu_exportMacPreset_Click);\r
// \r
// mnu_SelectDefault\r