X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=main.cpp;h=c1a52c0489a6d7b4e9054da338635290846cf1cb;hb=6ffaabac0a523617b686f40c154a25cb548cc561;hp=4287b7e56f8d4faf321f28221d432492ac54c1bd;hpb=36afa76e579a3afaaf6826a76f33baff049a54ed;p=nageru diff --git a/main.cpp b/main.cpp index 4287b7e..c1a52c0 100644 --- a/main.cpp +++ b/main.cpp @@ -29,6 +29,7 @@ extern "C" { #include "image_input.h" #include "mainwindow.h" #include "mixer.h" +#include "quicksync_encoder.h" #ifdef HAVE_CEF CefRefPtr cef_app; @@ -55,15 +56,24 @@ int main(int argc, char *argv[]) parse_flags(PROGRAM_NAGERU, argc, argv); - if (global_flags.va_display.empty() || - global_flags.va_display[0] != '/') { + if (global_flags.va_display.empty() && !global_flags.x264_video_to_disk) { + // The user didn't specify a VA-API display, but we need one. + // See if the default works, and if not, let's try to help + // the user by seeing if there's any that would work automatically. + global_flags.va_display = QuickSyncEncoder::get_usable_va_display(); + } + + if ((global_flags.va_display.empty() || + global_flags.va_display[0] != '/') && !global_flags.x264_video_to_disk) { // We normally use EGL for zerocopy, but if we use VA against DRM // instead of against X11, we turn it off, and then don't need EGL. setenv("QT_XCB_GL_INTEGRATION", "xcb_egl", 0); using_egl = true; } setlinebuf(stdout); +#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(58, 9, 100) av_register_all(); +#endif QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts, true); @@ -90,7 +100,7 @@ int main(int argc, char *argv[]) } MainWindow mainWindow; - mainWindow.resize(QSize(1500, 850)); + mainWindow.resize(QSize(1500, 910)); mainWindow.show(); app.installEventFilter(&mainWindow); // For white balance color picking.