From 825e38ac9d8f80eaeb3fd90cd6a2d9cfa1c55400 Mon Sep 17 00:00:00 2001 From: eisneinechse <42617957+eisneinechse@users.noreply.github.com> Date: Sun, 21 Apr 2019 10:04:24 -0700 Subject: [PATCH] Removing old way to select hardware support Removing the decode setting makes hardware supported decode break. There must be some hidden dependency on that variable somewhere which might also be responsible for the problems with nVidia on Linux. TODO Remove the dependency --- include/Settings.h | 6 +++++- src/Settings.cpp | 6 +++++- tests/Settings_Tests.cpp | 22 +++++++++++++--------- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/include/Settings.h b/include/Settings.h index 3e18bc9a..fc98ab4f 100644 --- a/include/Settings.h +++ b/include/Settings.h @@ -77,13 +77,17 @@ namespace openshot { public: /// Use video card for faster video decoding (if supported) + // REMOVE_HW_OLD + // Removing this breaks decode completely + // Find bug in libopenshot bool HARDWARE_DECODE = false; /// Use video codec for faster video decoding (if supported) int HARDWARE_DECODER = 0; /// Use video card for faster video encoding (if supported) - bool HARDWARE_ENCODE = false; + // REMOVE_HW_OLD + //bool HARDWARE_ENCODE = false; /// Scale mode used in FFmpeg decoding and encoding (used as an optimization for faster previews) bool HIGH_QUALITY_SCALING = false; diff --git a/src/Settings.cpp b/src/Settings.cpp index 461f9183..e0f8e693 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -40,9 +40,13 @@ Settings *Settings::Instance() if (!m_pInstance) { // Create the actual instance of logger only once m_pInstance = new Settings; + // REMOVE_HW_OLD + // Removing this breaks decode completely + // Find bug in libopenshot m_pInstance->HARDWARE_DECODE = false; m_pInstance->HARDWARE_DECODER = 0; - m_pInstance->HARDWARE_ENCODE = false; + // REMOVE_HW_OLD + //m_pInstance->HARDWARE_ENCODE = false; m_pInstance->HIGH_QUALITY_SCALING = false; m_pInstance->MAX_WIDTH = 0; m_pInstance->MAX_HEIGHT = 0; diff --git a/tests/Settings_Tests.cpp b/tests/Settings_Tests.cpp index 86790653..f76d60ba 100644 --- a/tests/Settings_Tests.cpp +++ b/tests/Settings_Tests.cpp @@ -36,8 +36,9 @@ TEST(Settings_Default_Constructor) // Create an empty color Settings *s = Settings::Instance(); - CHECK_EQUAL(false, s->HARDWARE_DECODE); - CHECK_EQUAL(false, s->HARDWARE_ENCODE); + CHECK_EQUAL(1, s->HARDWARE_DECODER); + // REMOVE_HW_OLD + //CHECK_EQUAL(false, s->HARDWARE_ENCODE); CHECK_EQUAL(false, s->HIGH_QUALITY_SCALING); CHECK_EQUAL(false, s->WAIT_FOR_VIDEO_PROCESSING_TASK); } @@ -46,18 +47,21 @@ TEST(Settings_Change_Settings) { // Create an empty color Settings *s = Settings::Instance(); - s->HARDWARE_DECODE = true; - s->HARDWARE_ENCODE = true; + s->HARDWARE_DECODER = 1; + // REMOVE_HW_OLD + //s->HARDWARE_ENCODE = true; s->HIGH_QUALITY_SCALING = true; s->WAIT_FOR_VIDEO_PROCESSING_TASK = true; - CHECK_EQUAL(true, s->HARDWARE_DECODE); - CHECK_EQUAL(true, s->HARDWARE_ENCODE); + CHECK_EQUAL(1, s->HARDWARE_DECODER); + // REMOVE_HW_OLD + //CHECK_EQUAL(true, s->HARDWARE_ENCODE); CHECK_EQUAL(true, s->HIGH_QUALITY_SCALING); CHECK_EQUAL(true, s->WAIT_FOR_VIDEO_PROCESSING_TASK); - CHECK_EQUAL(true, s->HARDWARE_DECODE); - CHECK_EQUAL(true, s->HARDWARE_ENCODE); + CHECK_EQUAL(1, s->HARDWARE_DECODER); + // REMOVE_HW_OLD + //CHECK_EQUAL(true, s->HARDWARE_ENCODE); CHECK_EQUAL(true, Settings::Instance()->HIGH_QUALITY_SCALING); CHECK_EQUAL(true, Settings::Instance()->WAIT_FOR_VIDEO_PROCESSING_TASK); -} \ No newline at end of file +}