public const uint HB_ACODEC_ANY = (HB_ACODEC_MASK | HB_ACODEC_PASS_FLAG);\r
public const uint HB_ACODEC_TRUEHD_PASS = (HB_ACODEC_PASS_FLAG | HB_ACODEC_FFTRUEHD);\r
\r
+ // VideoEncoders\r
+ public const uint HB_VCODEC_QSV_H264 = 0x0000100;\r
+ public const uint HB_VCODEC_QSV_H265 = 0x0000200;\r
+ public const uint HB_VCODEC_QSV_MASK = 0x0000F00;\r
\r
// Encode state\r
public const int HB_STATE_IDLE = 1;\r
-// --------------------------------------------------------------------------------------------------------------------\r
+// --------------------------------------------------------------------------------------------------------------------\r
// <copyright file="SystemInfo.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
}\r
}\r
\r
+ /// <summary>\r
+ /// Gets a value indicating whether is qsv available.\r
+ /// </summary>\r
+ public static bool IsQsvAvailableH264\r
+ {\r
+ get\r
+ {\r
+ try\r
+ {\r
+ return HBFunctions.hb_qsv_available() == NativeConstants.HB_VCODEC_QSV_H264;\r
+ }\r
+ catch (Exception)\r
+ {\r
+ // Silent failure. Typically this means the dll hasn't been built with --enable-qsv\r
+ return false;\r
+ }\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Gets a value indicating whether is qsv available.\r
+ /// </summary>\r
+ public static bool IsQsvAvailableH265\r
+ {\r
+ get\r
+ {\r
+ try\r
+ {\r
+ return HBFunctions.hb_qsv_available() == NativeConstants.HB_VCODEC_QSV_H265;\r
+ }\r
+ catch (Exception)\r
+ {\r
+ // Silent failure. Typically this means the dll hasn't been built with --enable-qsv\r
+ return false;\r
+ }\r
+ }\r
+ }\r
+\r
/// <summary>\r
/// Gets the get gpu driver version.\r
/// </summary>\r
encoders.Remove(VideoEncoder.VP8);\r
}\r
\r
- if (!SystemInfo.IsQsvAvailable)\r
+ if (!SystemInfo.IsQsvAvailableH264)\r
{\r
encoders.Remove(VideoEncoder.QuickSync);\r
}\r
\r
+ if (!SystemInfo.IsQsvAvailableH265)\r
+ {\r
+ encoders.Remove(VideoEncoder.QuickSyncH265);\r
+ }\r
+\r
+\r
return EnumHelper<VideoEncoder>.GetEnumDisplayValuesSubset(encoders);\r
}\r
\r