summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Rickard <[email protected]>2021-03-26 23:29:17 -0700
committerScott <[email protected]>2021-03-28 17:25:54 +0100
commit16b8a512241d5515ae02251e9f59eead2cac8a97 (patch)
tree74a7cc0f8cd36b9139ee14556de3ff067f1725d0
parent2b18fe2d65b2146b96a9da0e599b1fb372087497 (diff)
Fixed issue where HandBrakeEncoderHelpers threw exceptions after falling back to no hardware mode.
It was checking initSuccess which had not been set to true. Changed initSuccess to a local variable and changed to check globalInitialized instead. Also properly set initNoHardware flag when we do auto fallback to no hardware mode.
-rw-r--r--win/CS/HandBrake.Interop/Interop/HandBrakeUtils.cs29
1 files changed, 21 insertions, 8 deletions
diff --git a/win/CS/HandBrake.Interop/Interop/HandBrakeUtils.cs b/win/CS/HandBrake.Interop/Interop/HandBrakeUtils.cs
index 653cbcd64..2b5418212 100644
--- a/win/CS/HandBrake.Interop/Interop/HandBrakeUtils.cs
+++ b/win/CS/HandBrake.Interop/Interop/HandBrakeUtils.cs
@@ -41,8 +41,10 @@ namespace HandBrake.Interop.Interop
/// True if the global initialize function has been called.
/// </summary>
private static bool globalInitialized;
-
- private static bool initSuccess = false;
+
+ /// <summary>
+ /// True if we initialized without hardware support.
+ /// </summary>
private static bool initNoHardware = false;
/// <summary>
@@ -64,7 +66,8 @@ namespace HandBrake.Interop.Interop
public static void EnsureGlobalInit(bool initNoHardwareMode)
{
if (!globalInitialized)
- {
+ {
+ bool initSuccess;
try
{
if (initNoHardwareMode)
@@ -89,11 +92,13 @@ namespace HandBrake.Interop.Interop
// Try without Hardware support. Bad drivers can sometimes cause issues.
if (!initSuccess)
- {
+ {
if (HBFunctions.hb_global_init_no_hardware() == -1)
{
throw new InvalidOperationException("HB global init failed.");
- }
+ }
+
+ initNoHardware = true;
}
globalInitialized = true;
@@ -345,12 +350,20 @@ namespace HandBrake.Interop.Interop
{
ErrorLogged?.Invoke(null, new MessageLoggedEventArgs(message));
}
-
+
+ /// <summary>
+ /// Returns true if we have successfully run global initialization.
+ /// </summary>
+ /// <returns>True if we have successfully run global initialization.</returns>
public static bool IsInitialised()
{
- return initSuccess;
+ return globalInitialized;
}
-
+
+ /// <summary>
+ /// Returns true if we initialized without hardware support.
+ /// </summary>
+ /// <returns>True if we initialized without hardware support.</returns>
public static bool IsInitNoHardware()
{
return initNoHardware;