+extern "C" {
+#include <libavformat/avformat.h>
+}
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
#include <epoxy/gl.h>
+
#include <QApplication>
-#include <QDesktopWidget>
+#include <QCoreApplication>
+#include <QGL>
+#include <QSize>
#include <QSurfaceFormat>
-#include <QtGui/QOpenGLContext>
-#include <QGLFormat>
+#include "context.h"
+#include "flags.h"
#include "mainwindow.h"
#include "mixer.h"
-#include "context.h"
int main(int argc, char *argv[])
{
- setenv("QT_XCB_GL_INTEGRATION", "xcb_egl", 0);
+ parse_flags(argc, argv);
+
+ if (global_flags.va_display.empty() ||
+ global_flags.va_display[0] != '/') {
+ // 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);
+ }
+ setlinebuf(stdout);
+ av_register_all();
QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts, true);
QApplication app(argc, argv);
global_share_widget = new QGLWidget();
MainWindow mainWindow;
- mainWindow.resize(QSize(1500, 720));
+ mainWindow.resize(QSize(1500, 810));
mainWindow.show();
+ app.installEventFilter(&mainWindow); // For white balance color picking.
+
int rc = app.exec();
- mixer_quit();
+ global_mixer->quit();
+ mainWindow.mixer_shutting_down();
+ delete global_mixer;
return rc;
}