]> granicus.if.org Git - handbrake/commitdiff
WinGui: Restore RF0 warning and Correctly show RF or QP depending on the video encoder.
authorsr55 <sr55.hb@outlook.com>
Sun, 6 Jan 2013 19:45:04 +0000 (19:45 +0000)
committersr55 <sr55.hb@outlook.com>
Sun, 6 Jan 2013 19:45:04 +0000 (19:45 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5159 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/AudioEncoder.cs
win/CS/HandBrakeWPF/Properties/Resources.Designer.cs
win/CS/HandBrakeWPF/Properties/Resources.resx
win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs
win/CS/HandBrakeWPF/Views/VideoView.xaml

index 5705971766d93668e1ca985e79b1c5be84f65a15..c8877e6d644d078dfe0bf15bbbfd5ffd5a24d9f1 100644 (file)
@@ -2,6 +2,9 @@
 // <copyright file="AudioEncoder.cs" company="HandBrake Project (http://handbrake.fr)">\r
 //   This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.\r
 // </copyright>\r
+// <summary>\r
+//   The audio encoder enumeration\r
+// </summary>\r
 // --------------------------------------------------------------------------------------------------------------------\r
 \r
 namespace HandBrake.Interop.Model.Encoding\r
index ba0031cc667819402fd7308a510423421c4e4b7b..b1a31d882dd54b9a7ae403fd7fae67002ce97080 100644 (file)
@@ -286,6 +286,31 @@ namespace HandBrakeWPF.Properties {
             }\r
         }\r
         \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Warning: RF 0 is Lossless!.\r
+        /// </summary>\r
+        public static string Video_LosslessWarning {\r
+            get {\r
+                return ResourceManager.GetString("Video_LosslessWarning", resourceCulture);\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to A value of 0 means lossless and will result in a file size that is larger than the original source, \r
+        ///unless the source was also lossless. \r
+        ///\r
+        ///x264&apos;s scale is logarithmic and lower values correspond to higher quality. \r
+        ///\r
+        ///So small increases in value will result in progressively larger increases in the resulting file size. \r
+        ///\r
+        ///Suggested values are: 18 to 20 for Standard Definition and 20 to 23 for High Definition..\r
+        /// </summary>\r
+        public static string Video_LosslessWarningTooltip {\r
+            get {\r
+                return ResourceManager.GetString("Video_LosslessWarningTooltip", resourceCulture);\r
+            }\r
+        }\r
+        \r
         /// <summary>\r
         ///   Looks up a localized string similar to Set the desired quality factor. The encoder targets a certain quality. \r
         ///The scale used by each video encoder is different.\r
index 6265c3fc967e39ae061eec15a5448ea66896cf0d..64d5ef562721c0a251bce5d67fb5b38523357e09 100644 (file)
@@ -277,4 +277,17 @@ Suggested values are: 18 to 20 for Standard Definition and 20 to 23 for High Def
 \r
 FFMpeg's and Theora's scale is more linear. These encoders do not have a lossless mode.</value>\r
   </data>\r
+  <data name="Video_LosslessWarning" xml:space="preserve">\r
+    <value>Warning: RF 0 is Lossless!</value>\r
+  </data>\r
+  <data name="Video_LosslessWarningTooltip" xml:space="preserve">\r
+    <value>A value of 0 means lossless and will result in a file size that is larger than the original source, \r
+unless the source was also lossless. \r
+\r
+x264's scale is logarithmic and lower values correspond to higher quality. \r
+\r
+So small increases in value will result in progressively larger increases in the resulting file size. \r
+\r
+Suggested values are: 18 to 20 for Standard Definition and 20 to 23 for High Definition.</value>\r
+  </data>\r
 </root>
\ No newline at end of file
index b0b46b760dea604af33fccb213e6f0a70050f88e..6164e36034db879ac632f32695f8d820bf6e8329 100644 (file)
@@ -23,12 +23,10 @@ namespace HandBrakeWPF.ViewModels
     using HandBrake.ApplicationServices.Services.Interfaces;\r
     using HandBrake.ApplicationServices.Utilities;\r
     using HandBrake.Interop;\r
-    using HandBrake.Interop.HbLib;\r
     using HandBrake.Interop.Model.Encoding;\r
     using HandBrake.Interop.Model.Encoding.x264;\r
 \r
     using HandBrakeWPF.Commands.Interfaces;\r
-    using HandBrakeWPF.Properties;\r
     using HandBrakeWPF.ViewModels.Interfaces;\r
 \r
     /// <summary>\r
@@ -240,6 +238,17 @@ namespace HandBrakeWPF.ViewModels
             }\r
         }\r
 \r
+        /// <summary>\r
+        /// Gets a value indicating whether is lossless.\r
+        /// </summary>\r
+        public bool IsLossless\r
+        {\r
+            get\r
+            {\r
+                return 51.Equals(this.RF);\r
+            }\r
+        }\r
+\r
         /// <summary>\r
         /// Gets or sets QualityMax.\r
         /// </summary>\r
@@ -303,8 +312,6 @@ namespace HandBrakeWPF.ViewModels
                         double rfValue = 51.0 - value * cqStep;\r
                         rfValue = Math.Round(rfValue, 2);\r
                         this.Task.Quality = rfValue;\r
-\r
-                        // TODO: Lossless warning.\r
                         break;\r
                     case VideoEncoder.Theora:\r
                         Task.Quality = value;\r
@@ -313,6 +320,7 @@ namespace HandBrakeWPF.ViewModels
 \r
                 this.NotifyOfPropertyChange(() => this.RF);\r
                 this.NotifyOfPropertyChange(() => this.DisplayRF);\r
+                this.NotifyOfPropertyChange(() => this.IsLossless);\r
             }\r
         }\r
 \r
@@ -327,6 +335,14 @@ namespace HandBrakeWPF.ViewModels
             }\r
         }\r
 \r
+        public string Rfqp\r
+        {\r
+            get\r
+            {\r
+                return this.SelectedVideoEncoder == VideoEncoder.X264 ? "RF" : "QP";\r
+            }\r
+        }\r
+\r
         /// <summary>\r
         /// Gets or sets SelectedFramerate.\r
         /// </summary>\r
@@ -391,6 +407,8 @@ namespace HandBrakeWPF.ViewModels
 \r
                 // Hide the x264 controls when not needed.\r
                 this.DisplayX264Options = value == VideoEncoder.X264;\r
+\r
+                this.NotifyOfPropertyChange(() => this.Rfqp);\r
             }\r
         }\r
 \r
index 78186238d9cd163dae347c731b85b4d2b3c96c3e..c9b125abee67ebd9d18911935acfbd75880408e9 100644 (file)
                 <StackPanel Orientation="Horizontal" Margin="0,0,0,10" >\r
                     <RadioButton Content="Constant Quality:" IsChecked="{Binding IsConstantQuantity}"  Margin="0,0,10,0"/>\r
                     <TextBlock Text="{Binding DisplayRF}" Width="25" />\r
-                    <TextBlock Text="RF" FontWeight="Bold" />\r
+                    <TextBlock Text="{Binding Rfqp}" FontWeight="Bold" />\r
+\r
+                    <TextBlock Text="{x:Static Properties:Resources.Video_LosslessWarning}" Visibility="{Binding IsLossless, Converter={StaticResource boolToVisConverter}}" \r
+                           Margin="10,0,0,0" ToolTip="{x:Static Properties:Resources.Video_LosslessWarningTooltip}" FontWeight="Bold" />\r
                 </StackPanel>\r
 \r
                 <Slider Width="280" Value="{Binding RF}" HorizontalAlignment="Left"  Maximum="{Binding QualityMax}" Minimum="{Binding QualityMin}"\r