From 73fc8e04cac05bcc7eb7a64af1b1886223fa6af2 Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 5 Sep 2020 09:33:48 -0700 Subject: [PATCH] Filter non-bgr modes on Pi (#112) This can almost double performance in some cases. --- .../org/photonvision/vision/camera/USBCameraSource.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/photon-server/src/main/java/org/photonvision/vision/camera/USBCameraSource.java b/photon-server/src/main/java/org/photonvision/vision/camera/USBCameraSource.java index aba98ab38..33ece846a 100644 --- a/photon-server/src/main/java/org/photonvision/vision/camera/USBCameraSource.java +++ b/photon-server/src/main/java/org/photonvision/vision/camera/USBCameraSource.java @@ -128,10 +128,19 @@ public class USBCameraSource implements VisionSource { List videoModesList = new ArrayList<>(); try { for (var videoMode : camera.enumerateVideoModes()) { + // Filter grey modes if (videoMode.pixelFormat == VideoMode.PixelFormat.kGray || videoMode.pixelFormat == VideoMode.PixelFormat.kUnknown) { continue; } + + // On picam, filter non-bgr modes for performance + if (cameraQuirks.hasQuirk(CameraQuirk.PiCam)) { + if (videoMode.pixelFormat != VideoMode.PixelFormat.kBGR) { + continue; + } + } + videoModesList.add(videoMode); } } catch (Exception e) {