summaryrefslogtreecommitdiffstats
path: root/win/CS/HandBrake.ApplicationServices
diff options
context:
space:
mode:
authorsr55 <[email protected]>2017-03-05 19:48:35 +0000
committersr55 <[email protected]>2017-03-05 19:48:46 +0000
commit5d2c3cc85cae38c365ffdefa40054563d45b1506 (patch)
tree011ecafdd621340f793b521a9dd789a39d672028 /win/CS/HandBrake.ApplicationServices
parent8b92638f31984cab89a5de9b9557a8f463e1be13 (diff)
WinGui: Add support in the UI for QSV 10bit H.265 encoder.
Diffstat (limited to 'win/CS/HandBrake.ApplicationServices')
-rw-r--r--win/CS/HandBrake.ApplicationServices/Interop/HbLib/NativeConstants.cs1
-rw-r--r--win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/VideoEncoder.cs12
-rw-r--r--win/CS/HandBrake.ApplicationServices/Utilities/SystemInfo.cs16
3 files changed, 25 insertions, 4 deletions
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/HbLib/NativeConstants.cs b/win/CS/HandBrake.ApplicationServices/Interop/HbLib/NativeConstants.cs
index 787bb7c72..bc593539f 100644
--- a/win/CS/HandBrake.ApplicationServices/Interop/HbLib/NativeConstants.cs
+++ b/win/CS/HandBrake.ApplicationServices/Interop/HbLib/NativeConstants.cs
@@ -48,6 +48,7 @@ namespace HandBrake.ApplicationServices.Interop.HbLib
// VideoEncoders
public const uint HB_VCODEC_QSV_H264 = 0x0000100;
public const uint HB_VCODEC_QSV_H265 = 0x0000200;
+ public const uint HB_VCODEC_QSV_H265_10BIT = 0x0000400;
public const uint HB_VCODEC_QSV_MASK = 0x0000F00;
// Encode state
diff --git a/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/VideoEncoder.cs b/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/VideoEncoder.cs
index 5fd693bfb..077b9a642 100644
--- a/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/VideoEncoder.cs
+++ b/win/CS/HandBrake.ApplicationServices/Interop/Model/Encoding/VideoEncoder.cs
@@ -30,10 +30,6 @@ namespace HandBrake.ApplicationServices.Interop.Model.Encoding
[ShortName("qsv_h264")]
QuickSync,
- [Display(Name = "H.265 (Intel QSV)")]
- [ShortName("qsv_h265")]
- QuickSyncH265,
-
[Display(Name = "MPEG-4")]
[ShortName("mpeg4")]
FFMpeg,
@@ -58,6 +54,14 @@ namespace HandBrake.ApplicationServices.Interop.Model.Encoding
[ShortName("x265_10bit")]
X265_10,
+ [Display(Name = "H.265 (Intel QSV)")]
+ [ShortName("qsv_h265")]
+ QuickSyncH265,
+
+ [Display(Name = "H.265 10-bit (Intel QSV)")]
+ [ShortName("qsv_h265_10bit")]
+ QuickSyncH26510b,
+
[Display(Name = "VP8")]
[ShortName("VP8")]
VP8,
diff --git a/win/CS/HandBrake.ApplicationServices/Utilities/SystemInfo.cs b/win/CS/HandBrake.ApplicationServices/Utilities/SystemInfo.cs
index 8ccf04462..8966b5a8f 100644
--- a/win/CS/HandBrake.ApplicationServices/Utilities/SystemInfo.cs
+++ b/win/CS/HandBrake.ApplicationServices/Utilities/SystemInfo.cs
@@ -74,5 +74,21 @@ namespace HandBrake.ApplicationServices.Utilities
}
}
}
+
+ public static bool IsQsvAvailableH26510bit
+ {
+ get
+ {
+ try
+ {
+ return (HBFunctions.hb_qsv_available() & NativeConstants.HB_VCODEC_QSV_H265_10BIT) != 0;
+ }
+ catch (Exception)
+ {
+ // Silent failure. Typically this means the dll hasn't been built with --enable-qsv
+ return false;
+ }
+ }
+ }
}
}