private void cboVideoEncoder_SelectedIndexChanged(object sender, EventArgs e) { if (cboVideoEncoder.SelectedIndex <= -1) { return; } var key = ((KeyValuePair <Guid, string>)cboVideoEncoder.SelectedItem).Key; if (Plugin.Items.TryGetValue(key, out var temp)) { if (MediaValidator.IsOutFormatValid((string)cboTargetFormat.SelectedValue, temp.GUID, true)) { var video = temp.Video; cboVideoBitDepth.Items.Clear(); foreach (var item in video.Encoder) { cboVideoBitDepth.Items.Add(item.BitDepth); } cboVideoBitDepth.SelectedIndex = 0; cboVideoPreset.Items.Clear(); cboVideoPreset.Items.AddRange(video.Preset); cboVideoPreset.SelectedItem = video.PresetDefault; cboVideoTune.Items.Clear(); cboVideoTune.Items.AddRange(video.Tune); cboVideoTune.SelectedItem = video.TuneDefault; cboVideoRateControl.Items.Clear(); foreach (var item in video.Mode) { cboVideoRateControl.Items.Add(item.Name); } cboVideoRateControl.SelectedIndex = 0; var dei = temp.Video.Args.Pipe; chkVideoDeinterlace.Enabled = dei; grpVideoInterlace.Enabled = dei; cboVideoPreset.Enabled = cboVideoPreset.Items.Count > 0; cboVideoTune.Enabled = cboVideoTune.Items.Count > 0; } else { MessageBox.Show(Language.Lang.MsgBoxCodecIncompatible.Message, Language.Lang.MsgBoxCodecIncompatible.Title, MessageBoxButtons.OK, MessageBoxIcon.Error); if (MediaValidator.GetCodecVideo((string)cboTargetFormat.SelectedValue, out var video)) { cboVideoEncoder.SelectedValue = video.Encoder.Id; } } btnVideoAdvDec.Enabled = temp.Video.Args.Pipe; } }
private void cboTargetFormat_SelectedIndexChanged(object sender, EventArgs e) { if (lstMedia.SelectedItems.Count < 1) { return; } var format = ((KeyValuePair <string, string>)cboTargetFormat.SelectedItem).Key; foreach (ListViewItem q in lstMedia.SelectedItems) { var mf = q.Tag as MediaQueue; for (int i = 0; i < mf.Video.Count; i++) { if (MediaValidator.IsOutFormatValid(format, mf.Video[i].Encoder.Id, true)) { } else { if (MediaValidator.GetCodecVideo(format, out var video)) { mf.OutputFormat = format; mf.Video[i].Encoder = video.Encoder; } } } for (int i = 0; i < mf.Audio.Count; i++) { if (MediaValidator.IsOutFormatValid(format, mf.Audio[i].Encoder.Id, false)) { } else { if (MediaValidator.GetCodecAudio(format, out var audio)) { mf.OutputFormat = format; mf.Audio[i].Encoder = audio.Encoder; } } } MediaApply(sender, e); } }
private void cboAudioEncoder_SelectedIndexChanged(object sender, EventArgs e) { if (cboAudioEncoder.SelectedIndex <= -1) { return; } var temp = new Plugin(); var key = ((KeyValuePair <Guid, string>)cboAudioEncoder.SelectedItem).Key; if (Plugin.Items.TryGetValue(key, out temp)) { if (MediaValidator.IsOutFormatValid((string)cboTargetFormat.SelectedValue, temp.GUID, false)) { var audio = temp.Audio; cboAudioMode.Items.Clear(); foreach (var item in audio.Mode) { cboAudioMode.Items.Add(item.Name); } cboAudioMode.SelectedIndex = 0; cboAudioQuality.Items.Clear(); foreach (var item in audio.Mode[0].Quality) { cboAudioQuality.Items.Add(item); } cboAudioQuality.SelectedItem = audio.Mode[0].Default; cboAudioSampleRate.Items.Clear(); foreach (var item in audio.SampleRate) { cboAudioSampleRate.Items.Add(item); } cboAudioSampleRate.SelectedItem = audio.SampleRateDefault; // Channel cboAudioChannel.DataSource = null; cboAudioChannel.Items.Clear(); var ch = new Dictionary <int, string>(); foreach (var item in audio.Channel) { switch (item) { case 0: ch.Add(0, "Auto"); break; case 1: ch.Add(1, "Mono"); break; case 2: ch.Add(2, "Stereo"); break; case 6: ch.Add(6, "5.1 Surround"); break; case 8: ch.Add(8, "7.1 Surround"); break; default: break; } } cboAudioChannel.DisplayMember = "Value"; cboAudioChannel.ValueMember = "Key"; cboAudioChannel.DataSource = new BindingSource(ch, null); cboAudioChannel.SelectedValue = audio.ChannelDefault; } else { MessageBox.Show(Language.Lang.MsgBoxCodecIncompatible.Message, Language.Lang.MsgBoxCodecIncompatible.Title, MessageBoxButtons.OK, MessageBoxIcon.Error); if (MediaValidator.GetCodecAudio((string)cboTargetFormat.SelectedValue, out var audio)) { cboAudioEncoder.SelectedValue = audio.Encoder.Id; } } btnAudioAdvDec.Enabled = temp.Audio.Args.Pipe; } }