diff --git a/SerialPrograms/Source/CommonFramework/Main.cpp b/SerialPrograms/Source/CommonFramework/Main.cpp index 455b9a2f9..2435ccea7 100644 --- a/SerialPrograms/Source/CommonFramework/Main.cpp +++ b/SerialPrograms/Source/CommonFramework/Main.cpp @@ -201,6 +201,14 @@ int main(int argc, char *argv[]){ set_program_path(argv[0]); #endif +#if defined(__linux__) + // Qt multimedia, default to gstreamer to prevent flickering + // Easier than the alternative which is compiling qt6multimedia with QT_DEFAULT_MEDIA_BACKEND + // See: https://doc.qt.io/qt-6.5/qtmultimedia-index.html + if (qEnvironmentVariableIsEmpty("QT_MEDIA_BACKEND")) + qputenv("QT_MEDIA_BACKEND", "gstreamer"); +#endif + // So far, this is only needed on Mac where static initialization is fucked up. PokemonAutomation::register_all_statics(); diff --git a/SerialPrograms/Source/CommonFramework/VideoPipeline/VideoPipelineOptions.h b/SerialPrograms/Source/CommonFramework/VideoPipeline/VideoPipelineOptions.h index e7a4d1913..c1f7dc20b 100644 --- a/SerialPrograms/Source/CommonFramework/VideoPipeline/VideoPipelineOptions.h +++ b/SerialPrograms/Source/CommonFramework/VideoPipeline/VideoPipelineOptions.h @@ -34,9 +34,13 @@ class VideoPipelineOptions : public GroupOption{ , AUTO_RESET_SECONDS( "Video Auto-Reset:
" "Attempt to reset the video if this many seconds has elapsed since the last video frame (in order to fix issues with RDP disconnection, etc).
" - "This option is not supported by all video frameworks.", + "This option is not supported by all video frameworks. Set to a value of 0 to disable Auto-Reset.", LockMode::UNLOCK_WHILE_RUNNING, +#if defined(__linux__) + 0 // Default to disabled on linux, auto-resets briefly output black frames +#else 5 +#endif ) { PA_ADD_OPTION(VIDEO_BACKEND);