+#ifdef HAVE_CEF
+ // Let CEF have first priority on parsing the command line, because we might be
+ // launched as a CEF sub-process.
+ CefMainArgs main_args(argc, argv);
+ cef_app = CefRefPtr<NageruCefApp>(new NageruCefApp());
+ int err = CefExecuteProcess(main_args, cef_app.get(), nullptr);
+ if (err >= 0) {
+ return err;
+ }
+
+ // CEF wants to use GLib for its main loop, which interferes with Qt's use of it.
+ // The alternative is trying to integrate CEF into Qt's main loop, but that requires
+ // fairly extensive cross-thread communication and that parts of CEF runs on Qt's UI
+ // thread.
+ setenv("QT_NO_GLIB", "1", 0);
+#endif
+
+ parse_flags(PROGRAM_NAGERU, 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);
+ using_egl = true;
+ }
+ setlinebuf(stdout);
+ av_register_all();