#include <cef_version.h>
#endif
+#ifdef HAVE_SRT
+#include <srt/srt.h>
+#endif
+
#include "basic_stats.h"
#ifdef HAVE_CEF
#include "nageru_cef_app.h"
#endif
-#include "context.h"
+#include "shared/context.h"
#include "flags.h"
#include "image_input.h"
#include "mainwindow.h"
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
// 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
+#ifdef HAVE_SRT
+ if (global_flags.srt_port >= 0) {
+ srt_startup();
+ }
+#endif
+
QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts, true);
QSurfaceFormat fmt;
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;
}
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;
}