Exemplo n.º 1
0
        public FormatSettings(Format.ExportFormats format, MainWindow parent)
        {
            this.InitializeComponent();
            this.Owner = parent;

            //Дефолты
            this.format = format;
            this.def = Formats.GetDefaults(format);

            //Включаем\выключаем редактирование
            //Video
            textbox_vcodecs.IsEnabled = def.VCodecs_IsEditable;
            textbox_framerates.IsEnabled = def.Framerates_IsEditable;
            combo_MinResolutionW.IsEnabled = combo_MinResolutionH.IsEnabled =
                combo_MidResolutionW.IsEnabled = combo_MidResolutionH.IsEnabled =
                combo_MaxResolutionW.IsEnabled = combo_MaxResolutionH.IsEnabled =
                combo_ValidModW.IsEnabled = combo_ValidModH.IsEnabled = def.Resolution_IsEditable;
            textbox_aspects.IsEnabled = def.Aspects_IsEditable;
            combo_fix_ar_method.IsEnabled = (def.LockedAR_Methods.Length > 1);
            check_anamorphic.IsEnabled = def.Anamorphic_IsEditable;
            check_interlaced.IsEnabled = def.Interlaced_IsEditable;

            //Audio
            textbox_acodecs.IsEnabled = def.ACodecs_IsEditable;
            textbox_samplerates.IsEnabled = def.Samplerates_IsEditable;
            check_stereo.IsEnabled = def.LimitedToStereo_IsEditable;

            //Muxing
            combo_Muxer.IsEnabled = (def.Muxers.Length > 1);
            combo_Extension.IsEnabled = (def.Extensions.Length > 1);
            combo_split.IsEnabled = (def.Splitting != "None");
            check_dont_mux.IsEnabled = def.DontMuxStreams_IsEditable;
            check_direct_encoding.IsEnabled = def.DirectEncoding_IsEditable;
            check_direct_remux.IsEnabled = def.DirectRemuxing_IsEditable;
            check_4gb_only.IsEnabled = def.LimitedTo4Gb_IsEditable;

            //Переводим фокус
            int active_tab = 0;
            if (int.TryParse(Settings.GetFormatPreset(format, "ActiveTab"), out active_tab))
            {
                if (active_tab == 2) tab_audio.IsSelected = true;
                else if (active_tab == 3) tab_muxing.IsSelected = true;
            }

            LoadSettings();
            TranslateItems();
            SetTooltips();

            //Предупреждение (один раз для каждого формата)
            if (format != Format.ExportFormats.Custom && !Convert.ToBoolean(Settings.GetFormatPreset(format, "was_warned")))
            {
                Message mes = new Message(parent);
                mes.ShowMessage(Languages.Translate("Some options or their combinations may not work as you expect!") + "\r\n" +
                    Languages.Translate("After making any changes the format may become completely broken!"), Languages.Translate("Warning"), Message.MessageStyle.Ok);
                Settings.SetFormatPreset(format, "was_warned", bool.TrueString);
            }

            ShowDialog();
        }
Exemplo n.º 2
0
 public static string GetACodec(Format.ExportFormats format, string encodingpreset)
 {
     if (encodingpreset == "Copy" ||
         encodingpreset == "Disabled")
     {
         return(encodingpreset);
     }
     else
     {
         using (StreamReader sr = new StreamReader(Calculate.StartupPath + "\\presets\\encoding\\" + Format.EnumToString(format) + "\\audio\\" + encodingpreset + ".txt", System.Text.Encoding.Default))
         {
             string line;
             while (!sr.EndOfStream)
             {
                 line = sr.ReadLine();
                 if (line == "audio codec:" && !sr.EndOfStream)
                 {
                     return(sr.ReadLine());
                 }
             }
             return(null);
         }
     }
 }
Exemplo n.º 3
0
        public AspectResolution(Massive mass, MainWindow parent)
        {
            this.InitializeComponent();

            if (mass != null)
            {
                m      = mass.Clone();
                oldm   = mass.Clone();
                format = mass.format;
            }
            else
            {
                format = Settings.FormatOut;
            }

            p     = parent;
            Owner = p;

            //переводим
            string on   = Languages.Translate("On");
            string off  = Languages.Translate("Off");
            string _def = Languages.Translate("Default") + ": ";

            button_cancel.Content  = Languages.Translate("Cancel");
            button_ok.Content      = Languages.Translate("OK");
            button_refresh.Content = button_manual_apply.Content = text_manual_apply.Content = Languages.Translate("Apply");
            button_refresh.ToolTip = Languages.Translate("Refresh preview");

            if (m != null)
            {
                text_resolution.Content = m.inresw + "x" + m.inresh;
            }
            text_source_res.Content = Languages.Translate("Input resolution:");
            text_final_res.Content  = text_manual_res.Content = Languages.Translate("Output resolution:");
            text_resizer.Content    = Languages.Translate("Resize filter:");
            text_aspectfix.Content  = Languages.Translate("Aspect adjusting method:");
            combo_aspectfix.ToolTip = "SAR - " + Languages.Translate("fix AR using anamorphic encoding") + "\r\nCrop - " +
                                      Languages.Translate("fix AR by cropping the picture") + "\r\nBlack - " + Languages.Translate("fix AR by adding a black borders");
            text_inaspect.Content          = Languages.Translate("Input aspect:");
            text_manual_outasp.Content     = (text_outaspect.Content = Languages.Translate("Output aspect:")) + " | ";
            text_crop_tb.Content           = text_manual_crop_tb.Content = Languages.Translate("Crop top, bottom:");
            text_crop_lr.Content           = text_manual_crop_lr.Content = Languages.Translate("Crop left, right:");
            text_black.Content             = text_manual_black.Content = Languages.Translate("Black width, height:");
            text_flip.Content              = Languages.Translate("Flip horizontal, vertical:");
            combo_crop_b.ToolTip           = manual_crop_b.ToolTip = Languages.Translate("Bottom");
            combo_crop_t.ToolTip           = manual_crop_t.ToolTip = Languages.Translate("Top");
            combo_crop_l.ToolTip           = manual_crop_l.ToolTip = Languages.Translate("Left");
            combo_crop_r.ToolTip           = manual_crop_r.ToolTip = Languages.Translate("Right");
            combo_black_h.ToolTip          = manual_black_h.ToolTip = Languages.Translate("Height");
            combo_black_w.ToolTip          = manual_black_w.ToolTip = Languages.Translate("Width");
            combo_flip_v.ToolTip           = Languages.Translate("Vertical");
            combo_flip_h.ToolTip           = Languages.Translate("Horizontal");
            text_autocropframes.Content    = Languages.Translate("Frames to analyze:");
            combo_autocropframes.ToolTip   = _def + "11";
            text_autocropsens.Content      = Languages.Translate("Autocrop sensivity:");
            combo_autocropsens.ToolTip     = _def + "27";
            text_autocrop_new_mode.Content = Languages.Translate("Crop using the most common values") + ":";
            text_autocrop_new_mode.ToolTip = check_autocrop_new_mode.ToolTip = Languages.Translate("If checked, find the most common values for all the frames that`s being analyzed.") +
                                                                               "\r\n" + Languages.Translate("Otherwise find a minimum values only.") + "\r\n\r\n" + _def + off;
            text_aspecterror.Content = Languages.Translate("Aspect error:");
            text_recalculate.Content = Languages.Translate("Recalculate when cropping") + ":";
            text_recalculate.ToolTip = combo_recalculate.ToolTip = _def + Languages.Translate("Aspect");
            button_analyse.ToolTip   = Languages.Translate("Autocrop black borders");
            button_vcrop.ToolTip     = Languages.Translate("Crop black borders manually");
            button_analyse.Content   = group_autocrop.Header = Languages.Translate("Auto crop");
            button_vcrop.Content     = group_visualcrop.Header = Languages.Translate("Manual crop");
            tab_main.Header          = Languages.Translate("Main");
            tab_settings.Header      = Languages.Translate("Settings");
            Title                  = Languages.Translate("Resolution/Aspect");
            group_misc.Header      = Languages.Translate("Misc");
            text_ffmpeg_ar.Content = Languages.Translate("Use FFmpeg AR info:");
            text_ffmpeg_ar.ToolTip = check_use_ffmpeg_ar.ToolTip = Languages.Translate("MediaInfo provides rounded values, so for better precision it`s recommended to use AR info from the FFmpeg") +
                                                                   ".\r\n" + Languages.Translate("This option is meaningful only when a file is opening.") + "\r\n\r\n" + _def + on;
            text_visualcrop_frame.Content      = Languages.Translate("Startup frame:");
            combo_visualcrop_frame.ToolTip     = _def + Languages.Translate("THM-frame");
            text_visualcrop_fullscreen.Content = Languages.Translate("Open window in fullscreen mode") + ":";
            manual_outaspect.ToolTip           = Languages.Translate("In case of non-anamorphic encoding: Aspect = Width/Height.") +
                                                 "\r\n" + Languages.Translate("In case of anamorphic encoding: Aspect = (Width/Height)*SAR.");
            manual_outsar.ToolTip = Languages.Translate("Leave it empty for non-anamorphic encoding.") +
                                    "\r\n" + Languages.Translate("For anamorphic encoding you must specify SAR.");
            button_calc_sar.ToolTip = Languages.Translate("Calculate SAR for specified output resolution and aspect.") +
                                      "\r\n" + Languages.Translate("It must be used for anamorphic encoding only!");
            text_original_ar.Content  = Languages.Translate("Use the original AR of the stream (if available)") + ":";
            check_original_ar.ToolTip = text_original_ar.ToolTip = Languages.Translate("If checked, use the AR of the raw video stream instead of the AR of the container.") +
                                                                   "\r\n" + Languages.Translate("This option is meaningful only when a file is opening.") + "\r\n\r\n" + _def + on;

            for (int n = 0; n < 101; n++)
            {
                combo_autocropsens.Items.Add(n);
            }
            combo_autocropsens.SelectedItem = Settings.AutocropSensivity;

            for (int n = 5; n < 51; n++)
            {
                combo_autocropframes.Items.Add(n);
            }
            combo_autocropframes.SelectedItem = Settings.AutocropFrames;

            check_autocrop_new_mode.IsChecked = Settings.AutocropMostCommon;

            combo_visualcrop_frame.Items.Add(new ComboBoxItem()
            {
                Tag = "THM-frame", Content = Languages.Translate("THM-frame")
            });
            combo_visualcrop_frame.Items.Add(new ComboBoxItem()
            {
                Tag = "1-st frame", Content = Languages.Translate("1-st frame")
            });
            combo_visualcrop_frame.SelectedValue = Settings.VCropFrame;

            check_visualcrop_fullscreen.IsChecked = Settings.VCropFullscreen;

            combo_recalculate.Items.Add(new ComboBoxItem()
            {
                Tag = CropRecalculate.Nothing, Content = Languages.Translate(CropRecalculate.Nothing.ToString())
            });
            combo_recalculate.Items.Add(new ComboBoxItem()
            {
                Tag = CropRecalculate.Aspect, Content = Languages.Translate(CropRecalculate.Aspect.ToString())
            });
            combo_recalculate.Items.Add(new ComboBoxItem()
            {
                Tag = CropRecalculate.Everything, Content = Languages.Translate(CropRecalculate.Everything.ToString())
            });
            combo_recalculate.SelectedValue = Settings.CropRecalculate;

            check_original_ar.IsChecked   = Settings.MI_Original_AR;
            check_use_ffmpeg_ar.IsChecked = Settings.UseFFmpegAR;

            if (m != null)
            {
                //ресайзеры
                foreach (string resizer in Enum.GetNames(typeof(AviSynthScripting.Resizers)))
                {
                    combo_resizer.Items.Add(resizer);
                }
                combo_resizer.SelectedItem = m.resizefilter.ToString();

                //аспект фиксы
                foreach (string afix in Enum.GetNames(typeof(AspectFixes)))
                {
                    combo_aspectfix.Items.Add(afix);
                }
                combo_aspectfix.SelectedItem = m.aspectfix.ToString();

                string yes = Languages.Translate("Yes");
                combo_flip_v.Items.Add(yes);
                combo_flip_h.Items.Add(yes);

                string no = Languages.Translate("No");
                combo_flip_v.Items.Add(no);
                combo_flip_h.Items.Add(no);

                combo_flip_v.SelectedIndex = (m.flipv) ? 0 : 1;
                combo_flip_h.SelectedIndex = (m.fliph) ? 0 : 1;

                //Разрешения
                LoadResolutions();

                //входной аспект
                LoadInAspect();

                //обрезка
                LoadCrop();

                //поля
                LoadBlack();

                //загружаем выходной аспект
                LoadOutAspect();

                //Кратность сторон
                CalculateMod();

                //Вкладка Manual
                FillManualBox();
            }
            else
            {
                tab_main.IsEnabled      = tab_manual.IsEnabled = false;
                tab_settings.IsSelected = true;
            }

            ShowDialog();
        }
Exemplo n.º 4
0
        public AspectResolution(Massive mass, MainWindow parent)
        {
            this.InitializeComponent();

            if (mass != null)
            {
                m = mass.Clone();
                oldm = mass.Clone();
                format = mass.format;
            }
            else
                format = Settings.FormatOut;

            p = parent;
            Owner = p;

            //переводим
            string on = Languages.Translate("On");
            string off = Languages.Translate("Off");
            string _def = Languages.Translate("Default") + ": ";

            button_cancel.Content = Languages.Translate("Cancel");
            button_ok.Content = Languages.Translate("OK");
            button_refresh.Content = button_manual_apply.Content = text_manual_apply.Content = Languages.Translate("Apply");
            button_refresh.ToolTip = Languages.Translate("Refresh preview");

            if (m != null) text_resolution.Content = m.inresw + "x" + m.inresh;
            text_source_res.Content = Languages.Translate("Input resolution:");
            text_final_res.Content = text_manual_res.Content = Languages.Translate("Output resolution:");
            text_resizer.Content = Languages.Translate("Resize filter:");
            text_aspectfix.Content = Languages.Translate("Aspect adjusting method:");
            combo_aspectfix.ToolTip = "SAR - " + Languages.Translate("fix AR using anamorphic encoding") + "\r\nCrop - " +
                Languages.Translate("fix AR by cropping the picture") + "\r\nBlack - " + Languages.Translate("fix AR by adding a black borders");
            text_inaspect.Content = Languages.Translate("Input aspect:");
            text_manual_outasp.Content = (text_outaspect.Content = Languages.Translate("Output aspect:")) + " | ";
            text_crop_tb.Content = text_manual_crop_tb.Content = Languages.Translate("Crop top, bottom:");
            text_crop_lr.Content = text_manual_crop_lr.Content = Languages.Translate("Crop left, right:");
            text_black.Content = text_manual_black.Content = Languages.Translate("Black width, height:");
            text_flip.Content = Languages.Translate("Flip horizontal, vertical:");
            combo_crop_b.ToolTip = manual_crop_b.ToolTip = Languages.Translate("Bottom");
            combo_crop_t.ToolTip = manual_crop_t.ToolTip = Languages.Translate("Top");
            combo_crop_l.ToolTip = manual_crop_l.ToolTip = Languages.Translate("Left");
            combo_crop_r.ToolTip = manual_crop_r.ToolTip = Languages.Translate("Right");
            combo_black_h.ToolTip = manual_black_h.ToolTip = Languages.Translate("Height");
            combo_black_w.ToolTip = manual_black_w.ToolTip = Languages.Translate("Width");
            combo_flip_v.ToolTip = Languages.Translate("Vertical");
            combo_flip_h.ToolTip = Languages.Translate("Horizontal");
            text_autocropframes.Content = Languages.Translate("Frames to analyze:");
            combo_autocropframes.ToolTip = _def + "11";
            text_autocropsens.Content = Languages.Translate("Autocrop sensivity:");
            combo_autocropsens.ToolTip = _def + "27";
            text_autocrop_new_mode.Content = Languages.Translate("Crop using the most common values") + ":";
            text_autocrop_new_mode.ToolTip = check_autocrop_new_mode.ToolTip = Languages.Translate("If checked, find the most common values for all the frames that`s being analyzed.") +
                "\r\n" + Languages.Translate("Otherwise find a minimum values only.") + "\r\n\r\n" + _def + off;
            text_aspecterror.Content = Languages.Translate("Aspect error:");
            text_recalculate.Content = Languages.Translate("Recalculate when cropping") + ":";
            text_recalculate.ToolTip = combo_recalculate.ToolTip = _def + Languages.Translate("Aspect");
            button_analyse.ToolTip = Languages.Translate("Autocrop black borders");
            button_vcrop.ToolTip = Languages.Translate("Crop black borders manually");
            button_analyse.Content = group_autocrop.Header = Languages.Translate("Auto crop");
            button_vcrop.Content = group_visualcrop.Header = Languages.Translate("Manual crop");
            tab_main.Header = Languages.Translate("Main");
            tab_settings.Header = Languages.Translate("Settings");
            Title = Languages.Translate("Resolution/Aspect");
            group_misc.Header = Languages.Translate("Misc");
            text_ffmpeg_ar.Content = Languages.Translate("Use FFmpeg AR info:");
            text_ffmpeg_ar.ToolTip = check_use_ffmpeg_ar.ToolTip = Languages.Translate("MediaInfo provides rounded values, so for better precision it`s recommended to use AR info from the FFmpeg") +
                ".\r\n" + Languages.Translate("This option is meaningful only when a file is opening.") + "\r\n\r\n" + _def + on;
            text_visualcrop_frame.Content = Languages.Translate("Startup frame:");
            combo_visualcrop_frame.ToolTip = _def + Languages.Translate("THM-frame");
            text_visualcrop_fullscreen.Content = Languages.Translate("Open window in fullscreen mode") + ":";
            manual_outaspect.ToolTip = Languages.Translate("In case of non-anamorphic encoding: Aspect = Width/Height.") +
                "\r\n" + Languages.Translate("In case of anamorphic encoding: Aspect = (Width/Height)*SAR.");
            manual_outsar.ToolTip = Languages.Translate("Leave it empty for non-anamorphic encoding.") +
                "\r\n" + Languages.Translate("For anamorphic encoding you must specify SAR.");
            button_calc_sar.ToolTip = Languages.Translate("Calculate SAR for specified output resolution and aspect.") +
                "\r\n" + Languages.Translate("It must be used for anamorphic encoding only!");
            text_original_ar.Content = Languages.Translate("Use the original AR of the stream (if available)") + ":";
            check_original_ar.ToolTip = text_original_ar.ToolTip = Languages.Translate("If checked, use the AR of the raw video stream instead of the AR of the container.") +
                "\r\n" + Languages.Translate("This option is meaningful only when a file is opening.") + "\r\n\r\n" + _def + on;

            for (int n = 0; n < 101; n++)
                combo_autocropsens.Items.Add(n);
            combo_autocropsens.SelectedItem = Settings.AutocropSensivity;

            for (int n = 5; n < 51; n++)
                combo_autocropframes.Items.Add(n);
            combo_autocropframes.SelectedItem = Settings.AutocropFrames;

            check_autocrop_new_mode.IsChecked = Settings.AutocropMostCommon;

            combo_visualcrop_frame.Items.Add(new ComboBoxItem() { Tag = "THM-frame", Content = Languages.Translate("THM-frame") });
            combo_visualcrop_frame.Items.Add(new ComboBoxItem() { Tag = "1-st frame", Content = Languages.Translate("1-st frame") });
            combo_visualcrop_frame.SelectedValue = Settings.VCropFrame;

            check_visualcrop_fullscreen.IsChecked = Settings.VCropFullscreen;

            combo_recalculate.Items.Add(new ComboBoxItem() { Tag = CropRecalculate.Nothing, Content = Languages.Translate(CropRecalculate.Nothing.ToString()) });
            combo_recalculate.Items.Add(new ComboBoxItem() { Tag = CropRecalculate.Aspect, Content = Languages.Translate(CropRecalculate.Aspect.ToString()) });
            combo_recalculate.Items.Add(new ComboBoxItem() { Tag = CropRecalculate.Everything, Content = Languages.Translate(CropRecalculate.Everything.ToString()) });
            combo_recalculate.SelectedValue = Settings.CropRecalculate;

            check_original_ar.IsChecked = Settings.MI_Original_AR;
            check_use_ffmpeg_ar.IsChecked = Settings.UseFFmpegAR;

            if (m != null)
            {
                //ресайзеры
                foreach (string resizer in Enum.GetNames(typeof(AviSynthScripting.Resizers)))
                    combo_resizer.Items.Add(resizer);
                combo_resizer.SelectedItem = m.resizefilter.ToString();

                //аспект фиксы
                foreach (string afix in Enum.GetNames(typeof(AspectFixes)))
                    combo_aspectfix.Items.Add(afix);
                combo_aspectfix.SelectedItem = m.aspectfix.ToString();

                string yes = Languages.Translate("Yes");
                combo_flip_v.Items.Add(yes);
                combo_flip_h.Items.Add(yes);

                string no = Languages.Translate("No");
                combo_flip_v.Items.Add(no);
                combo_flip_h.Items.Add(no);

                combo_flip_v.SelectedIndex = (m.flipv) ? 0 : 1;
                combo_flip_h.SelectedIndex = (m.fliph) ? 0 : 1;

                //Разрешения
                LoadResolutions();

                //входной аспект
                LoadInAspect();

                //обрезка
                LoadCrop();

                //поля
                LoadBlack();

                //загружаем выходной аспект
                LoadOutAspect();

                //Кратность сторон
                CalculateMod();

                //Вкладка Manual
                FillManualBox();
            }
            else
            {
                tab_main.IsEnabled = tab_manual.IsEnabled = false;
                tab_settings.IsSelected = true;
            }

            ShowDialog();
        }