OSDN Git Service

WinGui:
authorsr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Wed, 11 Feb 2009 23:33:19 +0000 (23:33 +0000)
committersr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Wed, 11 Feb 2009 23:33:19 +0000 (23:33 +0000)
- Constant Quality Slider now QP/RF based.
- Nearest percentage is also shown for reference.
- Preset system also updated to handle new CP/RF values

git-svn-id: svn://localhost/HandBrake/trunk@2146 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/C#/Functions/QueryParser.cs
win/C#/Properties/Settings.Designer.cs
win/C#/Properties/Settings.settings
win/C#/app.config
win/C#/frmMain.Designer.cs
win/C#/frmMain.cs
win/C#/frmMain.resx
win/C#/frmMain/PresetLoader.cs
win/C#/frmMain/QueryGenerator.cs
win/C#/frmOptions.Designer.cs
win/C#/frmOptions.cs

index 68bcac0..b297ed6 100644 (file)
@@ -256,7 +256,7 @@ namespace Handbrake.Functions
 \r
         private Boolean q_twoPass;\r
         private string q_videoFramerate;\r
-        private int q_videoQuality;\r
+        private float q_videoQuality;\r
         private string q_videoTargetSize;\r
 \r
         /// <summary>\r
@@ -334,7 +334,7 @@ namespace Handbrake.Functions
         /// <summary>\r
         /// Returns a int with the video quality value\r
         /// </summary>\r
-        public int VideoQuality\r
+        public float VideoQuality\r
         {\r
             get { return q_videoQuality; }\r
         }\r
@@ -848,12 +848,11 @@ namespace Handbrake.Functions
                 if (videoFilesize.Success)\r
                     thisQuery.q_videoTargetSize = videoFilesize.ToString().Replace("-S ", "");\r
 \r
-                double qConvert;\r
                 if (videoQuality.Success)\r
                 {\r
-                    qConvert = double.Parse(videoQuality.ToString().Replace("-q ", ""), Culture)*100;\r
-                    qConvert = Math.Ceiling(qConvert);\r
-                    thisQuery.q_videoQuality = int.Parse(qConvert.ToString());\r
+                   float qConvert = float.Parse(videoQuality.ToString().Replace("-q ", ""), Culture);\r
+                    //qConvert = Math.Ceiling(qConvert);\r
+                    thisQuery.q_videoQuality = qConvert;\r
                 }\r
                 #endregion\r
 \r
index a8c3c0f..aa02382 100644 (file)
@@ -334,5 +334,17 @@ namespace Handbrake.Properties {
                 this["QueryEditorTab"] = value;\r
             }\r
         }\r
+        \r
+        [global::System.Configuration.UserScopedSettingAttribute()]\r
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r
+        [global::System.Configuration.DefaultSettingValueAttribute("0.25")]\r
+        public string x264cqstep {\r
+            get {\r
+                return ((string)(this["x264cqstep"]));\r
+            }\r
+            set {\r
+                this["x264cqstep"] = value;\r
+            }\r
+        }\r
     }\r
 }\r
index ce79933..9cf3031 100644 (file)
@@ -80,5 +80,8 @@
     <Setting Name="QueryEditorTab" Type="System.String" Scope="User">\r
       <Value Profile="(Default)" />\r
     </Setting>\r
+    <Setting Name="x264cqstep" Type="System.String" Scope="User">\r
+      <Value Profile="(Default)">0.25</Value>\r
+    </Setting>\r
   </Settings>\r
 </SettingsFile>
\ No newline at end of file
index 4ac6ad7..694345c 100644 (file)
@@ -85,6 +85,9 @@
             <setting name="QueryEditorTab" serializeAs="String">\r
                 <value />\r
             </setting>\r
+            <setting name="x264cqstep" serializeAs="String">\r
+                <value>0.25</value>\r
+            </setting>\r
         </Handbrake.Properties.Settings>\r
     </userSettings>\r
 <startup><supportedRuntime version="v2.0.50727"/></startup></configuration>\r
index 89647c8..526f9c4 100644 (file)
@@ -35,7 +35,6 @@ namespace Handbrake
         private void InitializeComponent()\r
         {\r
             this.components = new System.ComponentModel.Container();\r
-            System.Windows.Forms.Label Label38;\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
@@ -164,14 +163,14 @@ namespace Handbrake
             this.Label20 = new System.Windows.Forms.Label();\r
             this.drp_track1Audio = new System.Windows.Forms.ComboBox();\r
             this.TabPage3 = new System.Windows.Forms.TabPage();\r
+            this.radio_cq = new System.Windows.Forms.RadioButton();\r
+            this.radio_avgBitrate = new System.Windows.Forms.RadioButton();\r
+            this.radio_targetFilesize = new System.Windows.Forms.RadioButton();\r
             this.label25 = new System.Windows.Forms.Label();\r
-            this.Label22 = new System.Windows.Forms.Label();\r
             this.check_2PassEncode = new System.Windows.Forms.CheckBox();\r
             this.Label2 = new System.Windows.Forms.Label();\r
-            this.Label42 = new System.Windows.Forms.Label();\r
             this.SliderValue = new System.Windows.Forms.Label();\r
             this.Label46 = new System.Windows.Forms.Label();\r
-            this.Label40 = new System.Windows.Forms.Label();\r
             this.check_grayscale = new System.Windows.Forms.CheckBox();\r
             this.TabPage1 = new System.Windows.Forms.TabPage();\r
             this.label6 = new System.Windows.Forms.Label();\r
@@ -197,10 +196,6 @@ namespace Handbrake
             this.Check_ChapterMarkers = new System.Windows.Forms.CheckBox();\r
             this.tabs_panel = new System.Windows.Forms.TabControl();\r
             this.tab_Filters = new System.Windows.Forms.TabPage();\r
-            this.ctl_deinterlace = new Handbrake.Deinterlace();\r
-            this.ctl_denoise = new Handbrake.Denoise();\r
-            this.ctl_decomb = new Handbrake.Decomb();\r
-            this.ctl_detelecine = new Handbrake.Detelecine();\r
             this.tab_chapters = new System.Windows.Forms.TabPage();\r
             this.label31 = new System.Windows.Forms.Label();\r
             this.h264Tab = new System.Windows.Forms.TabPage();\r
@@ -254,7 +249,10 @@ namespace Handbrake
             this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components);\r
             this.StatusStrip = new System.Windows.Forms.StatusStrip();\r
             this.lbl_encode = new System.Windows.Forms.ToolStripStatusLabel();\r
-            Label38 = new System.Windows.Forms.Label();\r
+            this.ctl_deinterlace = new Handbrake.Deinterlace();\r
+            this.ctl_denoise = new Handbrake.Denoise();\r
+            this.ctl_decomb = new Handbrake.Decomb();\r
+            this.ctl_detelecine = new Handbrake.Detelecine();\r
             notifyIconMenu = new System.Windows.Forms.ContextMenuStrip(this.components);\r
             notifyIconMenu.SuspendLayout();\r
             ((System.ComponentModel.ISupportInitialize)(this.slider_videoQuality)).BeginInit();\r
@@ -287,17 +285,6 @@ namespace Handbrake
             this.StatusStrip.SuspendLayout();\r
             this.SuspendLayout();\r
             // \r
-            // Label38\r
-            // \r
-            Label38.AutoSize = true;\r
-            Label38.BackColor = System.Drawing.Color.Transparent;\r
-            Label38.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            Label38.Location = new System.Drawing.Point(334, 38);\r
-            Label38.Name = "Label38";\r
-            Label38.Size = new System.Drawing.Size(108, 13);\r
-            Label38.TabIndex = 11;\r
-            Label38.Text = "Target Size (MB):";\r
-            // \r
             // notifyIconMenu\r
             // \r
             notifyIconMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
@@ -470,7 +457,7 @@ namespace Handbrake
             this.check_turbo.BackColor = System.Drawing.Color.Transparent;\r
             this.check_turbo.Enabled = false;\r
             this.check_turbo.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.check_turbo.Location = new System.Drawing.Point(37, 168);\r
+            this.check_turbo.Location = new System.Drawing.Point(146, 123);\r
             this.check_turbo.Name = "check_turbo";\r
             this.check_turbo.Size = new System.Drawing.Size(115, 17);\r
             this.check_turbo.TabIndex = 7;\r
@@ -501,34 +488,34 @@ namespace Handbrake
             // \r
             // slider_videoQuality\r
             // \r
-            this.slider_videoQuality.Location = new System.Drawing.Point(468, 91);\r
+            this.slider_videoQuality.Enabled = false;\r
+            this.slider_videoQuality.Location = new System.Drawing.Point(337, 120);\r
             this.slider_videoQuality.Maximum = 100;\r
             this.slider_videoQuality.Name = "slider_videoQuality";\r
-            this.slider_videoQuality.Size = new System.Drawing.Size(167, 42);\r
+            this.slider_videoQuality.Size = new System.Drawing.Size(322, 42);\r
             this.slider_videoQuality.TabIndex = 14;\r
             this.slider_videoQuality.TickFrequency = 17;\r
             this.ToolTip.SetToolTip(this.slider_videoQuality, "Set the quality level of the video. (Around 70% is fine for most)");\r
-            this.slider_videoQuality.Scroll += new System.EventHandler(this.slider_videoQuality_Scroll);\r
+            this.slider_videoQuality.ValueChanged += new System.EventHandler(this.slider_videoQuality_Scroll);\r
             // \r
             // text_filesize\r
             // \r
+            this.text_filesize.Enabled = false;\r
             this.text_filesize.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.text_filesize.Location = new System.Drawing.Point(476, 36);\r
+            this.text_filesize.Location = new System.Drawing.Point(482, 36);\r
             this.text_filesize.Name = "text_filesize";\r
             this.text_filesize.Size = new System.Drawing.Size(81, 21);\r
             this.text_filesize.TabIndex = 12;\r
             this.ToolTip.SetToolTip(this.text_filesize, "Set the file size you wish the encoded file to be.");\r
-            this.text_filesize.TextChanged += new System.EventHandler(this.text_filesize_TextChanged);\r
             // \r
             // text_bitrate\r
             // \r
             this.text_bitrate.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.text_bitrate.Location = new System.Drawing.Point(476, 63);\r
+            this.text_bitrate.Location = new System.Drawing.Point(482, 63);\r
             this.text_bitrate.Name = "text_bitrate";\r
             this.text_bitrate.Size = new System.Drawing.Size(81, 21);\r
             this.text_bitrate.TabIndex = 10;\r
             this.ToolTip.SetToolTip(this.text_bitrate, "Set the bitrate of the video");\r
-            this.text_bitrate.TextChanged += new System.EventHandler(this.text_bitrate_TextChanged);\r
             // \r
             // drp_subtitle\r
             // \r
@@ -1866,21 +1853,20 @@ namespace Handbrake
             // TabPage3\r
             // \r
             this.TabPage3.BackColor = System.Drawing.Color.Transparent;\r
+            this.TabPage3.Controls.Add(this.radio_cq);\r
+            this.TabPage3.Controls.Add(this.radio_avgBitrate);\r
+            this.TabPage3.Controls.Add(this.radio_targetFilesize);\r
             this.TabPage3.Controls.Add(this.drp_videoEncoder);\r
             this.TabPage3.Controls.Add(this.Label47);\r
             this.TabPage3.Controls.Add(this.label25);\r
             this.TabPage3.Controls.Add(this.check_turbo);\r
-            this.TabPage3.Controls.Add(this.Label22);\r
             this.TabPage3.Controls.Add(this.check_2PassEncode);\r
             this.TabPage3.Controls.Add(this.Label2);\r
             this.TabPage3.Controls.Add(this.text_filesize);\r
-            this.TabPage3.Controls.Add(this.Label42);\r
             this.TabPage3.Controls.Add(this.slider_videoQuality);\r
             this.TabPage3.Controls.Add(this.text_bitrate);\r
-            this.TabPage3.Controls.Add(Label38);\r
             this.TabPage3.Controls.Add(this.SliderValue);\r
             this.TabPage3.Controls.Add(this.Label46);\r
-            this.TabPage3.Controls.Add(this.Label40);\r
             this.TabPage3.Controls.Add(this.drp_videoFramerate);\r
             this.TabPage3.Location = new System.Drawing.Point(4, 22);\r
             this.TabPage3.Name = "TabPage3";\r
@@ -1890,6 +1876,41 @@ namespace Handbrake
             this.TabPage3.Text = "Video";\r
             this.TabPage3.UseVisualStyleBackColor = true;\r
             // \r
+            // radio_cq\r
+            // \r
+            this.radio_cq.AutoSize = true;\r
+            this.radio_cq.Location = new System.Drawing.Point(336, 97);\r
+            this.radio_cq.Name = "radio_cq";\r
+            this.radio_cq.Size = new System.Drawing.Size(125, 17);\r
+            this.radio_cq.TabIndex = 18;\r
+            this.radio_cq.Text = "Constant Quality:";\r
+            this.radio_cq.UseVisualStyleBackColor = true;\r
+            this.radio_cq.CheckedChanged += new System.EventHandler(this.radio_cq_CheckedChanged);\r
+            // \r
+            // radio_avgBitrate\r
+            // \r
+            this.radio_avgBitrate.AutoSize = true;\r
+            this.radio_avgBitrate.Checked = true;\r
+            this.radio_avgBitrate.Location = new System.Drawing.Point(336, 64);\r
+            this.radio_avgBitrate.Name = "radio_avgBitrate";\r
+            this.radio_avgBitrate.Size = new System.Drawing.Size(135, 17);\r
+            this.radio_avgBitrate.TabIndex = 17;\r
+            this.radio_avgBitrate.TabStop = true;\r
+            this.radio_avgBitrate.Text = "Avg Bitrate (kbps):";\r
+            this.radio_avgBitrate.UseVisualStyleBackColor = true;\r
+            this.radio_avgBitrate.CheckedChanged += new System.EventHandler(this.radio_avgBitrate_CheckedChanged);\r
+            // \r
+            // radio_targetFilesize\r
+            // \r
+            this.radio_targetFilesize.AutoSize = true;\r
+            this.radio_targetFilesize.Location = new System.Drawing.Point(336, 37);\r
+            this.radio_targetFilesize.Name = "radio_targetFilesize";\r
+            this.radio_targetFilesize.Size = new System.Drawing.Size(126, 17);\r
+            this.radio_targetFilesize.TabIndex = 16;\r
+            this.radio_targetFilesize.Text = "Target Size (MB):";\r
+            this.radio_targetFilesize.UseVisualStyleBackColor = true;\r
+            this.radio_targetFilesize.CheckedChanged += new System.EventHandler(this.radio_targetFilesize_CheckedChanged);\r
+            // \r
             // label25\r
             // \r
             this.label25.AutoSize = true;\r
@@ -1901,23 +1922,12 @@ namespace Handbrake
             this.label25.TabIndex = 0;\r
             this.label25.Text = "Video";\r
             // \r
-            // Label22\r
-            // \r
-            this.Label22.AutoSize = true;\r
-            this.Label22.BackColor = System.Drawing.Color.Transparent;\r
-            this.Label22.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.Label22.Location = new System.Drawing.Point(13, 118);\r
-            this.Label22.Name = "Label22";\r
-            this.Label22.Size = new System.Drawing.Size(191, 13);\r
-            this.Label22.TabIndex = 4;\r
-            this.Label22.Text = "Advanced Encoding Settings";\r
-            // \r
             // check_2PassEncode\r
             // \r
             this.check_2PassEncode.AutoSize = true;\r
             this.check_2PassEncode.BackColor = System.Drawing.Color.Transparent;\r
             this.check_2PassEncode.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.check_2PassEncode.Location = new System.Drawing.Point(16, 145);\r
+            this.check_2PassEncode.Location = new System.Drawing.Point(125, 100);\r
             this.check_2PassEncode.Name = "check_2PassEncode";\r
             this.check_2PassEncode.Size = new System.Drawing.Size(119, 17);\r
             this.check_2PassEncode.TabIndex = 6;\r
@@ -1936,23 +1946,12 @@ namespace Handbrake
             this.Label2.TabIndex = 8;\r
             this.Label2.Text = "Quality";\r
             // \r
-            // Label42\r
-            // \r
-            this.Label42.AutoSize = true;\r
-            this.Label42.BackColor = System.Drawing.Color.Transparent;\r
-            this.Label42.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.Label42.Location = new System.Drawing.Point(334, 65);\r
-            this.Label42.Name = "Label42";\r
-            this.Label42.Size = new System.Drawing.Size(117, 13);\r
-            this.Label42.TabIndex = 9;\r
-            this.Label42.Text = "Avg Bitrate (kbps):";\r
-            // \r
             // SliderValue\r
             // \r
             this.SliderValue.AutoSize = true;\r
             this.SliderValue.BackColor = System.Drawing.Color.Transparent;\r
             this.SliderValue.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.SliderValue.Location = new System.Drawing.Point(641, 100);\r
+            this.SliderValue.Location = new System.Drawing.Point(480, 100);\r
             this.SliderValue.Name = "SliderValue";\r
             this.SliderValue.Size = new System.Drawing.Size(23, 12);\r
             this.SliderValue.TabIndex = 15;\r
@@ -1969,17 +1968,6 @@ namespace Handbrake
             this.Label46.TabIndex = 1;\r
             this.Label46.Text = "Framerate (FPS):";\r
             // \r
-            // Label40\r
-            // \r
-            this.Label40.AutoSize = true;\r
-            this.Label40.BackColor = System.Drawing.Color.Transparent;\r
-            this.Label40.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.Label40.Location = new System.Drawing.Point(334, 99);\r
-            this.Label40.Name = "Label40";\r
-            this.Label40.Size = new System.Drawing.Size(107, 13);\r
-            this.Label40.TabIndex = 13;\r
-            this.Label40.Text = "Constant Quality:";\r
-            // \r
             // check_grayscale\r
             // \r
             this.check_grayscale.AutoSize = true;\r
@@ -2307,48 +2295,6 @@ namespace Handbrake
             this.tab_Filters.Text = "Video Filters";\r
             this.tab_Filters.UseVisualStyleBackColor = true;\r
             // \r
-            // ctl_deinterlace\r
-            // \r
-            this.ctl_deinterlace.AutoSize = true;\r
-            this.ctl_deinterlace.Location = new System.Drawing.Point(19, 95);\r
-            this.ctl_deinterlace.Margin = new System.Windows.Forms.Padding(0);\r
-            this.ctl_deinterlace.MaximumSize = new System.Drawing.Size(400, 30);\r
-            this.ctl_deinterlace.Name = "ctl_deinterlace";\r
-            this.ctl_deinterlace.Size = new System.Drawing.Size(275, 28);\r
-            this.ctl_deinterlace.TabIndex = 41;\r
-            this.ctl_deinterlace.onChange += new System.EventHandler(this.ctl_deinterlace_changed);\r
-            // \r
-            // ctl_denoise\r
-            // \r
-            this.ctl_denoise.AutoSize = true;\r
-            this.ctl_denoise.Location = new System.Drawing.Point(19, 123);\r
-            this.ctl_denoise.Margin = new System.Windows.Forms.Padding(0);\r
-            this.ctl_denoise.MaximumSize = new System.Drawing.Size(400, 30);\r
-            this.ctl_denoise.Name = "ctl_denoise";\r
-            this.ctl_denoise.Size = new System.Drawing.Size(275, 28);\r
-            this.ctl_denoise.TabIndex = 40;\r
-            // \r
-            // ctl_decomb\r
-            // \r
-            this.ctl_decomb.AutoSize = true;\r
-            this.ctl_decomb.Location = new System.Drawing.Point(19, 66);\r
-            this.ctl_decomb.Margin = new System.Windows.Forms.Padding(0);\r
-            this.ctl_decomb.MaximumSize = new System.Drawing.Size(400, 30);\r
-            this.ctl_decomb.Name = "ctl_decomb";\r
-            this.ctl_decomb.Size = new System.Drawing.Size(275, 28);\r
-            this.ctl_decomb.TabIndex = 39;\r
-            this.ctl_decomb.onChange += new System.EventHandler(this.ctl_decomb_changed);\r
-            // \r
-            // ctl_detelecine\r
-            // \r
-            this.ctl_detelecine.AutoSize = true;\r
-            this.ctl_detelecine.Location = new System.Drawing.Point(19, 38);\r
-            this.ctl_detelecine.Margin = new System.Windows.Forms.Padding(0);\r
-            this.ctl_detelecine.MaximumSize = new System.Drawing.Size(400, 30);\r
-            this.ctl_detelecine.Name = "ctl_detelecine";\r
-            this.ctl_detelecine.Size = new System.Drawing.Size(275, 28);\r
-            this.ctl_detelecine.TabIndex = 38;\r
-            // \r
             // tab_chapters\r
             // \r
             this.tab_chapters.BackColor = System.Drawing.Color.Transparent;\r
@@ -2930,6 +2876,48 @@ namespace Handbrake
             this.lbl_encode.Size = new System.Drawing.Size(31, 17);\r
             this.lbl_encode.Text = "{0}";\r
             // \r
+            // ctl_deinterlace\r
+            // \r
+            this.ctl_deinterlace.AutoSize = true;\r
+            this.ctl_deinterlace.Location = new System.Drawing.Point(19, 95);\r
+            this.ctl_deinterlace.Margin = new System.Windows.Forms.Padding(0);\r
+            this.ctl_deinterlace.MaximumSize = new System.Drawing.Size(400, 30);\r
+            this.ctl_deinterlace.Name = "ctl_deinterlace";\r
+            this.ctl_deinterlace.Size = new System.Drawing.Size(275, 28);\r
+            this.ctl_deinterlace.TabIndex = 41;\r
+            this.ctl_deinterlace.onChange += new System.EventHandler(this.ctl_deinterlace_changed);\r
+            // \r
+            // ctl_denoise\r
+            // \r
+            this.ctl_denoise.AutoSize = true;\r
+            this.ctl_denoise.Location = new System.Drawing.Point(19, 123);\r
+            this.ctl_denoise.Margin = new System.Windows.Forms.Padding(0);\r
+            this.ctl_denoise.MaximumSize = new System.Drawing.Size(400, 30);\r
+            this.ctl_denoise.Name = "ctl_denoise";\r
+            this.ctl_denoise.Size = new System.Drawing.Size(275, 28);\r
+            this.ctl_denoise.TabIndex = 40;\r
+            // \r
+            // ctl_decomb\r
+            // \r
+            this.ctl_decomb.AutoSize = true;\r
+            this.ctl_decomb.Location = new System.Drawing.Point(19, 66);\r
+            this.ctl_decomb.Margin = new System.Windows.Forms.Padding(0);\r
+            this.ctl_decomb.MaximumSize = new System.Drawing.Size(400, 30);\r
+            this.ctl_decomb.Name = "ctl_decomb";\r
+            this.ctl_decomb.Size = new System.Drawing.Size(275, 28);\r
+            this.ctl_decomb.TabIndex = 39;\r
+            this.ctl_decomb.onChange += new System.EventHandler(this.ctl_decomb_changed);\r
+            // \r
+            // ctl_detelecine\r
+            // \r
+            this.ctl_detelecine.AutoSize = true;\r
+            this.ctl_detelecine.Location = new System.Drawing.Point(19, 38);\r
+            this.ctl_detelecine.Margin = new System.Windows.Forms.Padding(0);\r
+            this.ctl_detelecine.MaximumSize = new System.Drawing.Size(400, 30);\r
+            this.ctl_detelecine.Name = "ctl_detelecine";\r
+            this.ctl_detelecine.Size = new System.Drawing.Size(275, 28);\r
+            this.ctl_detelecine.TabIndex = 38;\r
+            // \r
             // frmMain\r
             // \r
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
@@ -3035,16 +3023,13 @@ namespace Handbrake
         internal System.Windows.Forms.TabPage TabPage3;\r
         internal System.Windows.Forms.CheckBox check_largeFile;\r
         internal System.Windows.Forms.CheckBox check_turbo;\r
-        internal System.Windows.Forms.Label Label22;\r
         internal System.Windows.Forms.Label Label2;\r
         internal System.Windows.Forms.Label SliderValue;\r
         internal System.Windows.Forms.ComboBox drp_videoFramerate;\r
         internal System.Windows.Forms.CheckBox check_2PassEncode;\r
         internal System.Windows.Forms.TrackBar slider_videoQuality;\r
         internal System.Windows.Forms.TextBox text_filesize;\r
-        internal System.Windows.Forms.Label Label40;\r
         internal System.Windows.Forms.TextBox text_bitrate;\r
-        internal System.Windows.Forms.Label Label42;\r
         internal System.Windows.Forms.TabPage TabPage1;\r
         internal System.Windows.Forms.CheckBox Check_ChapterMarkers;\r
         internal System.Windows.Forms.Label Label1;\r
@@ -3213,6 +3198,9 @@ namespace Handbrake
         internal Denoise ctl_denoise;\r
         internal Decomb ctl_decomb;\r
         internal Detelecine ctl_detelecine;\r
+        internal System.Windows.Forms.RadioButton radio_cq;\r
+        internal System.Windows.Forms.RadioButton radio_avgBitrate;\r
+        internal System.Windows.Forms.RadioButton radio_targetFilesize;\r
 \r
     }\r
 }
\ No newline at end of file
index 98d99f4..c922440 100644 (file)
@@ -966,8 +966,6 @@ namespace Handbrake
         }\r
         private void text_destination_TextChanged(object sender, EventArgs e)\r
         {\r
-            setAudioByContainer(text_destination.Text);\r
-            setVideoByContainer(text_destination.Text);\r
             string path = text_destination.Text;\r
             if (path.EndsWith(".mp4"))\r
                 drop_format.SelectedIndex = 0;\r
@@ -995,6 +993,9 @@ namespace Handbrake
                 setExtension(".avi");\r
             else if (drop_format.SelectedIndex == 4)\r
                 setExtension(".ogm");\r
+\r
+            setAudioByContainer(drop_format.Text);\r
+            setVideoByContainer(drop_format.Text);\r
         }\r
         private void setExtension(string newExtension)\r
         {\r
@@ -1045,27 +1046,99 @@ namespace Handbrake
                 check_iPodAtom.Enabled = false;\r
                 check_iPodAtom.Checked = false;\r
             }\r
-\r
+            \r
+            // Setup the CQ Slider\r
+            switch (drp_videoEncoder.Text)\r
+            {    \r
+                case "MPEG-4 (FFmpeg)":\r
+                    slider_videoQuality.Minimum = 1;\r
+                    slider_videoQuality.Maximum = 31;\r
+                    slider_videoQuality.Value = 1;\r
+                    SliderValue.Text = "0% QP: 31.00";\r
+                    break;\r
+                case "MPEG-4 (XviD)":\r
+                    slider_videoQuality.Minimum = 1;\r
+                    slider_videoQuality.Maximum = 31;\r
+                    slider_videoQuality.Value = 1;\r
+                    SliderValue.Text = "0% QP: 31.00";\r
+                    break;\r
+                case "H.264 (x264)":\r
+                    slider_videoQuality.Minimum = 0;\r
+                    double tickFreq;\r
+                    double.TryParse(Properties.Settings.Default.x264cqstep, out tickFreq);\r
+                    tickFreq = 1/tickFreq;\r
+                    int freq;\r
+                    int.TryParse(Math.Round(tickFreq).ToString(), out freq);\r
+                    slider_videoQuality.Maximum = (51 * freq);\r
+                    slider_videoQuality.TickFrequency = 1;\r
+                    slider_videoQuality.Value = 0;\r
+                    SliderValue.Text = "0% RF: 51.00";\r
+                    break;\r
+                case "VP3 (Theora)":\r
+                    slider_videoQuality.Minimum = 0;\r
+                    slider_videoQuality.Maximum = 63;\r
+                    slider_videoQuality.Value = 0;\r
+                    SliderValue.Text = "0% QP: 0.00";\r
+                    break;\r
+            }\r
         }\r
-        private void text_bitrate_TextChanged(object sender, EventArgs e)\r
+\r
+        private void slider_videoQuality_Scroll(object sender, EventArgs e)\r
         {\r
-            text_filesize.Text = "";\r
-            slider_videoQuality.Value = 0;\r
-            SliderValue.Text = "0%";\r
+            switch (drp_videoEncoder.Text)\r
+            {\r
+                case "MPEG-4 (FFmpeg)":\r
+                    float rfValue = 31 - (slider_videoQuality.Value -1);\r
+                    float max = slider_videoQuality.Maximum;\r
+                    float min = slider_videoQuality.Minimum;\r
+                    float val = ((max - min) - (rfValue - min)) / (max - min);\r
+                    SliderValue.Text = Math.Round((val * 100), 2) + "% QP:" + (32 - slider_videoQuality.Value);\r
+                    break;\r
+                case "MPEG-4 (XviD)":\r
+                    rfValue = 31 - (slider_videoQuality.Value - 1);\r
+                    max = slider_videoQuality.Maximum;\r
+                    min = slider_videoQuality.Minimum;\r
+                    val = ((max - min) - (rfValue - min)) / (max - min);\r
+                    SliderValue.Text = Math.Round((val * 100), 2) + "% QP:" + (32 - slider_videoQuality.Value);\r
+                    break;\r
+                case "H.264 (x264)":\r
+                    float divided;\r
+                    float.TryParse(Properties.Settings.Default.x264cqstep, out divided);\r
+                    rfValue = 51 - slider_videoQuality.Value*divided;\r
+                    max = slider_videoQuality.Maximum * divided;\r
+                    min = slider_videoQuality.Minimum;\r
+                    val = ((max - min) - (rfValue - min)) / (max - min);\r
+                    SliderValue.Text = Math.Round((val * 100), 2) + "% RF:" + (51 - slider_videoQuality.Value * divided); \r
+                    break;\r
+                case "VP3 (Theora)":\r
+                    rfValue = slider_videoQuality.Value;\r
+                    float value = rfValue/63;\r
+                    SliderValue.Text = Math.Round((value * 100), 2) + "% QP:" + slider_videoQuality.Value;\r
+                    break;\r
+            }\r
+        }\r
+        private void radio_targetFilesize_CheckedChanged(object sender, EventArgs e)\r
+        {\r
+            text_bitrate.Enabled = false;\r
+            text_filesize.Enabled = true;\r
+            slider_videoQuality.Enabled = false;\r
+\r
             check_2PassEncode.Enabled = true;\r
         }\r
-        private void text_filesize_TextChanged(object sender, EventArgs e)\r
+        private void radio_avgBitrate_CheckedChanged(object sender, EventArgs e)\r
         {\r
-            text_bitrate.Text = "";\r
-            slider_videoQuality.Value = 0;\r
-            SliderValue.Text = "0%";\r
+            text_bitrate.Enabled = true;\r
+            text_filesize.Enabled = false;\r
+            slider_videoQuality.Enabled = false;\r
+\r
             check_2PassEncode.Enabled = true;\r
         }\r
-        private void slider_videoQuality_Scroll(object sender, EventArgs e)\r
+        private void radio_cq_CheckedChanged(object sender, EventArgs e)\r
         {\r
-            SliderValue.Text = slider_videoQuality.Value + "%";\r
-            text_bitrate.Text = "";\r
-            text_filesize.Text = "";\r
+            text_bitrate.Enabled = false;\r
+            text_filesize.Enabled = false;\r
+            slider_videoQuality.Enabled = true;\r
+\r
             check_2PassEncode.Enabled = false;\r
             check_2PassEncode.CheckState = CheckState.Unchecked;\r
         }\r
@@ -1756,7 +1829,7 @@ namespace Handbrake
         {\r
             string oldval;\r
 \r
-            if ((path.EndsWith(".mp4")) || (path.EndsWith(".m4v")))\r
+            if ((path.Contains("MP4")) || (path.Contains("M4V")))\r
             {\r
                 oldval = drp_audenc_1.Text;\r
                 drp_audenc_1.Items.Clear();\r
@@ -1766,7 +1839,7 @@ namespace Handbrake
                     drp_audenc_1.SelectedIndex = 0;\r
 \r
             }\r
-            else if (path.EndsWith(".avi"))\r
+            else if (path.Contains("AVI"))\r
             {\r
                 oldval = drp_audenc_1.Text;\r
                 drp_audenc_1.Items.Clear();\r
@@ -1776,14 +1849,14 @@ namespace Handbrake
                     drp_audenc_1.SelectedIndex = 0;\r
 \r
             }\r
-            else if (path.EndsWith(".ogm"))\r
+            else if (path.Contains("OGM"))\r
             {\r
                 drp_audenc_1.Items.Clear();\r
                 drp_audenc_1.Items.Add("Vorbis");\r
                 drp_audenc_1.SelectedIndex = 0;\r
 \r
             }\r
-            else if (path.EndsWith(".mkv"))\r
+            else if (path.Contains("MKV"))\r
             {\r
                 drp_audenc_1.Items.Clear();\r
                 drp_audenc_1.Items.Add("AAC");\r
@@ -1805,7 +1878,7 @@ namespace Handbrake
         {\r
             string oldval;\r
 \r
-            if ((path.EndsWith(".mp4")) || (path.EndsWith(".m4v")))\r
+            if ((path.Contains("MP3")) || (path.Contains("M4V")))\r
             {\r
                 oldval = drp_videoEncoder.Text;\r
                 drp_videoEncoder.Items.Clear();\r
@@ -1818,7 +1891,7 @@ namespace Handbrake
                     drp_videoEncoder.Text = oldval;\r
 \r
             }\r
-            else if (path.EndsWith(".avi"))\r
+            else if (path.Contains("AVI"))\r
             {\r
                 oldval = drp_videoEncoder.Text;\r
                 drp_videoEncoder.Items.Clear();\r
@@ -1830,7 +1903,7 @@ namespace Handbrake
                 else\r
                     drp_videoEncoder.Text = oldval;\r
             }\r
-            else if (path.EndsWith(".ogm"))\r
+            else if (path.Contains("OGM"))\r
             {\r
                 oldval = drp_videoEncoder.Text;\r
                 drp_videoEncoder.Items.Clear();\r
@@ -1842,7 +1915,7 @@ namespace Handbrake
                 else\r
                     drp_videoEncoder.Text = oldval;\r
             }\r
-            else if (path.EndsWith(".mkv"))\r
+            else if (path.Contains("MKV"))\r
             {\r
                 oldval = drp_videoEncoder.Text;\r
                 drp_videoEncoder.Items.Clear();\r
@@ -2097,6 +2170,7 @@ namespace Handbrake
 \r
         #endregion\r
 \r
+        \r
 \r
         // This is the END of the road ------------------------------------------------------------------------------\r
     }\r
index dddbeb3..00fd530 100644 (file)
   <resheader name="writer">\r
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
   </resheader>\r
-  <metadata name="Label38.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">\r
-    <value>False</value>\r
-  </metadata>\r
   <metadata name="notifyIconMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>977, 15</value>\r
   </metadata>\r
index 1d74723..c7b5036 100644 (file)
@@ -144,12 +144,12 @@ namespace Handbrake
 \r
             if (mainWindow.ctl_decomb.getDropValue == "Off")\r
                 mainWindow.ctl_deinterlace.setOption(presetQuery.DeInterlace);\r
-            else \r
+            else\r
                 mainWindow.ctl_deinterlace.setOption("None"); // Don't want decomb and deinterlace on at the same time\r
 \r
             mainWindow.ctl_denoise.setOption(presetQuery.DeNoise);\r
             mainWindow.ctl_detelecine.setOption(presetQuery.DeTelecine);\r
-            \r
+\r
             if (presetQuery.DeBlock != 0)\r
             {\r
                 mainWindow.slider_deblock.Value = presetQuery.DeBlock;\r
@@ -164,13 +164,45 @@ namespace Handbrake
 \r
             // Video Settings Tab\r
             #region video\r
-            mainWindow.text_bitrate.Text = presetQuery.AverageVideoBitrate;\r
-            mainWindow.text_filesize.Text = presetQuery.VideoTargetSize;\r
-            mainWindow.slider_videoQuality.Value = presetQuery.VideoQuality;\r
-            if (mainWindow.slider_videoQuality.Value != 0)\r
+            if (presetQuery.AverageVideoBitrate != null)\r
+            {\r
+                mainWindow.radio_avgBitrate.Checked = true;\r
+                mainWindow.text_bitrate.Text = presetQuery.AverageVideoBitrate;\r
+            }\r
+            if (presetQuery.VideoTargetSize != null)\r
             {\r
-                int ql = presetQuery.VideoQuality;\r
-                mainWindow.SliderValue.Text = ql + "%";\r
+                mainWindow.radio_targetFilesize.Checked = true;\r
+                mainWindow.text_filesize.Text = presetQuery.VideoTargetSize;\r
+            }\r
+\r
+            // Quality\r
+            if (presetQuery.VideoQuality != 0)\r
+            {\r
+                mainWindow.radio_cq.Checked = true;\r
+                if (presetQuery.VideoEncoder == "H.264 (x264)")\r
+                {\r
+                    int value;\r
+                    float presetValue, calculated, x264step;\r
+                    float.TryParse(presetQuery.VideoQuality.ToString(), out presetValue);\r
+                    float.TryParse(Properties.Settings.Default.x264cqstep, out x264step);\r
+\r
+                    float x = 51 / x264step;\r
+\r
+                    calculated = presetValue / x264step;\r
+                    calculated = x - calculated;\r
+\r
+                    //TODO: Handle cases where it can't parse a value due to the float being too lage.\r
+                    // when used with .33 and .2 and 1.0 for example.\r
+                    int.TryParse(calculated.ToString(), out value);\r
+\r
+                    mainWindow.slider_videoQuality.Value = value;\r
+                }\r
+                else\r
+                {\r
+                    int presetVal;\r
+                    int.TryParse(presetQuery.VideoQuality.ToString(), out presetVal);\r
+                    mainWindow.slider_videoQuality.Value = presetVal;\r
+                }\r
             }\r
 \r
             if (presetQuery.TwoPass)\r
index 738bb25..4dabd24 100644 (file)
@@ -197,19 +197,38 @@ namespace Handbrake
                 query += " -g ";\r
 \r
             // Video Settings\r
-            if (mainWindow.text_bitrate.Text != "")\r
+            if (mainWindow.radio_avgBitrate.Checked)\r
                 query += " -b " + mainWindow.text_bitrate.Text;\r
 \r
-            if (mainWindow.text_filesize.Text != "")\r
+            if (mainWindow.radio_targetFilesize.Checked)\r
                 query += " -S " + mainWindow.text_filesize.Text;\r
 \r
             // Video Quality Setting\r
-            double videoQuality = mainWindow.slider_videoQuality.Value;\r
-            if (videoQuality != 0)\r
+            if (mainWindow.radio_cq.Checked)\r
             {\r
-                videoQuality = videoQuality / 100;\r
-                query += " -q " + videoQuality.ToString(new CultureInfo("en-US"));\r
-            }\r
+                float value;\r
+                switch (mainWindow.drp_videoEncoder.Text)\r
+                {\r
+                    case "MPEG-4 (FFmpeg)":\r
+                        value = 31 - (mainWindow.slider_videoQuality.Value -1);\r
+                        query += " -q " + value.ToString(new CultureInfo("en-US"));\r
+                        break;\r
+                    case "MPEG-4 (XviD)":\r
+                        value = 31 - (mainWindow.slider_videoQuality.Value - 1);\r
+                        query += " -q " + value.ToString(new CultureInfo("en-US"));\r
+                        break;\r
+                    case "H.264 (x264)":\r
+                        float divided;\r
+                        float.TryParse(Properties.Settings.Default.x264cqstep, out divided);\r
+                        value = 51 - mainWindow.slider_videoQuality.Value * divided;\r
+                        query += " -q " + value.ToString(new CultureInfo("en-US"));\r
+                        break;\r
+                    case "VP3 (Theora)":\r
+                        value = mainWindow.slider_videoQuality.Value;\r
+                        query += " -q " + value.ToString(new CultureInfo("en-US"));\r
+                        break;\r
+                } \r
+            }     \r
 \r
             if (mainWindow.check_2PassEncode.Checked)\r
                 query += " -2 ";\r
index 5dd7247..7c13e91 100644 (file)
@@ -113,6 +113,9 @@ namespace Handbrake
             this.label26 = new System.Windows.Forms.Label();\r
             this.label27 = new System.Windows.Forms.Label();\r
             this.openFile_vlc = new System.Windows.Forms.OpenFileDialog();\r
+            this.label28 = new System.Windows.Forms.Label();\r
+            this.drop_x264step = new System.Windows.Forms.ComboBox();\r
+            this.label30 = new System.Windows.Forms.Label();\r
             this.tab_options.SuspendLayout();\r
             this.tab_general.SuspendLayout();\r
             this.tab_picture.SuspendLayout();\r
@@ -595,6 +598,9 @@ namespace Handbrake
             // \r
             // tab_advanced\r
             // \r
+            this.tab_advanced.Controls.Add(this.label30);\r
+            this.tab_advanced.Controls.Add(this.drop_x264step);\r
+            this.tab_advanced.Controls.Add(this.label28);\r
             this.tab_advanced.Controls.Add(this.check_queryEditorTab);\r
             this.tab_advanced.Controls.Add(this.lbl_appcastUnstable);\r
             this.tab_advanced.Controls.Add(this.check_mainMinimize);\r
@@ -1044,6 +1050,44 @@ namespace Handbrake
             this.openFile_vlc.DefaultExt = "exe";\r
             this.openFile_vlc.Filter = "exe|*.exe";\r
             // \r
+            // label28\r
+            // \r
+            this.label28.AutoSize = true;\r
+            this.label28.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
+            this.label28.Location = new System.Drawing.Point(27, 142);\r
+            this.label28.Name = "label28";\r
+            this.label28.Size = new System.Drawing.Size(43, 13);\r
+            this.label28.TabIndex = 85;\r
+            this.label28.Text = "x264:";\r
+            // \r
+            // drop_x264step\r
+            // \r
+            this.drop_x264step.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
+            this.drop_x264step.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
+            this.drop_x264step.FormattingEnabled = true;\r
+            this.drop_x264step.Items.AddRange(new object[] {\r
+            "1.0",\r
+            "0.50",\r
+            "0.33",\r
+            "0.25",\r
+            "0.20"});\r
+            this.drop_x264step.Location = new System.Drawing.Point(312, 139);\r
+            this.drop_x264step.Name = "drop_x264step";\r
+            this.drop_x264step.Size = new System.Drawing.Size(111, 21);\r
+            this.drop_x264step.TabIndex = 86;\r
+            this.ToolTip.SetToolTip(this.drop_x264step, "The number of processor\'s / processor cores. Unless your having problems, leave o" +\r
+                    "n Automatic.");\r
+            this.drop_x264step.SelectedIndexChanged += new System.EventHandler(this.x264step_SelectedIndexChanged);\r
+            // \r
+            // label30\r
+            // \r
+            this.label30.AutoSize = true;\r
+            this.label30.Location = new System.Drawing.Point(76, 142);\r
+            this.label30.Name = "label30";\r
+            this.label30.Size = new System.Drawing.Size(230, 13);\r
+            this.label30.TabIndex = 87;\r
+            this.label30.Text = "Constant Quality fractional granularity:\r\n";\r
+            // \r
             // frmOptions\r
             // \r
             this.ClientSize = new System.Drawing.Size(514, 375);\r
@@ -1153,5 +1197,8 @@ namespace Handbrake
         private System.Windows.Forms.Label lbl_appcastUnstable;\r
         internal System.Windows.Forms.CheckBox check_mainMinimize;\r
         internal System.Windows.Forms.CheckBox check_queryEditorTab;\r
+        private System.Windows.Forms.Label label30;\r
+        internal System.Windows.Forms.ComboBox drop_x264step;\r
+        private System.Windows.Forms.Label label28;\r
     }\r
 }
\ No newline at end of file
index e56dbe7..d6ee3a3 100644 (file)
@@ -113,6 +113,8 @@ namespace Handbrake
             // Enable snapshot updating\r
             if (Properties.Settings.Default.MainWindowMinimize == "Checked")\r
                 check_mainMinimize.CheckState = CheckState.Checked;\r
+\r
+            drop_x264step.SelectedItem = Properties.Settings.Default.x264cqstep;\r
         }\r
 \r
         #region General\r
@@ -246,6 +248,12 @@ namespace Handbrake
         {\r
             Properties.Settings.Default.checkSnapshot = check_snapshot.CheckState.ToString();\r
         }\r
+\r
+        private void x264step_SelectedIndexChanged(object sender, EventArgs e)\r
+        {\r
+            Properties.Settings.Default.x264cqstep = drop_x264step.Text;\r
+        }\r
+\r
         #endregion\r
 \r
         private void btn_close_Click(object sender, EventArgs e)\r
@@ -253,5 +261,7 @@ namespace Handbrake
             Properties.Settings.Default.Save(); // Small hack for Vista. Seems to work fine on XP without this\r
             this.Close();\r
         }\r
+\r
+        \r
     }\r
 }
\ No newline at end of file