Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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;
            }
        }