summaryrefslogtreecommitdiffstats
path: root/win/CS
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 /win/CS
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.
Diffstat (limited to 'win/CS')
-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;