]> granicus.if.org Git - handbrake/commitdiff
WinGui: Add basic deinterlace to the static preview. #958
authorsr55 <sr55.hb@outlook.com>
Mon, 30 Oct 2017 20:38:01 +0000 (20:38 +0000)
committersr55 <sr55.hb@outlook.com>
Mon, 30 Oct 2017 20:38:01 +0000 (20:38 +0000)
win/CS/HandBrake.ApplicationServices/Interop/HandBrakeInstance.cs
win/CS/HandBrake.ApplicationServices/Interop/Interfaces/IHandBrakeInstance.cs
win/CS/HandBrakeWPF/Services/Scan/LibScan.cs

index dda3e39c7dd45d06f253a31271ddb2fe22ae3807..d3830cb36d5093d774f8bc7a5a15f6a4930b0b1a 100644 (file)
@@ -268,7 +268,7 @@ namespace HandBrake.ApplicationServices.Interop
         /// An image with the requested preview.\r
         /// </returns>\r
         [HandleProcessCorruptedStateExceptions]\r
-        public Bitmap GetPreview(PreviewSettings settings, int previewNumber)\r
+        public Bitmap GetPreview(PreviewSettings settings, int previewNumber, int deinterlace)\r
         {\r
             SourceTitle title = this.Titles.TitleList.FirstOrDefault(t => t.Index == settings.TitleNumber);\r
 \r
@@ -293,7 +293,7 @@ namespace HandBrake.ApplicationServices.Interop
             };\r
 \r
             // Fetch the image data from LibHb\r
-            IntPtr resultingImageStuct = HBFunctions.hb_get_preview2(this.hbHandle, settings.TitleNumber, previewNumber, ref uiGeometry, 0);\r
+            IntPtr resultingImageStuct = HBFunctions.hb_get_preview2(this.hbHandle, settings.TitleNumber, previewNumber, ref uiGeometry, deinterlace);\r
             hb_image_s image = InteropUtilities.ToStructureFromPtr<hb_image_s>(resultingImageStuct);\r
 \r
             // Copy the filled image buffer to a managed array.\r
index d0338aea5bd5d6716a786d5e4109fd44ad63cc14..acc182205f6b3ed71bce68286cbfbbfe41c0dee2 100644 (file)
@@ -97,10 +97,13 @@ namespace HandBrake.ApplicationServices.Interop.Interfaces
         /// <param name="previewNumber">\r
         /// The index of the preview to get (0-based).\r
         /// </param>\r
+        /// <param name="deinterlace">\r
+        /// Enable basic deinterlace of preview images. 1 = on. 0 = off.\r
+        /// </param>\r
         /// <returns>\r
         /// An image with the requested preview.\r
         /// </returns>\r
-        Bitmap GetPreview(PreviewSettings job, int previewNumber);\r
+        Bitmap GetPreview(PreviewSettings job, int previewNumber, int deinterlace);\r
 \r
         /// <summary>\r
         /// Pauses the current encode.\r
index de104924ff8a629c2f3e06d1bc46a9bcf78d4708..2877322249fb75549bdd86db1d790ef93920d63f 100644 (file)
@@ -19,6 +19,7 @@ namespace HandBrakeWPF.Services.Scan
     using HandBrake.ApplicationServices.Interop.Interfaces;
     using HandBrake.ApplicationServices.Interop.Json.Scan;
     using HandBrake.ApplicationServices.Interop.Model;
+    using HandBrake.ApplicationServices.Interop.Model.Encoding;
     using HandBrake.ApplicationServices.Interop.Model.Preview;
     using HandBrake.ApplicationServices.Model;
     using HandBrake.ApplicationServices.Services.Logging;
@@ -206,7 +207,13 @@ namespace HandBrakeWPF.Services.Scan
                                                    PixelAspectY = job.PixelAspectY
                                                };
 
-                bitmapImage = BitmapUtilities.ConvertToBitmapImage(this.instance.GetPreview(settings, preview));
+                int deinterlaceOn = 0;
+                if (job.DeinterlaceFilter != DeinterlaceFilter.Off)
+                {
+                    deinterlaceOn = 1;
+                }
+                
+                bitmapImage = BitmapUtilities.ConvertToBitmapImage(this.instance.GetPreview(settings, preview, deinterlaceOn));
             }
             catch (AccessViolationException e)
             {