OSDN Git Service

WinGui:
authorsr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 9 Aug 2008 18:59:33 +0000 (18:59 +0000)
committersr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 9 Aug 2008 18:59:33 +0000 (18:59 +0000)
- Added Memory and screen bounds to the activity log.
- Removed some x264 code from frmMain. The x264 widgets are now populated from the designer file.
- Removed some duplicate code from x264Panel.cs
- Added the macgui's animate function to x264Panel.cs
- Setup the Audio panel to default the sample rate to audio on audio track change.

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

win/C#/Functions/SystemInfo.cs [new file with mode: 0644]
win/C#/Functions/x264Panel.cs
win/C#/HandBrakeCS.csproj
win/C#/Program.cs
win/C#/frmActivityWindow.cs
win/C#/frmMain.Designer.cs
win/C#/frmMain.cs

diff --git a/win/C#/Functions/SystemInfo.cs b/win/C#/Functions/SystemInfo.cs
new file mode 100644 (file)
index 0000000..0b74573
--- /dev/null
@@ -0,0 +1,57 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Collections.Specialized;\r
+using System.ComponentModel;\r
+using System.Data;\r
+using System.Drawing;\r
+using System.Text;\r
+using System.Windows.Forms;\r
+using System.Net;\r
+using System.IO;\r
+using System.Diagnostics;\r
+using System.Threading;\r
+using System.Runtime.InteropServices;\r
+using System.Globalization;\r
+\r
+namespace Handbrake.Functions\r
+{\r
+    class SystemInfo\r
+    {\r
+        #region CheckRam\r
+        private struct MEMORYSTATUS\r
+        {\r
+            public UInt32 dwLength;\r
+            public UInt32 dwMemoryLoad;\r
+            public UInt32 dwTotalPhys; // Used\r
+            public UInt32 dwAvailPhys;\r
+            public UInt32 dwTotalPageFile;\r
+            public UInt32 dwAvailPageFile;\r
+            public UInt32 dwTotalVirtual;\r
+            public UInt32 dwAvailVirtual;\r
+        }\r
+\r
+        [DllImport("kernel32.dll")]\r
+        private static extern void GlobalMemoryStatus\r
+        (\r
+            ref MEMORYSTATUS lpBuffer\r
+        );\r
+\r
+\r
+        /// <summary>\r
+        /// Returns the total physical ram in a system\r
+        /// </summary>\r
+        /// <returns></returns>\r
+        public uint TotalPhysicalMemory()\r
+        {\r
+            MEMORYSTATUS memStatus = new MEMORYSTATUS();\r
+            GlobalMemoryStatus(ref memStatus);\r
+\r
+            uint MemoryInfo = memStatus.dwTotalPhys;\r
+            MemoryInfo = MemoryInfo / 1024 / 1024; \r
+\r
+            return MemoryInfo;\r
+        }\r
+        #endregion\r
+\r
+    }\r
+}\r
index 0aeac29..0101f0f 100644 (file)
@@ -7,7 +7,6 @@ namespace Handbrake.Functions
 {\r
     class x264Panel\r
     {\r
-        Boolean NoWidgetUpdate = false;\r
 \r
         /// <summary>\r
         /// Reset all components to defaults and clears the x264 rtf box\r
@@ -15,7 +14,7 @@ namespace Handbrake.Functions
         public void reset2Defaults(frmMain mainWindow)\r
         {\r
             mainWindow.check_8x8DCT.CheckState = CheckState.Unchecked;\r
-            mainWindow.check_bFrameDistortion.CheckState = CheckState.Unchecked;\r
+            mainWindow.check_bFrameRateDistortion.CheckState = CheckState.Unchecked;\r
             mainWindow.check_BidirectionalRefinement.CheckState = CheckState.Unchecked;\r
             mainWindow.check_Cabac.CheckState = CheckState.Checked;\r
             mainWindow.check_mixedReferences.CheckState = CheckState.Unchecked;\r
@@ -42,10 +41,6 @@ namespace Handbrake.Functions
         /// </summary>\r
         public void X264_SetCurrentSettingsInPanel(frmMain mainWindow)\r
         {\r
-            // When the widgets are changed, we don't want them to update the text box again. No Need.\r
-            // This boolean controls the Widget Change function\r
-\r
-\r
             /* Set widgets depending on the opt string in field */\r
             String thisOpt; // The separated option such as "bframes=3"\r
             String optName = ""; // The option name such as "bframes"\r
@@ -64,12 +59,12 @@ namespace Handbrake.Functions
                 /*iterate through the array and get <opts> and <values*/\r
                 int loopcounter;\r
                 int currentOptsArrayCount = currentOptsArray.Length;\r
-         \r
+\r
 \r
                 /*iterate through the array and get <opts> and <values*/\r
                 for (loopcounter = 0; loopcounter < currentOptsArrayCount; loopcounter++)\r
                 {\r
-     \r
+\r
                     thisOpt = currentOptsArray[loopcounter];\r
                     String[] splitOptRange = thisOpt.Split('=');\r
 \r
@@ -132,7 +127,7 @@ namespace Handbrake.Functions
 \r
                         /*BRDO NSPopUpButton*/\r
                         else if (optName.Equals("brdo"))\r
-                            mainWindow.check_bFrameDistortion.CheckState = CheckState.Checked;\r
+                            mainWindow.check_bFrameRateDistortion.CheckState = CheckState.Checked;\r
 \r
                         /*B Pyramid NSPopUpButton*/\r
                         else if (optName.Equals("b-pyramid"))\r
@@ -278,43 +273,90 @@ namespace Handbrake.Functions
             if (changedOptString != "")\r
                 mainWindow.rtf_x264Query.Text = changedOptString;\r
         }\r
+        /*\r
+         * Take a single option and standardize it. Returns as a String\r
+         * Input: String. - Single X264 Option. Name only\r
+         * Output: String - Single X264 Option. Name only. Changed to standard format\r
+         */\r
+        private string X264_StandardizeOptNames(String cleanOptNameString)\r
+        {\r
+            String input = cleanOptNameString;\r
+\r
+            if (input.Equals("ref") || input.Equals("frameref"))\r
+                cleanOptNameString = "ref";\r
+\r
+            /*No Fast PSkip nofast_pskip*/\r
+            if (input.Equals("no-fast-pskip") || input.Equals("no_fast_pskip") || input.Equals("nofast_pskip"))\r
+                cleanOptNameString = "no-fast-pskip";\r
+\r
+            /*No Dict Decimate*/\r
+            if (input.Equals("no-dct-decimate") || input.Equals("no_dct_decimate") || input.Equals("nodct_decimate"))\r
+                cleanOptNameString = "no-dct-decimate";\r
+\r
+            /*Subme*/\r
+            if (input.Equals("subme"))\r
+                cleanOptNameString = "subq";\r
+\r
+            /*ME Range*/\r
+            if (input.Equals("me-range") || input.Equals("me_range"))\r
+                cleanOptNameString = "merange";\r
+\r
+            /*WeightB*/\r
+            if (input.Equals("weight-b") || input.Equals("weight_b"))\r
+                cleanOptNameString = "weightb";\r
+\r
+            /*BRDO*/\r
+            if (input.Equals("b-rdo") || input.Equals("b_rdo"))\r
+                cleanOptNameString = "brdo";\r
+\r
+            /*B Pyramid*/\r
+            if (input.Equals("b_pyramid"))\r
+                cleanOptNameString = "b-pyramid";\r
+\r
+            /*Direct Prediction*/\r
+            if (input.Equals("direct-pred") || input.Equals("direct_pred"))\r
+                cleanOptNameString = "direct";\r
+\r
+            /*Deblocking*/\r
+            if (input.Equals("filter"))\r
+                cleanOptNameString = "deblock";\r
+\r
+            /*Analysis*/\r
+            if (input.Equals("partitions"))\r
+                cleanOptNameString = "analyse";\r
+\r
+            return cleanOptNameString;\r
+        }\r
 \r
         /// <summary>\r
         /// This function will update the X264 Query when one of the GUI widgets changes.\r
         /// </summary>\r
         public void on_x264_WidgetChange(string sender, frmMain mainWindow)\r
         {\r
-            if (NoWidgetUpdate == false)\r
-            {\r
-                String optNameToChange = sender;\r
-                String currentOptString = mainWindow.rtf_x264Query.Text;\r
+            animate(mainWindow, sender);\r
+            String optNameToChange = sender;\r
+            String currentOptString = mainWindow.rtf_x264Query.Text;\r
 \r
-                /*First, we create a pattern to check for ":"optNameToChange"=" to modify the option if the name falls after\r
-                    the first character of the opt string (hence the ":") */\r
-                String checkOptNameToChange = ":" + optNameToChange + "=";\r
-                String checkOptNameToChangeBegin = optNameToChange + "=";\r
+            /*First, we create a pattern to check for ":"optNameToChange"=" to modify the option if the name falls after\r
+                the first character of the opt string (hence the ":") */\r
+            String checkOptNameToChange = ":" + optNameToChange + "=";\r
+            String checkOptNameToChangeBegin = optNameToChange + "=";\r
 \r
-                // IF the current H264 Option String Contains Multiple Items or Just 1 Item\r
-                if ((currentOptString.Contains(checkOptNameToChange)) || (currentOptString.StartsWith(checkOptNameToChangeBegin)))\r
-                    hasFullOption(currentOptString, optNameToChange, mainWindow);\r
-                else // IF there is no options in the rich text box!\r
-                    hasNoOptions(optNameToChange, mainWindow);\r
-            }\r
-            else\r
-            {\r
-                NoWidgetUpdate = false;\r
-            }\r
+            // IF the current H264 Option String Contains Multiple Items or Just 1 Item\r
+            if ((currentOptString.Contains(checkOptNameToChange)) || (currentOptString.StartsWith(checkOptNameToChangeBegin)))\r
+                hasOptions(currentOptString, optNameToChange, mainWindow);\r
+            else // IF there is no options in the rich text box!\r
+                hasNoOptions(optNameToChange, mainWindow);\r
         }\r
-        \r
-\r
-        // Some Private Functions used by the above Public Functions\r
         /*\r
          * Used by on_x264_WidgetChange()\r
-         * Called when the current x264 option string contains multiple (or a single) item(s) in it seperated by :\r
-         * Basically, it updates the current option that the widget corrosponds to, if it is already in thes string\r
-         * otherwise, it adds it to the string.\r
+         ** hasOptions - Called when the current x264 option string contains multiple (or a single) item(s) in it seperated by :\r
+         * it updates the current option that the widget corrosponds to, if it is already in thes string.\r
+         ** hasNoOptions - Add's an option to the x264 query string.\r
+         * Handles 2 cases.  1 Where rtf_x264Query.Text is empty, and one where there is an option with no value,\r
+         * e.g no-fast-pskip\r
          */\r
-        private void hasFullOption(string currentOptString, string optNameToChange, frmMain mainWindow)\r
+        private void hasOptions(string currentOptString, string optNameToChange, frmMain mainWindow)\r
         {\r
             String thisOpt;             // The separated option such as "bframes=3"\r
             String optName = "";        // The option name such as "bframes"\r
@@ -388,7 +430,7 @@ namespace Handbrake.Functions
                         }\r
                         else if (optNameToChange.Equals("brdo"))\r
                         {\r
-                            if (mainWindow.check_bFrameDistortion.CheckState == CheckState.Checked)\r
+                            if (mainWindow.check_bFrameRateDistortion.CheckState == CheckState.Checked)\r
                                 thisOpt = "brdo=1";\r
                             else\r
                                 thisOpt = "";\r
@@ -557,445 +599,304 @@ namespace Handbrake.Functions
             /* Change the option string to reflect the new mod settings */\r
             mainWindow.rtf_x264Query.Text = changedOptString;\r
         }\r
-\r
-        /*\r
-         * Used by on_x264_WidgetChange()\r
-         * Called when the current x264 option string contains no options.\r
-         * This simply adds the option to the x264 query in the gui.\r
-         */\r
         private void hasNoOptions(string optNameToChange, frmMain mainWindow)\r
         {\r
-            // If the text box is blank\r
-            if (mainWindow.rtf_x264Query.Text == "")\r
+            string query = "";\r
+            string colon = "";\r
+            if (mainWindow.rtf_x264Query.Text != "")\r
+                colon = ":";\r
+\r
+            query = mainWindow.rtf_x264Query.Text;\r
+            if (optNameToChange.Equals("me"))\r
             {\r
-                if (optNameToChange.Equals("me"))\r
+                switch (mainWindow.drop_MotionEstimationMethod.SelectedIndex)\r
                 {\r
-                    switch (mainWindow.drop_MotionEstimationMethod.SelectedIndex)\r
-                    {\r
-                        case 1:\r
-                            mainWindow.rtf_x264Query.Text = "me=dia";\r
-                            break;\r
-\r
-                        case 2:\r
-                            mainWindow.rtf_x264Query.Text = "me=hex";\r
+                    case 1:\r
+                        query = query + colon + "me=dia";\r
+                        break;\r
 \r
-                            break;\r
+                    case 2:\r
+                        query = query + colon + "me=hex";\r
+                        break;\r
 \r
-                        case 3:\r
-                            mainWindow.rtf_x264Query.Text = "me=umh";\r
-                            break;\r
+                    case 3:\r
+                        query = query + colon + "me=umh";\r
+                        break;\r
 \r
-                        case 4:\r
-                            mainWindow.rtf_x264Query.Text = "me=esa";\r
-                            break;\r
+                    case 4:\r
+                        query = query + colon + "me=esa";\r
+                        break;\r
 \r
-                        default:\r
-                            break;\r
-                    }\r
+                    default:\r
+                        break;\r
                 }\r
-                else if (optNameToChange.Equals("direct"))\r
+            }\r
+            else if (optNameToChange.Equals("direct"))\r
+            {\r
+                switch (mainWindow.drop_directPrediction.SelectedIndex)\r
                 {\r
-                    switch (mainWindow.drop_directPrediction.SelectedIndex)\r
-                    {\r
-                        case 1:\r
-                            mainWindow.rtf_x264Query.Text = "direct=none";\r
-                            break;\r
+                    case 1:\r
+                        query = query + colon + "direct=none";\r
+                        break;\r
 \r
-                        case 2:\r
-                            mainWindow.rtf_x264Query.Text = "direct=spatial";\r
-                            break;\r
+                    case 2:\r
+                        query = query + colon + "direct=spatial";\r
+                        break;\r
 \r
-                        case 3:\r
-                            mainWindow.rtf_x264Query.Text = "direct=temporal";\r
-                            break;\r
+                    case 3:\r
+                        query = query + colon + "direct=temporal";\r
+                        break;\r
 \r
-                        case 4:\r
-                            mainWindow.rtf_x264Query.Text = "direct=auto";\r
-                            break;\r
+                    case 4:\r
+                        query = query + colon + "direct=auto";\r
+                        break;\r
 \r
-                        default:\r
-                            break;\r
-                    }\r
+                    default:\r
+                        break;\r
                 }\r
-                else if (optNameToChange.Equals("analyse"))\r
+            }\r
+            else if (optNameToChange.Equals("analyse"))\r
+            {\r
+                switch (mainWindow.drop_analysis.SelectedIndex)\r
                 {\r
-                    switch (mainWindow.drop_analysis.SelectedIndex)\r
-                    {\r
-                        case 1:\r
-                            mainWindow.rtf_x264Query.Text = "analyse=none";\r
-                            break;\r
+                    case 1:\r
+                        query = query + colon + "analyse=none";\r
+                        break;\r
 \r
-                        case 2:\r
-                            mainWindow.rtf_x264Query.Text = "analyse=all";\r
-                            break;\r
+                    case 2:\r
+                        query = query + colon + "analyse=all";\r
+                        break;\r
 \r
-                        default:\r
-                            break;\r
-                    }\r
+                    default:\r
+                        break;\r
                 }\r
+            }\r
+            else if (optNameToChange.Equals("merange"))\r
+            {\r
+                int value = mainWindow.drop_MotionEstimationRange.SelectedIndex + 3;\r
+                query = query + colon + "merange=" + value.ToString();\r
+            }\r
+            else if (optNameToChange.Equals("deblock"))\r
+            {\r
+                String da = mainWindow.drop_deblockAlpha.SelectedItem.ToString();\r
+                String db = mainWindow.drop_deblockBeta.Text.ToString();\r
 \r
-                else if (optNameToChange.Equals("merange"))\r
+                if (((da.Contains("Default")) && (db.Contains("Default"))) || ((da.Contains("0")) && (db.Contains("0"))))\r
                 {\r
-                    int value = mainWindow.drop_MotionEstimationRange.SelectedIndex + 3;\r
-                    mainWindow.rtf_x264Query.Text = "merange=" + value.ToString();\r
+                    mainWindow.drop_deblockBeta.SelectedItem = "Default (0)";\r
+                    mainWindow.drop_deblockAlpha.SelectedItem = "Default (0)";\r
                 }\r
-                else if (optNameToChange.Equals("deblock"))\r
+                else\r
                 {\r
-                    String da = mainWindow.drop_deblockAlpha.SelectedItem.ToString();\r
-                    String db = mainWindow.drop_deblockBeta.SelectedItem.ToString();\r
+                    if (db.Contains("Default"))\r
+                        db = "0";\r
 \r
-                    if (((da.Contains("Default")) && (db.Contains("Default"))) || ((da.Contains("0")) && (db.Contains("0"))))\r
-                    {\r
-                        mainWindow.drop_deblockBeta.SelectedItem = "Default (0)";\r
-                        mainWindow.drop_deblockAlpha.SelectedItem = "Default (0)";\r
-                        mainWindow.rtf_x264Query.Text = "";\r
-                    }\r
-                    else if ((!da.Contains("Default")) && (db.Contains("Default")))\r
-                    {\r
-                        mainWindow.drop_deblockBeta.SelectedItem = "0";\r
-                        mainWindow.rtf_x264Query.Text = "deblock=" + da + ",0";\r
-                    }\r
-                    else if ((da.Contains("Default")) && (!db.Contains("Default")))\r
-                    {\r
-                        mainWindow.drop_deblockAlpha.SelectedItem = "0";\r
-                        mainWindow.rtf_x264Query.Text = "deblock=0," + db;\r
-                    }\r
-                    else if ((!da.Contains("Default")) && (!db.Contains("Default")))\r
-                    {\r
-                        mainWindow.rtf_x264Query.Text = "deblock=" + da + "," + db;\r
-                    }\r
-                }\r
-                else if (optNameToChange.Equals("mixed-refs"))\r
-                {\r
-                    if (mainWindow.check_mixedReferences.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = "mixed-refs=1";\r
-                    else\r
-                        mainWindow.rtf_x264Query.Text = "";\r
-                }\r
-                else if (optNameToChange.Equals("weightb"))\r
-                {\r
-                    if (mainWindow.check_weightedBFrames.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = "weightb=1";\r
-                    else\r
-                        mainWindow.rtf_x264Query.Text = "";\r
-                }\r
-                else if (optNameToChange.Equals("brdo"))\r
-                {\r
-                    if (mainWindow.check_bFrameDistortion.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = "brdo=1";\r
-                    else\r
-                        mainWindow.rtf_x264Query.Text = "";\r
-                }\r
-                else if (optNameToChange.Equals("bime"))\r
-                {\r
-                    if (mainWindow.check_BidirectionalRefinement.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = "bime=1";\r
-                    else\r
-                        mainWindow.rtf_x264Query.Text = "";\r
-                }\r
-                else if (optNameToChange.Equals("b-pyramid"))\r
-                {\r
-                    if (mainWindow.check_pyrmidalBFrames.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = "b-pyramid=1";\r
-                    else\r
-                        mainWindow.rtf_x264Query.Text = "";\r
-                }\r
-                else if (optNameToChange.Equals("no-fast-pskip"))\r
-                {\r
-                    if (mainWindow.check_noFastPSkip.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = "no-fast-pskip=1";\r
-                    else\r
-                        mainWindow.rtf_x264Query.Text = "";\r
-                }\r
-                else if (optNameToChange.Equals("no-dct-decimate"))\r
-                {\r
-                    if (mainWindow.check_noDCTDecimate.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = "no-dct-decimate=1";\r
-                    else\r
-                        mainWindow.rtf_x264Query.Text = "";\r
-                }\r
-                else if (optNameToChange.Equals("8x8dct"))\r
-                {\r
-                    if (mainWindow.check_8x8DCT.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = "8x8dct=1";\r
-                    else\r
-                        mainWindow.rtf_x264Query.Text = "";\r
-                }\r
-                else if (optNameToChange.Equals("cabac"))\r
-                {\r
-                    if (mainWindow.check_Cabac.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = "";\r
-                    else\r
-                        mainWindow.rtf_x264Query.Text = "cabac=0";\r
-                }\r
-                else if (optNameToChange.Equals("ref"))\r
-                {\r
-                    string refItem = mainWindow.drop_refFrames.SelectedItem.ToString();\r
-                    if (!refItem.Contains("default"))\r
-                        mainWindow.rtf_x264Query.Text = "ref=" + mainWindow.drop_refFrames.SelectedItem.ToString();\r
-                }\r
-                else if (optNameToChange.Equals("bframes"))\r
-                {\r
-                    String value = mainWindow.drop_bFrames.SelectedItem.ToString();\r
-                    if (!mainWindow.drop_bFrames.SelectedItem.ToString().Contains("Default"))\r
-                        mainWindow.rtf_x264Query.Text = "bframes=" + value;\r
-                }\r
-                else if (optNameToChange.Equals("subq"))\r
-                {\r
-                    String value = mainWindow.drop_subpixelMotionEstimation.SelectedItem.ToString();\r
-                    if (!mainWindow.drop_subpixelMotionEstimation.SelectedItem.ToString().Contains("Default"))\r
-                        mainWindow.rtf_x264Query.Text = "subq=" + value;\r
-                }\r
-                else if (optNameToChange.Equals("trellis"))\r
-                {\r
-                    String value = mainWindow.drop_trellis.SelectedItem.ToString();\r
-                    if (!mainWindow.drop_trellis.SelectedItem.ToString().Contains("Default"))\r
-                        mainWindow.rtf_x264Query.Text = "trellis=" + value;\r
-                }\r
+                    if (da.Contains("Default"))\r
+                        da = "0";\r
 \r
-                //*******************************************************\r
+                    query = query + colon + "deblock=" + da + "," + db;\r
+                }\r
             }\r
-            else // There was some text in the box. This deals with options with no value. e.g "no-fast-pskip"\r
+            else if (optNameToChange.Equals("mixed-refs"))\r
             {\r
-                //*******************************************************\r
-                if (optNameToChange.Equals("me"))\r
-                {\r
-                    switch (mainWindow.drop_MotionEstimationMethod.SelectedIndex)\r
-                    {\r
-                        case 1:\r
-                            mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":me=dia";\r
-                            break;\r
-\r
-                        case 2:\r
-                            mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":me=hex";\r
-                            break;\r
-\r
-                        case 3:\r
-                            mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":me=umh";\r
-                            break;\r
-\r
-                        case 4:\r
-                            mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":me=esa";\r
-                            break;\r
-\r
-                        default:\r
-                            break;\r
-                    }\r
-                }\r
-                else if (optNameToChange.Equals("direct"))\r
-                {\r
-                    switch (mainWindow.drop_directPrediction.SelectedIndex)\r
-                    {\r
-                        case 1:\r
-                            mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":direct=none";\r
-                            break;\r
-\r
-                        case 2:\r
-                            mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":direct=spatial";\r
-                            break;\r
-\r
-                        case 3:\r
-                            mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":direct=temporal";\r
-                            break;\r
+                if (mainWindow.check_mixedReferences.CheckState == CheckState.Checked)\r
+                    query = query + colon + "mixed-refs=1";\r
+            }\r
+            else if (optNameToChange.Equals("weightb"))\r
+            {\r
+                if (mainWindow.check_weightedBFrames.CheckState == CheckState.Checked)\r
+                    query = query + colon + "weightb=1";\r
+            }\r
+            else if (optNameToChange.Equals("brdo"))\r
+            {\r
+                if (mainWindow.check_bFrameRateDistortion.CheckState == CheckState.Checked)\r
+                    query = query + colon + "brdo=1";\r
+            }\r
+            else if (optNameToChange.Equals("bime"))\r
+            {\r
+                if (mainWindow.check_BidirectionalRefinement.CheckState == CheckState.Checked)\r
+                    query = query + colon + "bime=1";\r
+            }\r
+            else if (optNameToChange.Equals("b-pyramid"))\r
+            {\r
+                if (mainWindow.check_pyrmidalBFrames.CheckState == CheckState.Checked)\r
+                    query = query + colon + "b-pyramid=1";\r
+            }\r
+            else if (optNameToChange.Equals("no-fast-pskip"))\r
+            {\r
+                if (mainWindow.check_noFastPSkip.CheckState == CheckState.Checked)\r
+                    query = query + colon + "no-fast-pskip=1";\r
+            }\r
+            else if (optNameToChange.Equals("no-dct-decimate"))\r
+            {\r
+                if (mainWindow.check_noDCTDecimate.CheckState == CheckState.Checked)\r
+                    query = query + colon + "no-dct-decimate=1";\r
+            }\r
+            else if (optNameToChange.Equals("8x8dct"))\r
+            {\r
+                if (mainWindow.check_8x8DCT.CheckState == CheckState.Checked)\r
+                    query = query + colon + "8x8dct=1";\r
+            }\r
+            else if (optNameToChange.Equals("cabac"))\r
+            {\r
+                if (mainWindow.check_Cabac.CheckState != CheckState.Checked)\r
+                    query = query + colon + "cabac=0";\r
+            }\r
+            else if (optNameToChange.Equals("ref"))\r
+            {\r
+                if (!mainWindow.drop_refFrames.SelectedItem.ToString().Contains("Default"))\r
+                    query = query + colon + "ref=" + mainWindow.drop_refFrames.SelectedItem.ToString();\r
+            }\r
+            else if (optNameToChange.Equals("bframes"))\r
+            {\r
+                String value = mainWindow.drop_bFrames.SelectedItem.ToString();\r
+                if (!mainWindow.drop_bFrames.SelectedItem.ToString().Contains("Default"))\r
+                    query = query + colon + "bframes=" + value;\r
+            }\r
+            else if (optNameToChange.Equals("subq"))\r
+            {\r
+                String value = mainWindow.drop_subpixelMotionEstimation.SelectedItem.ToString();\r
+                if (!mainWindow.drop_subpixelMotionEstimation.SelectedItem.ToString().Contains("Default"))\r
+                    query = query + colon + "subq=" + value;\r
+            }\r
+            else if (optNameToChange.Equals("trellis"))\r
+            {\r
+                if (!mainWindow.drop_trellis.SelectedItem.ToString().Contains("Default"))\r
+                    query = query + colon + "trellis=" + mainWindow.drop_trellis.SelectedItem.ToString();\r
+            }\r
 \r
-                        case 4:\r
-                            mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":direct=auto";\r
-                            break;\r
+            mainWindow.rtf_x264Query.Text = query;\r
+        }\r
+        private void animate(frmMain mainWindow, string sender)\r
+        {\r
+            /* Lots of situations to cover.\r
+               - B-frames (when 0 turn of b-frame specific stuff, when < 2 disable b-pyramid)\r
+               - CABAC (when 0 turn off trellis)\r
+               - subme  (if under 6 turn off brdo)\r
+               - analysis (if none, turn off 8x8dct and direct pred)\r
+               - refs (under 2, disable mixed-refs)\r
+            */\r
+            if (mainWindow.drop_bFrames.SelectedIndex < 2)\r
+            {\r
+                /* If the b-frame widget is at 0 or 1, the user has chosen\r
+                   not to use b-frames at all. So disable the options\r
+                   that can only be used when b-frames are enabled.        */\r
+                mainWindow.check_weightedBFrames.Visible = false;\r
+                mainWindow.check_bFrameRateDistortion.Visible = false;\r
+                mainWindow.check_pyrmidalBFrames.Visible = false;\r
+                mainWindow.check_BidirectionalRefinement.Visible = false;\r
+                mainWindow.drop_directPrediction.Visible = false;\r
+                mainWindow.lbl_direct_prediction.Visible = false;\r
+\r
+                mainWindow.check_weightedBFrames.CheckState = CheckState.Unchecked;\r
+                mainWindow.check_bFrameRateDistortion.CheckState = CheckState.Unchecked;\r
+                mainWindow.check_pyrmidalBFrames.CheckState = CheckState.Unchecked;\r
+                mainWindow.check_BidirectionalRefinement.CheckState = CheckState.Unchecked;\r
+                mainWindow.drop_directPrediction.SelectedIndex = 0;\r
+            }\r
+            else if (mainWindow.drop_bFrames.SelectedIndex == 2)\r
+            {\r
+                 /* Only 1 b-frame? Disable b-pyramid. */\r
+                mainWindow.check_pyrmidalBFrames.Visible = false;\r
+                mainWindow.check_pyrmidalBFrames.CheckState = CheckState.Unchecked;\r
 \r
-                        default:\r
-                            break;\r
-                    }\r
-                }\r
-                else if (optNameToChange.Equals("analyse"))\r
-                {\r
-                    switch (mainWindow.drop_analysis.SelectedIndex)\r
-                    {\r
-                        case 1:\r
-                            mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":analyse=none";\r
-                            break;\r
+                mainWindow.check_weightedBFrames.Visible = true;\r
+                mainWindow.check_BidirectionalRefinement.Visible = true;\r
 \r
-                        case 2:\r
-                            mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":analyse=all";\r
-                            break;\r
 \r
-                        default:\r
-                            break;\r
-                    }\r
+                /* Only show B-RDO if both bframes and subme allow it. */\r
+                if (mainWindow.drop_subpixelMotionEstimation.SelectedIndex >= 7)\r
+                    mainWindow.check_bFrameRateDistortion.Visible = true;\r
+                \r
+                /* Only show direct pred when allowed by both bframes and analysis.*/\r
+                if ( mainWindow.drop_analysis.SelectedIndex != 1)\r
+                {   \r
+                    mainWindow.drop_directPrediction.Visible = true;\r
+                    mainWindow.lbl_direct_prediction.Visible = true;\r
                 }\r
+            }\r
+            else\r
+            {\r
+                mainWindow.check_weightedBFrames.Visible = true;\r
+                mainWindow.check_pyrmidalBFrames.Visible = true;\r
+                mainWindow.check_BidirectionalRefinement.Visible = true;\r
 \r
-                else if (optNameToChange.Equals("merange"))\r
-                {\r
-                    int value = mainWindow.drop_MotionEstimationRange.SelectedIndex + 3;\r
-                    mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":merange=" + value.ToString();\r
+                /* Only show B-RDO if both bframes and subme allow it. */\r
+                if (mainWindow.drop_subpixelMotionEstimation.SelectedIndex >= 7)\r
+                    mainWindow.check_bFrameRateDistortion.Visible = true;\r
+               \r
+                /* Only show direct pred when allowed by both bframes and analysis.*/\r
+                if ( mainWindow.drop_analysis.SelectedIndex != 1)\r
+                {   \r
+                    mainWindow.drop_directPrediction.Visible = true;\r
+                    mainWindow.lbl_direct_prediction.Visible = true;\r
                 }\r
-                else if (optNameToChange.Equals("deblock"))\r
-                {\r
-                    String da = mainWindow.drop_deblockAlpha.SelectedItem.ToString();\r
-                    String db = mainWindow.drop_deblockBeta.Text.ToString();\r
-\r
-                    if (((da.Contains("Default")) && (db.Contains("Default"))) || ((da.Contains("0")) && (db.Contains("0"))))\r
-                    {\r
-                        mainWindow.drop_deblockBeta.SelectedItem = "Default (0)";\r
-                        mainWindow.drop_deblockAlpha.SelectedItem = "Default (0)";\r
-                    }\r
-                    else\r
-                    {\r
-                        if (db.Contains("Default"))\r
-                            db = "0";\r
 \r
-                        if (da.Contains("Default"))\r
-                            da = "0";\r
-\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":deblock=" + da + "," + db;\r
-                    }\r
-                }\r
-                else if (optNameToChange.Equals("mixed-refs"))\r
-                {\r
-                    if (mainWindow.check_mixedReferences.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":mixed-refs=1";\r
-                }\r
-                else if (optNameToChange.Equals("weightb"))\r
-                {\r
-                    if (mainWindow.check_weightedBFrames.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":weightb=1";\r
-                }\r
-                else if (optNameToChange.Equals("brdo"))\r
-                {\r
-                    if (mainWindow.check_bFrameDistortion.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":brdo=1";\r
-                }\r
-                else if (optNameToChange.Equals("bime"))\r
-                {\r
-                    if (mainWindow.check_BidirectionalRefinement.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":bime=1";\r
-                }\r
-                else if (optNameToChange.Equals("b-pyramid"))\r
-                {\r
-                    if (mainWindow.check_pyrmidalBFrames.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":b-pyramid=1";\r
-                }\r
-                else if (optNameToChange.Equals("no-fast-pskip"))\r
-                {\r
-                    if (mainWindow.check_noFastPSkip.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":no-fast-pskip=1";\r
-                }\r
-                else if (optNameToChange.Equals("no-dct-decimate"))\r
-                {\r
-                    if (mainWindow.check_noDCTDecimate.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":no-dct-decimate=1";\r
-                }\r
-                else if (optNameToChange.Equals("8x8dct"))\r
-                {\r
-                    if (mainWindow.check_8x8DCT.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":8x8dct=1";\r
-                }\r
-                else if (optNameToChange.Equals("cabac"))\r
-                {\r
-                    if (mainWindow.check_Cabac.CheckState == CheckState.Checked)\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text;\r
-                    else\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":cabac=0";\r
-                }\r
-                else if (optNameToChange.Equals("ref"))\r
-                {\r
-                    if (!mainWindow.drop_refFrames.SelectedItem.ToString().Contains("Default"))\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":ref=" + mainWindow.drop_refFrames.SelectedItem.ToString();\r
-                }\r
-                else if (optNameToChange.Equals("bframes"))\r
-                {\r
-                    int value = mainWindow.drop_bFrames.SelectedIndex;\r
-                    value = value - 1;\r
-                    if (!mainWindow.drop_bFrames.SelectedItem.ToString().Contains("Default"))\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":bframes=" + value.ToString();\r
-                }\r
-                else if (optNameToChange.Equals("subq"))\r
-                {\r
-                    String value = mainWindow.drop_subpixelMotionEstimation.SelectedItem.ToString();\r
-                    if (!mainWindow.drop_subpixelMotionEstimation.SelectedItem.ToString().Contains("Default"))\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":subq=" + value;\r
-                }\r
-                else if (optNameToChange.Equals("trellis"))\r
-                {\r
-                    if (!mainWindow.drop_trellis.SelectedItem.ToString().Contains("Default"))\r
-                        mainWindow.rtf_x264Query.Text = mainWindow.rtf_x264Query.Text + ":trellis=" + mainWindow.drop_trellis.SelectedItem.ToString();\r
-                }\r
             }\r
-        }\r
 \r
-        /*\r
-         * Take a single option and standardize it. Returns as a String\r
-         * Input: String. - Single X264 Option. Name only\r
-         * Output: String - Single X264 Option. Name only. Changed to standard format\r
-         */\r
-        private string X264_StandardizeOptNames(String cleanOptNameString)\r
-        {\r
-            String input = cleanOptNameString;\r
-            if (input.Equals("ref") || input.Equals("frameref"))\r
+            if (mainWindow.check_Cabac.Checked == false)\r
             {\r
-                cleanOptNameString = "ref";\r
+                /* Without CABAC entropy coding, trellis doesn't run. */\r
+                mainWindow.drop_trellis.Visible = false;\r
+                mainWindow.drop_trellis.SelectedIndex = 0;\r
+                mainWindow.lbl_trellis.Visible = false;\r
             }\r
-\r
-            /*No Fast PSkip nofast_pskip*/\r
-            if (input.Equals("no-fast-pskip") || input.Equals("no_fast_pskip") || input.Equals("nofast_pskip"))\r
+            else\r
             {\r
-                cleanOptNameString = "no-fast-pskip";\r
+                mainWindow.drop_trellis.Visible = true;\r
+                mainWindow.lbl_trellis.Visible = true;\r
             }\r
 \r
-            /*No Dict Decimate*/\r
-            if (input.Equals("no-dct-decimate") || input.Equals("no_dct_decimate") || input.Equals("nodct_decimate"))\r
-            {\r
-                cleanOptNameString = "no-dct-decimate";\r
-            }\r
 \r
-            /*Subme*/\r
-            if (input.Equals("subme"))\r
+            if (mainWindow.drop_subpixelMotionEstimation.SelectedIndex < 7)\r
             {\r
-                cleanOptNameString = "subq";\r
+                /* When subme < 6, B-RDO doesn't work. */\r
+                mainWindow.check_bFrameRateDistortion.Visible = false;\r
+                if (sender == "subq" && sender != "brdo")\r
+                    mainWindow.check_bFrameRateDistortion.CheckState = CheckState.Unchecked;\r
             }\r
-\r
-            /*ME Range*/\r
-            if (input.Equals("me-range") || input.Equals("me_range"))\r
+            else if (mainWindow.drop_bFrames.SelectedIndex >= 2 )\r
             {\r
-                cleanOptNameString = "merange";\r
+                /* Make sure to only display B-RDO if allowed by both\r
+                   the subme and bframe option settings.               */\r
+                mainWindow.check_bFrameRateDistortion.Visible = true;\r
             }\r
 \r
-            /*WeightB*/\r
-            if (input.Equals("weight-b") || input.Equals("weight_b"))\r
-            {\r
-                cleanOptNameString = "weightb";\r
-            }\r
 \r
-            /*BRDO*/\r
-            if (input.Equals("b-rdo") || input.Equals("b_rdo"))\r
+            if (mainWindow.drop_analysis.SelectedIndex == 1)\r
             {\r
-                cleanOptNameString = "brdo";\r
+                /* No analysis? Disable 8x8dct and direct pred */\r
+                mainWindow.check_8x8DCT.Visible = false;\r
+                if (sender != "8x8dct")\r
+                    mainWindow.check_8x8DCT.CheckState = CheckState.Unchecked;\r
+                \r
+                mainWindow.drop_directPrediction.Visible = false;\r
+                if (sender != "direct")\r
+                    mainWindow.drop_directPrediction.SelectedIndex = 0;\r
             }\r
-\r
-            /*B Pyramid*/\r
-            if (input.Equals("b_pyramid"))\r
+            else\r
             {\r
-                cleanOptNameString = "b-pyramid";\r
-            }\r
+                mainWindow.check_8x8DCT.Visible = true;\r
 \r
-            /*Direct Prediction*/\r
-            if (input.Equals("direct-pred") || input.Equals("direct_pred"))\r
-            {\r
-                cleanOptNameString = "direct";\r
+                if ( mainWindow.drop_bFrames.SelectedIndex >= 2)\r
+                {\r
+                    /* Onlt show direct pred when allowed by both analysis and bframes */\r
+                    mainWindow.drop_directPrediction.Visible = true;\r
+                }\r
             }\r
 \r
-            /*Deblocking*/\r
-            if (input.Equals("filter"))\r
+\r
+            if (mainWindow.drop_refFrames.SelectedIndex < 3)\r
             {\r
-                cleanOptNameString = "deblock";\r
+                mainWindow.check_mixedReferences.Visible = false;\r
+                if (sender != "mixed-refs")\r
+                    mainWindow.check_mixedReferences.CheckState = CheckState.Unchecked;\r
             }\r
-\r
-            /*Analysis*/\r
-            if (input.Equals("partitions"))\r
+            else\r
             {\r
-                cleanOptNameString = "analyse";\r
+                mainWindow.check_mixedReferences.Visible = true;\r
             }\r
-\r
-            return cleanOptNameString;\r
         }\r
+\r
     }\r
-}\r
+}
\ No newline at end of file
index 33bddfe..7d15c73 100644 (file)
     <Compile Include="frmUpdater.Designer.cs">\r
       <DependentUpon>frmUpdater.cs</DependentUpon>\r
     </Compile>\r
+    <Compile Include="Functions\SystemInfo.cs" />\r
     <Compile Include="Functions\Common.cs" />\r
     <Compile Include="Functions\Presets.cs" />\r
     <Compile Include="Functions\Queue.cs" />\r
index 6051957..ae9edec 100644 (file)
@@ -47,9 +47,9 @@ namespace Handbrake
                 }\r
 \r
                 // Make sure the system has enough RAM. 384MB or greater\r
-                uint memory = MemoryCheck.CheckMemeory();\r
-                memory = memory / 1024 / 1024;\r
-\r
+                Functions.SystemInfo info = new Functions.SystemInfo();\r
+                uint memory = info.TotalPhysicalMemory();\r
+                \r
                 if (memory < 256)\r
                 {\r
                     MessageBox.Show("Your system does not meet the minimum requirements for HandBrake. \n Insufficient RAM. 384MB or greater required. You have: " + memory.ToString() + "MB", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
@@ -75,37 +75,4 @@ namespace Handbrake
         }\r
     }\r
 \r
-    class MemoryCheck\r
-    {\r
-        public struct MEMORYSTATUS\r
-        {\r
-            public UInt32 dwLength;\r
-            public UInt32 dwMemoryLoad;\r
-            public UInt32 dwTotalPhys; // Used\r
-            public UInt32 dwAvailPhys;\r
-            public UInt32 dwTotalPageFile;\r
-            public UInt32 dwAvailPageFile;\r
-            public UInt32 dwTotalVirtual;\r
-            public UInt32 dwAvailVirtual;\r
-            // Aditional Varibles left in for future usage (JIC)\r
-        }\r
-\r
-        [DllImport("kernel32.dll")]\r
-        public static extern void GlobalMemoryStatus\r
-        (\r
-            ref MEMORYSTATUS lpBuffer\r
-        );\r
-\r
-        public static uint CheckMemeory()\r
-        {\r
-            // Call the native GlobalMemoryStatus method\r
-            // with the defined structure.\r
-            MEMORYSTATUS memStatus = new MEMORYSTATUS();\r
-            GlobalMemoryStatus(ref memStatus);\r
-\r
-            uint MemoryInfo = memStatus.dwTotalPhys;\r
-\r
-            return MemoryInfo;\r
-        }\r
-    }\r
 }
\ No newline at end of file
index 36e405b..6315790 100644 (file)
@@ -54,10 +54,19 @@ namespace Handbrake
                 RegKey = RegKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0");\r
                 Object cpuType = RegKey.GetValue("ProcessorNameString");\r
 \r
+                // Get the screen resolution\r
+                System.Windows.Forms.Screen scr = System.Windows.Forms.Screen.PrimaryScreen;\r
+\r
+                // Physical Ram\r
+                Functions.SystemInfo info = new Functions.SystemInfo();\r
+                uint memory = info.TotalPhysicalMemory();\r
+\r
                 // Add a header to the log file indicating that it's from the Windows GUI and display the windows version\r
                 rtf_actLog.AppendText("### Windows GUI \n");\r
                 rtf_actLog.AppendText(String.Format("### Running: {0} \n###\n", Environment.OSVersion.ToString()));\r
                 rtf_actLog.AppendText(String.Format("### CPU: {0} \n", cpuType));\r
+                rtf_actLog.AppendText(String.Format("### Ram: {0} MB \n", memory));\r
+                rtf_actLog.AppendText(String.Format("### Screen: {0}x{1} \n", scr.Bounds.Width, scr.Bounds.Height));\r
                 rtf_actLog.AppendText(String.Format("### Temp Dir: {0} \n", Path.GetTempPath()));\r
                 rtf_actLog.AppendText(String.Format("### Install Dir: {0} \n", Application.StartupPath));\r
                 rtf_actLog.AppendText(String.Format("### Data Dir: {0} \n###\n", Application.UserAppDataPath));\r
index 291013f..bea9235 100644 (file)
@@ -200,13 +200,10 @@ namespace Handbrake
             this.label43 = new System.Windows.Forms.Label();\r
             this.btn_reset = new System.Windows.Forms.Button();\r
             this.rtf_x264Query = new System.Windows.Forms.RichTextBox();\r
-            this.label35 = new System.Windows.Forms.Label();\r
             this.check_Cabac = new System.Windows.Forms.CheckBox();\r
-            this.label36 = new System.Windows.Forms.Label();\r
             this.check_noDCTDecimate = new System.Windows.Forms.CheckBox();\r
-            this.label37 = new System.Windows.Forms.Label();\r
             this.check_noFastPSkip = new System.Windows.Forms.CheckBox();\r
-            this.label39 = new System.Windows.Forms.Label();\r
+            this.lbl_trellis = new System.Windows.Forms.Label();\r
             this.drop_trellis = new System.Windows.Forms.ComboBox();\r
             this.drop_deblockBeta = new System.Windows.Forms.ComboBox();\r
             this.label41 = new System.Windows.Forms.Label();\r
@@ -214,7 +211,6 @@ namespace Handbrake
             this.panel3 = new System.Windows.Forms.Panel();\r
             this.panel1 = new System.Windows.Forms.Panel();\r
             this.panel2 = new System.Windows.Forms.Panel();\r
-            this.label44 = new System.Windows.Forms.Label();\r
             this.check_8x8DCT = new System.Windows.Forms.CheckBox();\r
             this.label45 = new System.Windows.Forms.Label();\r
             this.drop_analysis = new System.Windows.Forms.ComboBox();\r
@@ -224,19 +220,14 @@ namespace Handbrake
             this.drop_MotionEstimationRange = new System.Windows.Forms.ComboBox();\r
             this.label54 = new System.Windows.Forms.Label();\r
             this.drop_MotionEstimationMethod = new System.Windows.Forms.ComboBox();\r
-            this.label57 = new System.Windows.Forms.Label();\r
             this.check_pyrmidalBFrames = new System.Windows.Forms.CheckBox();\r
-            this.label58 = new System.Windows.Forms.Label();\r
             this.check_BidirectionalRefinement = new System.Windows.Forms.CheckBox();\r
-            this.label59 = new System.Windows.Forms.Label();\r
-            this.check_bFrameDistortion = new System.Windows.Forms.CheckBox();\r
-            this.label60 = new System.Windows.Forms.Label();\r
+            this.check_bFrameRateDistortion = new System.Windows.Forms.CheckBox();\r
             this.check_weightedBFrames = new System.Windows.Forms.CheckBox();\r
-            this.label61 = new System.Windows.Forms.Label();\r
+            this.lbl_direct_prediction = new System.Windows.Forms.Label();\r
             this.drop_directPrediction = new System.Windows.Forms.ComboBox();\r
             this.label62 = new System.Windows.Forms.Label();\r
             this.drop_bFrames = new System.Windows.Forms.ComboBox();\r
-            this.label63 = new System.Windows.Forms.Label();\r
             this.label64 = new System.Windows.Forms.Label();\r
             this.drop_refFrames = new System.Windows.Forms.ComboBox();\r
             this.check_mixedReferences = new System.Windows.Forms.CheckBox();\r
@@ -2282,13 +2273,10 @@ namespace Handbrake
             this.h264Tab.Controls.Add(this.label43);\r
             this.h264Tab.Controls.Add(this.btn_reset);\r
             this.h264Tab.Controls.Add(this.rtf_x264Query);\r
-            this.h264Tab.Controls.Add(this.label35);\r
             this.h264Tab.Controls.Add(this.check_Cabac);\r
-            this.h264Tab.Controls.Add(this.label36);\r
             this.h264Tab.Controls.Add(this.check_noDCTDecimate);\r
-            this.h264Tab.Controls.Add(this.label37);\r
             this.h264Tab.Controls.Add(this.check_noFastPSkip);\r
-            this.h264Tab.Controls.Add(this.label39);\r
+            this.h264Tab.Controls.Add(this.lbl_trellis);\r
             this.h264Tab.Controls.Add(this.drop_trellis);\r
             this.h264Tab.Controls.Add(this.drop_deblockBeta);\r
             this.h264Tab.Controls.Add(this.label41);\r
@@ -2296,7 +2284,6 @@ namespace Handbrake
             this.h264Tab.Controls.Add(this.panel3);\r
             this.h264Tab.Controls.Add(this.panel1);\r
             this.h264Tab.Controls.Add(this.panel2);\r
-            this.h264Tab.Controls.Add(this.label44);\r
             this.h264Tab.Controls.Add(this.check_8x8DCT);\r
             this.h264Tab.Controls.Add(this.label45);\r
             this.h264Tab.Controls.Add(this.drop_analysis);\r
@@ -2306,19 +2293,14 @@ namespace Handbrake
             this.h264Tab.Controls.Add(this.drop_MotionEstimationRange);\r
             this.h264Tab.Controls.Add(this.label54);\r
             this.h264Tab.Controls.Add(this.drop_MotionEstimationMethod);\r
-            this.h264Tab.Controls.Add(this.label57);\r
             this.h264Tab.Controls.Add(this.check_pyrmidalBFrames);\r
-            this.h264Tab.Controls.Add(this.label58);\r
             this.h264Tab.Controls.Add(this.check_BidirectionalRefinement);\r
-            this.h264Tab.Controls.Add(this.label59);\r
-            this.h264Tab.Controls.Add(this.check_bFrameDistortion);\r
-            this.h264Tab.Controls.Add(this.label60);\r
+            this.h264Tab.Controls.Add(this.check_bFrameRateDistortion);\r
             this.h264Tab.Controls.Add(this.check_weightedBFrames);\r
-            this.h264Tab.Controls.Add(this.label61);\r
+            this.h264Tab.Controls.Add(this.lbl_direct_prediction);\r
             this.h264Tab.Controls.Add(this.drop_directPrediction);\r
             this.h264Tab.Controls.Add(this.label62);\r
             this.h264Tab.Controls.Add(this.drop_bFrames);\r
-            this.h264Tab.Controls.Add(this.label63);\r
             this.h264Tab.Controls.Add(this.label64);\r
             this.h264Tab.Controls.Add(this.drop_refFrames);\r
             this.h264Tab.Controls.Add(this.check_mixedReferences);\r
@@ -2343,7 +2325,7 @@ namespace Handbrake
             // \r
             // btn_reset\r
             // \r
-            this.btn_reset.Location = new System.Drawing.Point(13, 226);\r
+            this.btn_reset.Location = new System.Drawing.Point(277, 224);\r
             this.btn_reset.Name = "btn_reset";\r
             this.btn_reset.Size = new System.Drawing.Size(75, 23);\r
             this.btn_reset.TabIndex = 41;\r
@@ -2362,90 +2344,73 @@ namespace Handbrake
             this.rtf_x264Query.LostFocus += new System.EventHandler(this.rtf_x264Query_TextChanged);\r
             this.rtf_x264Query.TextChanged += new System.EventHandler(this.rtf_x264Query_TextChanged);\r
             // \r
-            // label35\r
-            // \r
-            this.label35.AutoSize = true;\r
-            this.label35.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.label35.Location = new System.Drawing.Point(534, 213);\r
-            this.label35.Name = "label35";\r
-            this.label35.Size = new System.Drawing.Size(128, 12);\r
-            this.label35.TabIndex = 29;\r
-            this.label35.Text = "CABAC Entropy Coding:";\r
-            // \r
             // check_Cabac\r
             // \r
             this.check_Cabac.AutoSize = true;\r
+            this.check_Cabac.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;\r
+            this.check_Cabac.Checked = true;\r
+            this.check_Cabac.CheckState = System.Windows.Forms.CheckState.Checked;\r
             this.check_Cabac.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
-            this.check_Cabac.Location = new System.Drawing.Point(668, 214);\r
+            this.check_Cabac.Location = new System.Drawing.Point(536, 214);\r
             this.check_Cabac.Name = "check_Cabac";\r
             this.check_Cabac.RightToLeft = System.Windows.Forms.RightToLeft.No;\r
-            this.check_Cabac.Size = new System.Drawing.Size(12, 11);\r
+            this.check_Cabac.Size = new System.Drawing.Size(144, 16);\r
             this.check_Cabac.TabIndex = 40;\r
+            this.check_Cabac.Text = "CABAC Entropy Coding:";\r
             this.check_Cabac.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_Cabac.UseVisualStyleBackColor = true;\r
             this.check_Cabac.CheckStateChanged += new System.EventHandler(this.check_Cabac_CheckedChanged);\r
             // \r
-            // label36\r
-            // \r
-            this.label36.AutoSize = true;\r
-            this.label36.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.label36.Location = new System.Drawing.Point(561, 194);\r
-            this.label36.Name = "label36";\r
-            this.label36.Size = new System.Drawing.Size(102, 12);\r
-            this.label36.TabIndex = 28;\r
-            this.label36.Text = "No DCT-Decimate:";\r
-            // \r
             // check_noDCTDecimate\r
             // \r
             this.check_noDCTDecimate.AutoSize = true;\r
+            this.check_noDCTDecimate.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_noDCTDecimate.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
-            this.check_noDCTDecimate.Location = new System.Drawing.Point(668, 195);\r
+            this.check_noDCTDecimate.Location = new System.Drawing.Point(562, 192);\r
             this.check_noDCTDecimate.Name = "check_noDCTDecimate";\r
             this.check_noDCTDecimate.RightToLeft = System.Windows.Forms.RightToLeft.No;\r
-            this.check_noDCTDecimate.Size = new System.Drawing.Size(12, 11);\r
+            this.check_noDCTDecimate.Size = new System.Drawing.Size(118, 16);\r
             this.check_noDCTDecimate.TabIndex = 39;\r
+            this.check_noDCTDecimate.Text = "No DCT-Decimate:";\r
             this.check_noDCTDecimate.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_noDCTDecimate.UseVisualStyleBackColor = true;\r
             this.check_noDCTDecimate.CheckStateChanged += new System.EventHandler(this.check_noDCTDecimate_CheckedChanged);\r
             // \r
-            // label37\r
-            // \r
-            this.label37.AutoSize = true;\r
-            this.label37.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.label37.Location = new System.Drawing.Point(444, 193);\r
-            this.label37.Name = "label37";\r
-            this.label37.Size = new System.Drawing.Size(87, 12);\r
-            this.label37.TabIndex = 27;\r
-            this.label37.Text = "No Fast-P-Skip:";\r
-            // \r
             // check_noFastPSkip\r
             // \r
             this.check_noFastPSkip.AutoSize = true;\r
+            this.check_noFastPSkip.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_noFastPSkip.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
-            this.check_noFastPSkip.Location = new System.Drawing.Point(537, 194);\r
+            this.check_noFastPSkip.Location = new System.Drawing.Point(444, 192);\r
             this.check_noFastPSkip.Name = "check_noFastPSkip";\r
             this.check_noFastPSkip.RightToLeft = System.Windows.Forms.RightToLeft.No;\r
-            this.check_noFastPSkip.Size = new System.Drawing.Size(12, 11);\r
+            this.check_noFastPSkip.Size = new System.Drawing.Size(103, 16);\r
             this.check_noFastPSkip.TabIndex = 38;\r
+            this.check_noFastPSkip.Text = "No Fast-P-Skip:";\r
             this.check_noFastPSkip.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_noFastPSkip.UseVisualStyleBackColor = true;\r
             this.check_noFastPSkip.CheckStateChanged += new System.EventHandler(this.check_noFastPSkip_CheckedChanged);\r
             // \r
-            // label39\r
+            // lbl_trellis\r
             // \r
-            this.label39.AutoSize = true;\r
-            this.label39.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.label39.Location = new System.Drawing.Point(490, 169);\r
-            this.label39.Name = "label39";\r
-            this.label39.Size = new System.Drawing.Size(41, 12);\r
-            this.label39.TabIndex = 26;\r
-            this.label39.Text = "Trellis:";\r
+            this.lbl_trellis.AutoSize = true;\r
+            this.lbl_trellis.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
+            this.lbl_trellis.Location = new System.Drawing.Point(490, 169);\r
+            this.lbl_trellis.Name = "lbl_trellis";\r
+            this.lbl_trellis.Size = new System.Drawing.Size(41, 12);\r
+            this.lbl_trellis.TabIndex = 26;\r
+            this.lbl_trellis.Text = "Trellis:";\r
             // \r
             // drop_trellis\r
             // \r
             this.drop_trellis.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
-            this.drop_trellis.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.drop_trellis.FlatStyle = System.Windows.Forms.FlatStyle.Popup;\r
             this.drop_trellis.FormattingEnabled = true;\r
+            this.drop_trellis.Items.AddRange(new object[] {\r
+            "Default (0)",\r
+            "0",\r
+            "1",\r
+            "2"});\r
             this.drop_trellis.Location = new System.Drawing.Point(537, 166);\r
             this.drop_trellis.Name = "drop_trellis";\r
             this.drop_trellis.Size = new System.Drawing.Size(143, 20);\r
@@ -2455,8 +2420,23 @@ namespace Handbrake
             // drop_deblockBeta\r
             // \r
             this.drop_deblockBeta.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
-            this.drop_deblockBeta.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.drop_deblockBeta.FlatStyle = System.Windows.Forms.FlatStyle.Popup;\r
             this.drop_deblockBeta.FormattingEnabled = true;\r
+            this.drop_deblockBeta.Items.AddRange(new object[] {\r
+            "Default (0)",\r
+            "-6",\r
+            "-5",\r
+            "-4",\r
+            "-3",\r
+            "-2",\r
+            "-1",\r
+            "0",\r
+            "1",\r
+            "2",\r
+            "3",\r
+            "4",\r
+            "5",\r
+            "6"});\r
             this.drop_deblockBeta.Location = new System.Drawing.Point(611, 139);\r
             this.drop_deblockBeta.Name = "drop_deblockBeta";\r
             this.drop_deblockBeta.Size = new System.Drawing.Size(69, 20);\r
@@ -2476,8 +2456,23 @@ namespace Handbrake
             // drop_deblockAlpha\r
             // \r
             this.drop_deblockAlpha.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
-            this.drop_deblockAlpha.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.drop_deblockAlpha.FlatStyle = System.Windows.Forms.FlatStyle.Popup;\r
             this.drop_deblockAlpha.FormattingEnabled = true;\r
+            this.drop_deblockAlpha.Items.AddRange(new object[] {\r
+            "Default (0)",\r
+            "-6",\r
+            "-5",\r
+            "-4",\r
+            "-3",\r
+            "-2",\r
+            "-1",\r
+            "0",\r
+            "1",\r
+            "2",\r
+            "3",\r
+            "4",\r
+            "5",\r
+            "6"});\r
             this.drop_deblockAlpha.Location = new System.Drawing.Point(537, 139);\r
             this.drop_deblockAlpha.Name = "drop_deblockAlpha";\r
             this.drop_deblockAlpha.Size = new System.Drawing.Size(68, 20);\r
@@ -2511,25 +2506,17 @@ namespace Handbrake
             this.panel2.Size = new System.Drawing.Size(284, 1);\r
             this.panel2.TabIndex = 21;\r
             // \r
-            // label44\r
-            // \r
-            this.label44.AutoSize = true;\r
-            this.label44.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.label44.Location = new System.Drawing.Point(606, 109);\r
-            this.label44.Name = "label44";\r
-            this.label44.Size = new System.Drawing.Size(55, 12);\r
-            this.label44.TabIndex = 23;\r
-            this.label44.Text = "8x8 DCT:";\r
-            // \r
             // check_8x8DCT\r
             // \r
             this.check_8x8DCT.AutoSize = true;\r
+            this.check_8x8DCT.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_8x8DCT.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
-            this.check_8x8DCT.Location = new System.Drawing.Point(664, 109);\r
+            this.check_8x8DCT.Location = new System.Drawing.Point(608, 106);\r
             this.check_8x8DCT.Name = "check_8x8DCT";\r
             this.check_8x8DCT.RightToLeft = System.Windows.Forms.RightToLeft.No;\r
-            this.check_8x8DCT.Size = new System.Drawing.Size(12, 11);\r
+            this.check_8x8DCT.Size = new System.Drawing.Size(71, 16);\r
             this.check_8x8DCT.TabIndex = 34;\r
+            this.check_8x8DCT.Text = "8x8 DCT:";\r
             this.check_8x8DCT.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_8x8DCT.UseVisualStyleBackColor = true;\r
             this.check_8x8DCT.CheckStateChanged += new System.EventHandler(this.check_8x8DCT_CheckedChanged);\r
@@ -2547,8 +2534,12 @@ namespace Handbrake
             // drop_analysis\r
             // \r
             this.drop_analysis.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
-            this.drop_analysis.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.drop_analysis.FlatStyle = System.Windows.Forms.FlatStyle.Popup;\r
             this.drop_analysis.FormattingEnabled = true;\r
+            this.drop_analysis.Items.AddRange(new object[] {\r
+            "Default (some)",\r
+            "None",\r
+            "All"});\r
             this.drop_analysis.Location = new System.Drawing.Point(537, 105);\r
             this.drop_analysis.Name = "drop_analysis";\r
             this.drop_analysis.Size = new System.Drawing.Size(63, 20);\r
@@ -2568,8 +2559,18 @@ namespace Handbrake
             // drop_subpixelMotionEstimation\r
             // \r
             this.drop_subpixelMotionEstimation.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
-            this.drop_subpixelMotionEstimation.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.drop_subpixelMotionEstimation.FlatStyle = System.Windows.Forms.FlatStyle.Popup;\r
             this.drop_subpixelMotionEstimation.FormattingEnabled = true;\r
+            this.drop_subpixelMotionEstimation.Items.AddRange(new object[] {\r
+            "Default (4)",\r
+            "0",\r
+            "1",\r
+            "2",\r
+            "3",\r
+            "4",\r
+            "5",\r
+            "6",\r
+            "7"});\r
             this.drop_subpixelMotionEstimation.Location = new System.Drawing.Point(537, 69);\r
             this.drop_subpixelMotionEstimation.Name = "drop_subpixelMotionEstimation";\r
             this.drop_subpixelMotionEstimation.Size = new System.Drawing.Size(139, 20);\r
@@ -2589,8 +2590,71 @@ namespace Handbrake
             // drop_MotionEstimationRange\r
             // \r
             this.drop_MotionEstimationRange.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
-            this.drop_MotionEstimationRange.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.drop_MotionEstimationRange.FlatStyle = System.Windows.Forms.FlatStyle.Popup;\r
             this.drop_MotionEstimationRange.FormattingEnabled = true;\r
+            this.drop_MotionEstimationRange.Items.AddRange(new object[] {\r
+            "Default (16)",\r
+            "4",\r
+            "5",\r
+            "6",\r
+            "7",\r
+            "8",\r
+            "9",\r
+            "10",\r
+            "11",\r
+            "12",\r
+            "13",\r
+            "14",\r
+            "15",\r
+            "16",\r
+            "17",\r
+            "18",\r
+            "19",\r
+            "20",\r
+            "21",\r
+            "22",\r
+            "23",\r
+            "24",\r
+            "25",\r
+            "26",\r
+            "27",\r
+            "28",\r
+            "29",\r
+            "30",\r
+            "31",\r
+            "32",\r
+            "33",\r
+            "34",\r
+            "35",\r
+            "36",\r
+            "37",\r
+            "38",\r
+            "39",\r
+            "40",\r
+            "41",\r
+            "42",\r
+            "43",\r
+            "44",\r
+            "45",\r
+            "46",\r
+            "47",\r
+            "48",\r
+            "49",\r
+            "50",\r
+            "51",\r
+            "52",\r
+            "53",\r
+            "54",\r
+            "55",\r
+            "56",\r
+            "57",\r
+            "58",\r
+            "59",\r
+            "60",\r
+            "61",\r
+            "62",\r
+            "63",\r
+            "64"});\r
             this.drop_MotionEstimationRange.Location = new System.Drawing.Point(537, 40);\r
             this.drop_MotionEstimationRange.Name = "drop_MotionEstimationRange";\r
             this.drop_MotionEstimationRange.Size = new System.Drawing.Size(139, 20);\r
@@ -2610,122 +2674,101 @@ namespace Handbrake
             // drop_MotionEstimationMethod\r
             // \r
             this.drop_MotionEstimationMethod.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
-            this.drop_MotionEstimationMethod.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.drop_MotionEstimationMethod.FlatStyle = System.Windows.Forms.FlatStyle.Popup;\r
             this.drop_MotionEstimationMethod.FormattingEnabled = true;\r
             this.drop_MotionEstimationMethod.ItemHeight = 12;\r
+            this.drop_MotionEstimationMethod.Items.AddRange(new object[] {\r
+            "Default (Hexagon)",\r
+            "Diamond",\r
+            "Hexagon",\r
+            "Uneven Multi-Hexagon",\r
+            "Exhaustive"});\r
             this.drop_MotionEstimationMethod.Location = new System.Drawing.Point(537, 11);\r
             this.drop_MotionEstimationMethod.Name = "drop_MotionEstimationMethod";\r
             this.drop_MotionEstimationMethod.Size = new System.Drawing.Size(139, 20);\r
             this.drop_MotionEstimationMethod.TabIndex = 30;\r
             this.drop_MotionEstimationMethod.SelectedIndexChanged += new System.EventHandler(this.drop_MotionEstimationMethod_SelectedIndexChanged);\r
             // \r
-            // label57\r
-            // \r
-            this.label57.AutoSize = true;\r
-            this.label57.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.label57.Location = new System.Drawing.Point(41, 204);\r
-            this.label57.Name = "label57";\r
-            this.label57.Size = new System.Drawing.Size(105, 12);\r
-            this.label57.TabIndex = 9;\r
-            this.label57.Text = "Pyrmidal B-Frames:";\r
-            // \r
             // check_pyrmidalBFrames\r
             // \r
             this.check_pyrmidalBFrames.AutoSize = true;\r
+            this.check_pyrmidalBFrames.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_pyrmidalBFrames.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
-            this.check_pyrmidalBFrames.Location = new System.Drawing.Point(157, 205);\r
+            this.check_pyrmidalBFrames.Location = new System.Drawing.Point(47, 210);\r
             this.check_pyrmidalBFrames.Name = "check_pyrmidalBFrames";\r
             this.check_pyrmidalBFrames.RightToLeft = System.Windows.Forms.RightToLeft.No;\r
-            this.check_pyrmidalBFrames.Size = new System.Drawing.Size(12, 11);\r
+            this.check_pyrmidalBFrames.Size = new System.Drawing.Size(121, 16);\r
             this.check_pyrmidalBFrames.TabIndex = 17;\r
+            this.check_pyrmidalBFrames.Text = "Pyrmidal B-Frames:";\r
             this.check_pyrmidalBFrames.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_pyrmidalBFrames.UseVisualStyleBackColor = true;\r
             this.check_pyrmidalBFrames.CheckStateChanged += new System.EventHandler(this.check_pyrmidalBFrames_CheckedChanged);\r
             // \r
-            // label58\r
-            // \r
-            this.label58.AutoSize = true;\r
-            this.label58.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.label58.Location = new System.Drawing.Point(15, 184);\r
-            this.label58.Name = "label58";\r
-            this.label58.Size = new System.Drawing.Size(131, 12);\r
-            this.label58.TabIndex = 8;\r
-            this.label58.Text = "Bidirectional Refinement:";\r
-            // \r
             // check_BidirectionalRefinement\r
             // \r
             this.check_BidirectionalRefinement.AutoSize = true;\r
+            this.check_BidirectionalRefinement.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_BidirectionalRefinement.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
-            this.check_BidirectionalRefinement.Location = new System.Drawing.Point(157, 185);\r
+            this.check_BidirectionalRefinement.Location = new System.Drawing.Point(21, 188);\r
             this.check_BidirectionalRefinement.Name = "check_BidirectionalRefinement";\r
             this.check_BidirectionalRefinement.RightToLeft = System.Windows.Forms.RightToLeft.No;\r
-            this.check_BidirectionalRefinement.Size = new System.Drawing.Size(12, 11);\r
+            this.check_BidirectionalRefinement.Size = new System.Drawing.Size(147, 16);\r
             this.check_BidirectionalRefinement.TabIndex = 16;\r
+            this.check_BidirectionalRefinement.Text = "Bidirectional Refinement:";\r
             this.check_BidirectionalRefinement.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_BidirectionalRefinement.UseVisualStyleBackColor = true;\r
             this.check_BidirectionalRefinement.CheckStateChanged += new System.EventHandler(this.check_BidirectionalRefinement_CheckedChanged);\r
             // \r
-            // label59\r
-            // \r
-            this.label59.AutoSize = true;\r
-            this.label59.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.label59.Location = new System.Drawing.Point(15, 164);\r
-            this.label59.Name = "label59";\r
-            this.label59.Size = new System.Drawing.Size(131, 12);\r
-            this.label59.TabIndex = 7;\r
-            this.label59.Text = "B-Frame Rate Distortion:";\r
-            // \r
-            // check_bFrameDistortion\r
-            // \r
-            this.check_bFrameDistortion.AutoSize = true;\r
-            this.check_bFrameDistortion.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
-            this.check_bFrameDistortion.Location = new System.Drawing.Point(157, 165);\r
-            this.check_bFrameDistortion.Name = "check_bFrameDistortion";\r
-            this.check_bFrameDistortion.RightToLeft = System.Windows.Forms.RightToLeft.No;\r
-            this.check_bFrameDistortion.Size = new System.Drawing.Size(12, 11);\r
-            this.check_bFrameDistortion.TabIndex = 15;\r
-            this.check_bFrameDistortion.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
-            this.check_bFrameDistortion.UseVisualStyleBackColor = true;\r
-            this.check_bFrameDistortion.CheckStateChanged += new System.EventHandler(this.check_bFrameDistortion_CheckedChanged);\r
-            // \r
-            // label60\r
-            // \r
-            this.label60.AutoSize = true;\r
-            this.label60.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.label60.Location = new System.Drawing.Point(39, 146);\r
-            this.label60.Name = "label60";\r
-            this.label60.Size = new System.Drawing.Size(107, 12);\r
-            this.label60.TabIndex = 6;\r
-            this.label60.Text = "Weighted B-Frames:";\r
+            // check_bFrameRateDistortion\r
+            // \r
+            this.check_bFrameRateDistortion.AutoSize = true;\r
+            this.check_bFrameRateDistortion.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;\r
+            this.check_bFrameRateDistortion.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.check_bFrameRateDistortion.Location = new System.Drawing.Point(20, 166);\r
+            this.check_bFrameRateDistortion.Name = "check_bFrameRateDistortion";\r
+            this.check_bFrameRateDistortion.RightToLeft = System.Windows.Forms.RightToLeft.No;\r
+            this.check_bFrameRateDistortion.Size = new System.Drawing.Size(147, 16);\r
+            this.check_bFrameRateDistortion.TabIndex = 15;\r
+            this.check_bFrameRateDistortion.Text = "B-Frame Rate Distortion:";\r
+            this.check_bFrameRateDistortion.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
+            this.check_bFrameRateDistortion.UseVisualStyleBackColor = true;\r
+            this.check_bFrameRateDistortion.CheckStateChanged += new System.EventHandler(this.check_bFrameDistortion_CheckedChanged);\r
             // \r
             // check_weightedBFrames\r
             // \r
             this.check_weightedBFrames.AutoSize = true;\r
+            this.check_weightedBFrames.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_weightedBFrames.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
-            this.check_weightedBFrames.Location = new System.Drawing.Point(157, 147);\r
+            this.check_weightedBFrames.Location = new System.Drawing.Point(44, 144);\r
             this.check_weightedBFrames.Name = "check_weightedBFrames";\r
             this.check_weightedBFrames.RightToLeft = System.Windows.Forms.RightToLeft.No;\r
-            this.check_weightedBFrames.Size = new System.Drawing.Size(12, 11);\r
+            this.check_weightedBFrames.Size = new System.Drawing.Size(123, 16);\r
             this.check_weightedBFrames.TabIndex = 14;\r
-            this.check_weightedBFrames.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
+            this.check_weightedBFrames.Text = "Weighted B-Frames:";\r
             this.check_weightedBFrames.UseVisualStyleBackColor = true;\r
             this.check_weightedBFrames.CheckStateChanged += new System.EventHandler(this.check_weightedBFrames_CheckedChanged);\r
             // \r
-            // label61\r
+            // lbl_direct_prediction\r
             // \r
-            this.label61.AutoSize = true;\r
-            this.label61.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.label61.Location = new System.Drawing.Point(52, 121);\r
-            this.label61.Name = "label61";\r
-            this.label61.Size = new System.Drawing.Size(94, 12);\r
-            this.label61.TabIndex = 5;\r
-            this.label61.Text = "Direct Prediction:";\r
+            this.lbl_direct_prediction.AutoSize = true;\r
+            this.lbl_direct_prediction.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
+            this.lbl_direct_prediction.Location = new System.Drawing.Point(52, 121);\r
+            this.lbl_direct_prediction.Name = "lbl_direct_prediction";\r
+            this.lbl_direct_prediction.Size = new System.Drawing.Size(94, 12);\r
+            this.lbl_direct_prediction.TabIndex = 5;\r
+            this.lbl_direct_prediction.Text = "Direct Prediction:";\r
             // \r
             // drop_directPrediction\r
             // \r
             this.drop_directPrediction.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
-            this.drop_directPrediction.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.drop_directPrediction.FlatStyle = System.Windows.Forms.FlatStyle.Popup;\r
             this.drop_directPrediction.FormattingEnabled = true;\r
+            this.drop_directPrediction.Items.AddRange(new object[] {\r
+            "Default (Spatial)",\r
+            "None",\r
+            "Spatial",\r
+            "Temporal",\r
+            "Automatic"});\r
             this.drop_directPrediction.Location = new System.Drawing.Point(157, 118);\r
             this.drop_directPrediction.Name = "drop_directPrediction";\r
             this.drop_directPrediction.Size = new System.Drawing.Size(121, 20);\r
@@ -2745,24 +2788,33 @@ namespace Handbrake
             // drop_bFrames\r
             // \r
             this.drop_bFrames.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
-            this.drop_bFrames.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.drop_bFrames.FlatStyle = System.Windows.Forms.FlatStyle.Popup;\r
             this.drop_bFrames.FormattingEnabled = true;\r
+            this.drop_bFrames.Items.AddRange(new object[] {\r
+            "Default (0)",\r
+            "0",\r
+            "1",\r
+            "2",\r
+            "3",\r
+            "4",\r
+            "5",\r
+            "6",\r
+            "7",\r
+            "8",\r
+            "9",\r
+            "10",\r
+            "11",\r
+            "12",\r
+            "13",\r
+            "14",\r
+            "15",\r
+            "16"});\r
             this.drop_bFrames.Location = new System.Drawing.Point(157, 91);\r
             this.drop_bFrames.Name = "drop_bFrames";\r
             this.drop_bFrames.Size = new System.Drawing.Size(121, 20);\r
             this.drop_bFrames.TabIndex = 12;\r
             this.drop_bFrames.SelectedIndexChanged += new System.EventHandler(this.drop_bFrames_SelectedIndexChanged);\r
             // \r
-            // label63\r
-            // \r
-            this.label63.AutoSize = true;\r
-            this.label63.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.label63.Location = new System.Drawing.Point(48, 64);\r
-            this.label63.Name = "label63";\r
-            this.label63.Size = new System.Drawing.Size(98, 12);\r
-            this.label63.TabIndex = 2;\r
-            this.label63.Text = "Mixed References:";\r
-            // \r
             // label64\r
             // \r
             this.label64.AutoSize = true;\r
@@ -2776,8 +2828,27 @@ namespace Handbrake
             // drop_refFrames\r
             // \r
             this.drop_refFrames.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
-            this.drop_refFrames.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.drop_refFrames.FlatStyle = System.Windows.Forms.FlatStyle.Popup;\r
             this.drop_refFrames.FormattingEnabled = true;\r
+            this.drop_refFrames.Items.AddRange(new object[] {\r
+            "Default (1)",\r
+            "0",\r
+            "1",\r
+            "2",\r
+            "3",\r
+            "4",\r
+            "5",\r
+            "6",\r
+            "7",\r
+            "8",\r
+            "9",\r
+            "10",\r
+            "11",\r
+            "12",\r
+            "13",\r
+            "14",\r
+            "15",\r
+            "16"});\r
             this.drop_refFrames.Location = new System.Drawing.Point(157, 37);\r
             this.drop_refFrames.Name = "drop_refFrames";\r
             this.drop_refFrames.Size = new System.Drawing.Size(121, 20);\r
@@ -2787,12 +2858,14 @@ namespace Handbrake
             // check_mixedReferences\r
             // \r
             this.check_mixedReferences.AutoSize = true;\r
+            this.check_mixedReferences.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_mixedReferences.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
-            this.check_mixedReferences.Location = new System.Drawing.Point(157, 65);\r
+            this.check_mixedReferences.Location = new System.Drawing.Point(54, 63);\r
             this.check_mixedReferences.Name = "check_mixedReferences";\r
             this.check_mixedReferences.RightToLeft = System.Windows.Forms.RightToLeft.No;\r
-            this.check_mixedReferences.Size = new System.Drawing.Size(12, 11);\r
+            this.check_mixedReferences.Size = new System.Drawing.Size(114, 16);\r
             this.check_mixedReferences.TabIndex = 11;\r
+            this.check_mixedReferences.Text = "Mixed References:";\r
             this.check_mixedReferences.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             this.check_mixedReferences.UseVisualStyleBackColor = true;\r
             this.check_mixedReferences.CheckStateChanged += new System.EventHandler(this.check_mixedReferences_CheckedChanged);\r
@@ -3078,8 +3151,8 @@ namespace Handbrake
             // \r
             this.lbl_encode.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
             this.lbl_encode.Name = "lbl_encode";\r
-            this.lbl_encode.Size = new System.Drawing.Size(148, 17);\r
-            this.lbl_encode.Text = "Encoding: Not Started";\r
+            this.lbl_encode.Size = new System.Drawing.Size(31, 17);\r
+            this.lbl_encode.Text = "{0}";\r
             // \r
             // panel4\r
             // \r
@@ -3303,13 +3376,10 @@ namespace Handbrake
         internal System.Windows.Forms.RichTextBox rtf_x264Query;\r
         internal System.Windows.Forms.Label label43;\r
         internal System.Windows.Forms.Button btn_reset;\r
-        internal System.Windows.Forms.Label label35;\r
         internal System.Windows.Forms.CheckBox check_Cabac;\r
-        internal System.Windows.Forms.Label label36;\r
         internal System.Windows.Forms.CheckBox check_noDCTDecimate;\r
-        internal System.Windows.Forms.Label label37;\r
         internal System.Windows.Forms.CheckBox check_noFastPSkip;\r
-        internal System.Windows.Forms.Label label39;\r
+        internal System.Windows.Forms.Label lbl_trellis;\r
         internal System.Windows.Forms.ComboBox drop_trellis;\r
         internal System.Windows.Forms.ComboBox drop_deblockBeta;\r
         internal System.Windows.Forms.Label label41;\r
@@ -3317,7 +3387,6 @@ namespace Handbrake
         internal System.Windows.Forms.Panel panel3;\r
         internal System.Windows.Forms.Panel panel1;\r
         internal System.Windows.Forms.Panel panel2;\r
-        internal System.Windows.Forms.Label label44;\r
         internal System.Windows.Forms.CheckBox check_8x8DCT;\r
         internal System.Windows.Forms.Label label45;\r
         internal System.Windows.Forms.ComboBox drop_analysis;\r
@@ -3327,19 +3396,14 @@ namespace Handbrake
         internal System.Windows.Forms.ComboBox drop_MotionEstimationRange;\r
         internal System.Windows.Forms.Label label54;\r
         internal System.Windows.Forms.ComboBox drop_MotionEstimationMethod;\r
-        internal System.Windows.Forms.Label label57;\r
         internal System.Windows.Forms.CheckBox check_pyrmidalBFrames;\r
-        internal System.Windows.Forms.Label label58;\r
         internal System.Windows.Forms.CheckBox check_BidirectionalRefinement;\r
-        internal System.Windows.Forms.Label label59;\r
-        internal System.Windows.Forms.CheckBox check_bFrameDistortion;\r
-        internal System.Windows.Forms.Label label60;\r
+        internal System.Windows.Forms.CheckBox check_bFrameRateDistortion;\r
         internal System.Windows.Forms.CheckBox check_weightedBFrames;\r
-        internal System.Windows.Forms.Label label61;\r
+        internal System.Windows.Forms.Label lbl_direct_prediction;\r
         internal System.Windows.Forms.ComboBox drop_directPrediction;\r
         internal System.Windows.Forms.Label label62;\r
         internal System.Windows.Forms.ComboBox drop_bFrames;\r
-        internal System.Windows.Forms.Label label63;\r
         internal System.Windows.Forms.Label label64;\r
         internal System.Windows.Forms.ComboBox drop_refFrames;\r
         internal System.Windows.Forms.CheckBox check_mixedReferences;\r
index c300dc3..504ca44 100644 (file)
@@ -98,6 +98,7 @@ namespace Handbrake
             // Enabled GUI tooltip's if Required\r
             if (Properties.Settings.Default.tooltipEnable == "Checked")\r
                 ToolTip.Active = true;\r
+            lbl_encode.Text = "";\r
             Thread.Sleep(400);\r
 \r
 \r
@@ -118,7 +119,7 @@ namespace Handbrake
             this.Enabled = true;\r
 \r
             // Some event Handlers. Used for minimize to taskbar\r
-            this.Resize += new EventHandler(frmMain_Resize);\r
+            this.Resize += new EventHandler(frmMain_Resize);      \r
         }\r
 \r
         // Startup Functions\r
@@ -156,127 +157,16 @@ namespace Handbrake
         }\r
         private void setupH264Panel()\r
         {\r
-            /*Set opt widget values here*/\r
-\r
-            /*B-Frames fX264optBframesPopUp*/\r
-            int i;\r
-            drop_bFrames.Items.Clear();\r
-            drop_bFrames.Items.Add("Default (0)");\r
             drop_bFrames.Text = "Default (0)";\r
-\r
-            for (i = 0; i < 17; i++)\r
-            {\r
-                drop_bFrames.Items.Add(i.ToString());\r
-            }\r
-\r
-            /*Reference Frames fX264optRefPopUp*/\r
-            drop_refFrames.Items.Clear();\r
-            drop_refFrames.Items.Add("Default (1)");\r
             drop_refFrames.Text = "Default (1)";\r
-            for (i = 0; i < 17; i++)\r
-            {\r
-                drop_refFrames.Items.Add(i.ToString());\r
-            }\r
-\r
-            /*No Fast P-Skip fX264optNfpskipSwitch BOOLEAN*/\r
-            check_noFastPSkip.CheckState = CheckState.Unchecked;\r
-\r
-            /*No Dict Decimate fX264optNodctdcmtSwitch BOOLEAN*/\r
-            check_noDCTDecimate.CheckState = CheckState.Unchecked;\r
-\r
-\r
-            /*Sub Me fX264optSubmePopUp*/\r
-            drop_subpixelMotionEstimation.Items.Clear();\r
-            drop_subpixelMotionEstimation.Items.Add("Default (4)");\r
             drop_subpixelMotionEstimation.Text = "Default (4)";\r
-            for (i = 0; i < 8; i++)\r
-            {\r
-                drop_subpixelMotionEstimation.Items.Add(i.ToString());\r
-            }\r
-\r
-            /*Trellis fX264optTrellisPopUp*/\r
-            drop_trellis.Items.Clear();\r
-            drop_trellis.Items.Add("Default (0)");\r
             drop_trellis.Text = "Default (0)";\r
-            for (i = 0; i < 3; i++)\r
-            {\r
-                drop_trellis.Items.Add(i.ToString());\r
-            }\r
-\r
-            /*Mixed-references fX264optMixedRefsSwitch BOOLEAN*/\r
-            check_mixedReferences.CheckState = CheckState.Unchecked;\r
-\r
-            /*Motion Estimation fX264optMotionEstPopUp*/\r
-            drop_MotionEstimationMethod.Items.Clear();\r
-            drop_MotionEstimationMethod.Items.Add("Default (Hexagon)");\r
-            drop_MotionEstimationMethod.Items.Add("Diamond");\r
-            drop_MotionEstimationMethod.Items.Add("Hexagon");\r
-            drop_MotionEstimationMethod.Items.Add("Uneven Multi-Hexagon");\r
-            drop_MotionEstimationMethod.Items.Add("Exhaustive");\r
             drop_MotionEstimationMethod.Text = "Default (Hexagon)";\r
-\r
-            /*Motion Estimation range fX264optMERangePopUp*/\r
-            drop_MotionEstimationRange.Items.Clear();\r
-            drop_MotionEstimationRange.Items.Add("Default (16)");\r
             drop_MotionEstimationRange.Text = "Default (16)";\r
-            for (i = 4; i < 65; i++)\r
-            {\r
-                drop_MotionEstimationRange.Items.Add(i.ToString());\r
-            }\r
-\r
-            /*Weighted B-Frame Prediction fX264optWeightBSwitch BOOLEAN*/\r
-            check_weightedBFrames.CheckState = CheckState.Unchecked;\r
-\r
-            /*B-Frame Rate Distortion Optimization fX264optBRDOSwitch BOOLEAN*/\r
-            check_bFrameDistortion.CheckState = CheckState.Unchecked;\r
-\r
-            /*B-frame Pyramids fX264optBPyramidSwitch BOOLEAN*/\r
-            check_pyrmidalBFrames.CheckState = CheckState.Unchecked;\r
-\r
-            /*Bidirectional Motion Estimation Refinement fX264optBiMESwitch BOOLEAN*/\r
-            check_BidirectionalRefinement.CheckState = CheckState.Unchecked;\r
-\r
-            /*Direct B-Frame Prediction Mode fX264optDirectPredPopUp*/\r
-            drop_directPrediction.Items.Clear();\r
-            drop_directPrediction.Items.Add("Default (Spatial)");\r
-            drop_directPrediction.Items.Add("None");\r
-            drop_directPrediction.Items.Add("Spatial");\r
-            drop_directPrediction.Items.Add("Temporal");\r
-            drop_directPrediction.Items.Add("Automatic");\r
             drop_directPrediction.Text = "Default (Spatial)";\r
-\r
-            /*Alpha Deblock*/\r
-            drop_deblockAlpha.Items.Clear();\r
-            drop_deblockAlpha.Items.Add("Default (0)");\r
             drop_deblockAlpha.Text = "Default (0)";\r
-            for (i = -6; i < 7; i++)\r
-            {\r
-                drop_deblockAlpha.Items.Add(i.ToString());\r
-            }\r
-\r
-            /*Beta Deblock*/\r
-            drop_deblockBeta.Items.Clear();\r
-            drop_deblockBeta.Items.Add("Default (0)");\r
             drop_deblockBeta.Text = "Default (0)";\r
-            for (i = -6; i < 7; i++)\r
-            {\r
-                drop_deblockBeta.Items.Add(i.ToString());\r
-            }\r
-\r
-            /* Analysis fX264optAnalysePopUp */\r
-            drop_analysis.Items.Clear();\r
-            drop_analysis.Items.Add("Default (some)"); /* 0=default */\r
-            drop_analysis.Items.Add("None");  /* 1=none */\r
-            drop_analysis.Items.Add("All"); /* 2=all */\r
             drop_analysis.Text = "Default (some)";\r
-\r
-            /* 8x8 DCT fX264op8x8dctSwitch */\r
-            check_8x8DCT.CheckState = CheckState.Unchecked;\r
-\r
-            /* CABAC fX264opCabacSwitch */\r
-            check_Cabac.CheckState = CheckState.Checked;\r
-\r
-            /* Standardize the option string */\r
             rtf_x264Query.Text = "";\r
         }\r
         private void loadUserDefaults()\r
@@ -459,7 +349,7 @@ namespace Handbrake
 \r
                 ThreadPool.QueueUserWorkItem(procMonitor, query);\r
                 lbl_encode.Visible = true;\r
-                lbl_encode.Text = "Encoding: in Progress";\r
+                lbl_encode.Text = "Encoding in Progress";\r
 \r
                 btn_start.Text = "Stop";\r
                 btn_start.Image = Properties.Resources.stop;\r
@@ -522,7 +412,7 @@ namespace Handbrake
                 if (drp_dvdtitle.Items.Count == 0)\r
                     MessageBox.Show("No Title(s) found. Please make sure you have selected a valid, non-copy protected source. Please refer to the FAQ (see Help Menu).", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);\r
 \r
-                lbl_encode.Text = "Encoding: Not Started";\r
+                lbl_encode.Text = "";\r
             }\r
         }\r
         private void btn_file_source_Click(object sender, EventArgs e)\r
@@ -551,7 +441,7 @@ namespace Handbrake
                 if (drp_dvdtitle.Items.Count == 0)\r
                     MessageBox.Show("No Title(s) found. Please make sure you have selected a valid, non-copy protected source. Please refer to the FAQ (see Help Menu).", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);\r
 \r
-                lbl_encode.Text = "Encoding: Not Started";\r
+                lbl_encode.Text = "";\r
             }\r
         }\r
         private void mnu_dvd_drive_Click(object sender, EventArgs e)\r
@@ -571,7 +461,7 @@ namespace Handbrake
             if (drp_dvdtitle.Items.Count == 0)\r
                 MessageBox.Show("No Title(s) found. Please make sure you have selected a valid, non-copy protected source. Please refer to the FAQ (see Help Menu).", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);\r
 \r
-            lbl_encode.Text = "Encoding: Not Started";\r
+            lbl_encode.Text = "";\r
         }\r
 \r
         private void drp_dvdtitle_Click(object sender, EventArgs e)\r
@@ -1159,7 +1049,7 @@ namespace Handbrake
 \r
                 drp_audmix_1.Text = "Automatic";\r
                 drp_audbit_1.Text = "160";\r
-                drp_audsr_1.Text = "48";\r
+                drp_audsr_1.Text = "Auto";\r
             }\r
 \r
 \r
@@ -1194,7 +1084,7 @@ namespace Handbrake
 \r
                 drp_audmix_2.Text = "Automatic";\r
                 drp_audbit_2.Text = "160";\r
-                drp_audsr_2.Text = "48";\r
+                drp_audsr_2.Text = "Auto";\r
             }\r
             else\r
             {\r
@@ -1207,7 +1097,7 @@ namespace Handbrake
 \r
                     drp_audmix_2.Text = "Automatic";\r
                     drp_audbit_2.Text = "160";\r
-                    drp_audsr_2.Text = "48";\r
+                    drp_audsr_2.Text = "Auto";\r
                 }\r
             }\r
 \r
@@ -1242,7 +1132,7 @@ namespace Handbrake
 \r
                 drp_audmix_3.Text = "Automatic";\r
                 drp_audbit_3.Text = "160";\r
-                drp_audsr_3.Text = "48";\r
+                drp_audsr_3.Text = "Auto";\r
             }\r
             else\r
             {\r
@@ -1255,7 +1145,7 @@ namespace Handbrake
 \r
                     drp_audmix_3.Text = "Automatic";\r
                     drp_audbit_3.Text = "160";\r
-                    drp_audsr_3.Text = "48";\r
+                    drp_audsr_3.Text = "Auto";\r
                 }\r
             }\r
 \r
@@ -1291,7 +1181,7 @@ namespace Handbrake
 \r
                 drp_audmix_4.Text = "Automatic";\r
                 drp_audbit_4.Text = "160";\r
-                drp_audsr_4.Text = "48";\r
+                drp_audsr_4.Text = "Auto";\r
             }\r
             else\r
             {\r
@@ -1304,7 +1194,7 @@ namespace Handbrake
 \r
                     drp_audmix_4.Text = "Automatic";\r
                     drp_audbit_4.Text = "160";\r
-                    drp_audsr_4.Text = "48";\r
+                    drp_audsr_4.Text = "Auto";\r
                 }\r
             }\r
 \r
@@ -1471,6 +1361,7 @@ namespace Handbrake
         }\r
         private void check_Cabac_CheckedChanged(object sender, EventArgs e)\r
         {\r
+            \r
             x264PanelFunctions.on_x264_WidgetChange("cabac", this);\r
         }\r
 \r
@@ -2009,7 +1900,7 @@ namespace Handbrake
                 this.BeginInvoke(new UpdateUIHandler(setEncodeLabelFinished));\r
                 return;\r
             }\r
-            lbl_encode.Text = "Encoding: Finished";\r
+            lbl_encode.Text = "Encoding Finished";\r
             btn_start.Text = "Start";\r
             btn_start.Image = Properties.Resources.Play;\r
         }\r