Пример #1
0
        /// <summary>
        /// Convert a Quality Value to a position value for the Video Quality slider
        /// </summary>
        /// <param name="videoEncoder">The selected video encoder</param>
        /// <param name="value">The Quality value</param>
        /// <returns>The position on the video quality slider</returns>
        private static int QualityToSliderValue(VideoEncoder videoEncoder, double?value)
        {
            if (!value.HasValue)
            {
                // Default to a sensible level.
                return(20);
            }

            int sliderValue = 0;

            switch (videoEncoder)
            {
            case VideoEncoder.FFMpeg:
                sliderValue = 32 - (int)value;
                break;

            case VideoEncoder.X264:
                double cqStep = UserSettingService.GetUserSettingDouble(UserSettingConstants.X264Step);
                sliderValue = (int)((51.0 / cqStep) - (value / cqStep));
                break;

            case VideoEncoder.Theora:
                sliderValue = (int)value;
                break;
            }

            return(sliderValue);
        }
Пример #2
0
        private static string VideoSettingsQuery(frmMain mainWindow)
        {
            string query = string.Empty;

            switch (mainWindow.drp_videoEncoder.Text)
            {
            case "MPEG-4 (FFmpeg)":
                query += " -e ffmpeg";
                break;

            case "H.264 (x264)":
                query += " -e x264";
                break;

            case "VP3 (Theora)":
                query += " -e theora";
                break;

            default:
                query += " -e x264";
                break;
            }

            // Video Settings
            if (mainWindow.radio_avgBitrate.Checked)
            {
                query += " -b " + mainWindow.text_bitrate.Text;
            }

            // Video Quality Setting
            if (mainWindow.radio_cq.Checked)
            {
                double cqStep = UserSettingService.GetUserSettingDouble(UserSettingConstants.X264Step);
                double value;
                switch (mainWindow.drp_videoEncoder.Text)
                {
                case "MPEG-4 (FFmpeg)":
                    value  = 31 - (mainWindow.slider_videoQuality.Value - 1);
                    query += " -q " + value.ToString(new CultureInfo("en-US"));
                    break;

                case "H.264 (x264)":
                    CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
                    value  = 51 - (mainWindow.slider_videoQuality.Value * cqStep);
                    value  = Math.Round(value, 2);
                    query += " -q " + value.ToString(culture);
                    break;

                case "VP3 (Theora)":
                    value  = mainWindow.slider_videoQuality.Value;
                    query += " -q " + value.ToString(new CultureInfo("en-US"));
                    break;
                }
            }

            if (mainWindow.check_2PassEncode.Checked)
            {
                query += " -2 ";
            }

            if (mainWindow.check_turbo.Checked)
            {
                query += " -T ";
            }

            if (mainWindow.drp_videoFramerate.Text != "Same as source")
            {
                query += " -r " + mainWindow.drp_videoFramerate.Text;
            }

            if (mainWindow.drp_videoFramerate.SelectedIndex == 0)
            {
                // If we use Same as Source, we can either output CFR or VFR
                query += mainWindow.radio_constantFramerate.Checked ? " --cfr " : " --vfr ";
            }
            else
            {
                // We have a hard framerate set, so we can either be Constant or peak (VFR) framerate
                query += mainWindow.radio_constantFramerate.Checked ? " --cfr " : " --pfr ";
            }

            return(query);
        }
Пример #3
0
        public frmOptions(frmMain mw)
        {
            InitializeComponent();
            mainWindow = mw;

            IDictionary <string, string> langList = LanguageUtilities.MapLanguages();

            foreach (string item in langList.Keys)
            {
                drop_preferredLang.Items.Add(item);
            }

            // #############################
            // General
            // #############################

            // Enable Tooltips.
            if (Properties.Settings.Default.tooltipEnable)
            {
                check_tooltip.CheckState = CheckState.Checked;
                ToolTip.Active           = true;
            }

            // Update Check
            if (Properties.Settings.Default.updateStatus)
            {
                check_updateCheck.CheckState = CheckState.Checked;
            }

            // Days between update checks
            switch (Properties.Settings.Default.daysBetweenUpdateCheck)
            {
            case 1:
                drop_updateCheckDays.SelectedIndex = 0;
                break;

            case 7:
                drop_updateCheckDays.SelectedIndex = 1;
                break;

            case 30:
                drop_updateCheckDays.SelectedIndex = 2;
                break;
            }

            // On Encode Completeion Action
            drp_completeOption.Text = userSettingService.GetUserSettingString("WhenCompleteAction");

            // Growl.
            if (userSettingService.GetUserSettingBoolean(UserSettingConstants.GrowlEncode))
            {
                check_growlEncode.CheckState = CheckState.Checked;
            }

            if (userSettingService.GetUserSettingBoolean(UserSettingConstants.GrowlQueue))
            {
                check_GrowlQueue.CheckState = CheckState.Checked;
            }

            check_sendFileTo.Checked = this.userSettingService.GetUserSettingBoolean(UserSettingConstants.SendFile);
            lbl_sendFileTo.Text      = Path.GetFileNameWithoutExtension(this.userSettingService.GetUserSettingString(UserSettingConstants.SendFileTo));
            txt_SendFileArgs.Text    = this.userSettingService.GetUserSettingString(UserSettingConstants.SendFileToArgs);

            // #############################
            // Output Settings
            // #############################

            // Enable auto naming feature.)
            if (Properties.Settings.Default.autoNaming)
            {
                check_autoNaming.CheckState = CheckState.Checked;
            }

            // Store the auto name path
            text_an_path.Text = Properties.Settings.Default.autoNamePath;
            if (text_an_path.Text == string.Empty)
            {
                text_an_path.Text = "Click 'Browse' to set the default location";
            }

            // Store auto name format
            txt_autoNameFormat.Text = Properties.Settings.Default.autoNameFormat;

            // Use iPod/iTunes friendly .m4v extension for MP4 files.
            cb_mp4FileMode.SelectedIndex = Properties.Settings.Default.useM4v;

            // Remove Underscores
            check_removeUnderscores.Checked = Properties.Settings.Default.AutoNameRemoveUnderscore;

            // Title case
            check_TitleCase.Checked = Properties.Settings.Default.AutoNameTitleCase;

            // #############################
            // Picture Tab
            // #############################

            // VLC Path
            txt_vlcPath.Text = Properties.Settings.Default.VLC_Path;

            // #############################
            // Audio and Subtitles Tab
            // #############################

            drop_preferredLang.SelectedItem = Properties.Settings.Default.NativeLanguage;

            switch (Settings.Default.DubMode)
            {
            case 1:
                radio_dub.Checked = true;
                break;

            case 2:
                radio_foreignAndSubs.Checked = true;
                break;

            case 3:
                radio_preferredAudioAndSubs.Checked = true;
                break;
            }

            check_AddCCTracks.Checked = Properties.Settings.Default.useClosedCaption;

            // #############################
            // CLI
            // #############################

            // Priority level for encodes
            drp_Priority.Text = userSettingService.GetUserSettingString(UserSettingConstants.ProcessPriority);

            check_preventSleep.Checked = userSettingService.GetUserSettingBoolean(UserSettingConstants.PreventSleep);

            // Log Verbosity Level
            cb_logVerboseLvl.SelectedIndex = userSettingService.GetUserSettingInt(UserSettingConstants.Verbosity);

            // Save logs in the same directory as encoded files
            if (userSettingService.GetUserSettingBoolean(UserSettingConstants.SaveLogWithVideo))
            {
                check_saveLogWithVideo.CheckState = CheckState.Checked;
            }

            // Save Logs in a specified path
            if (userSettingService.GetUserSettingBoolean(UserSettingConstants.SaveLogToCopyDirectory))
            {
                check_logsInSpecifiedLocation.CheckState = CheckState.Checked;
            }

            // The saved log path
            text_logPath.Text = userSettingService.GetUserSettingString(UserSettingConstants.SaveLogCopyDirectory);

            check_clearOldLogs.Checked = Properties.Settings.Default.clearOldLogs;

            // #############################
            // Advanced
            // #############################

            // Minimise to Tray
            if (Properties.Settings.Default.trayIconAlerts)
            {
                check_trayStatusAlerts.CheckState = CheckState.Checked;
            }

            // Tray Balloon popups
            if (Properties.Settings.Default.MainWindowMinimize)
            {
                check_mainMinimize.CheckState = CheckState.Checked;
            }

            // Enable / Disable Query editor tab
            if (Properties.Settings.Default.QueryEditorTab)
            {
                check_queryEditorTab.CheckState = CheckState.Checked;
            }
            check_promptOnUnmatchingQueries.Enabled = check_queryEditorTab.Checked;

            // Prompt on inconsistant queries
            check_promptOnUnmatchingQueries.Checked = Properties.Settings.Default.PromptOnUnmatchingQueries;

            // Preset update notification
            if (Properties.Settings.Default.presetNotification)
            {
                check_disablePresetNotification.CheckState = CheckState.Checked;
            }

            // Show CLI Window
            check_showCliForInGUIEncode.Checked = userSettingService.GetUserSettingBoolean(UserSettingConstants.ShowCLI);

            // Set the preview count
            drop_previewScanCount.SelectedItem = Properties.Settings.Default.previewScanCount.ToString();

            // x264 step
            string step = userSettingService.GetUserSettingDouble(UserSettingConstants.X264Step).ToString(new CultureInfo("en-US"));

            switch (step)
            {
            case "1":
                drop_x264step.SelectedIndex = 0;
                break;

            case "0.5":
                drop_x264step.SelectedIndex = 1;
                break;

            case "0.25":
                drop_x264step.SelectedIndex = 2;
                break;

            case "0.2":
                drop_x264step.SelectedIndex = 3;
                break;
            }

            // Use Experimental dvdnav
            if (userSettingService.GetUserSettingBoolean(UserSettingConstants.DisableLibDvdNav))
            {
                check_dvdnav.CheckState = CheckState.Checked;
            }

            optionsWindowLoading = false;
        }