X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fmain.cpp;h=f8b5395f4f9ffceb4cce3a9c65184309b7dfcfe9;hb=f81ae3be1aae619fe4ad022f55d95a4a83ace076;hp=d5654a5a07c4ef26bb8924b7fa8cd7f1362cc827;hpb=4a38970b4e8cd4bce1dd9eabd56a45635501bbc3;p=nageru diff --git a/nageru/main.cpp b/nageru/main.cpp index d5654a5..f8b5395 100644 --- a/nageru/main.cpp +++ b/nageru/main.cpp @@ -1,5 +1,6 @@ extern "C" { -#include +#include +#include } #include #include @@ -15,9 +16,10 @@ extern "C" { #ifdef HAVE_CEF #include -#include -#include -#include +#endif + +#ifdef HAVE_SRT +#include #endif #include "basic_stats.h" @@ -26,7 +28,6 @@ extern "C" { #endif #include "shared/context.h" #include "flags.h" -#include "image_input.h" #include "mainwindow.h" #include "mixer.h" #include "quicksync_encoder.h" @@ -63,6 +64,9 @@ int main(int argc, char *argv[]) global_flags.va_display = QuickSyncEncoder::get_usable_va_display(); } + // The OpenGL widgets do not work well with the native Wayland integration. + setenv("QT_QPA_PLATFORM", "xcb", 0); + 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 @@ -74,6 +78,12 @@ int main(int argc, char *argv[]) av_register_all(); #endif +#ifdef HAVE_SRT + if (global_flags.srt_port >= 0 || !global_flags.srt_destination_host.empty()) { + srt_startup(); + } +#endif + QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts, true); QSurfaceFormat fmt; @@ -95,7 +105,7 @@ int main(int argc, char *argv[]) global_share_widget = new QGLWidget(); if (!global_share_widget->isValid()) { fprintf(stderr, "Failed to initialize OpenGL. Nageru needs at least OpenGL 3.1 to function properly.\n"); - exit(1); + abort(); } MainWindow mainWindow; @@ -119,9 +129,11 @@ int main(int argc, char *argv[]) } int rc = app.exec(); - global_mixer->quit(); - mainWindow.mixer_shutting_down(); delete global_mixer; - ImageInput::shutdown_updaters(); +#ifdef HAVE_SRT + if (global_flags.srt_port >= 0) { + srt_cleanup(); + } +#endif return rc; }