+#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.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();
+ }