diff --git a/src/citra_qt/camera/qt_multimedia_camera.cpp b/src/citra_qt/camera/qt_multimedia_camera.cpp index dabccac94f..5c0b73f2b3 100644 --- a/src/citra_qt/camera/qt_multimedia_camera.cpp +++ b/src/citra_qt/camera/qt_multimedia_camera.cpp @@ -172,9 +172,12 @@ void QtMultimediaCameraHandler::CreateCamera(const std::string& camera_name) { } settings.setMinimumFrameRate(30); settings.setMaximumFrameRate(30); -#ifdef __linux__ - settings.setPixelFormat(QVideoFrame::PixelFormat::Format_RGB565); -#endif + if (camera->supportedViewfinderPixelFormats().isEmpty()) { + // The gstreamer plugin (used on linux systems) returns an empty list on querying supported + // viewfinder pixel formats, and will not work without expliciting setting it to some value, + // so we are defaulting to RGB565 here which should be fairly widely supported. + settings.setPixelFormat(QVideoFrame::PixelFormat::Format_RGB565); + } camera->setViewfinder(&camera_surface); camera->load(); }