/// 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
};\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
/// <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
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;
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)
{