Add StickyFPS quirk for Arducam OV2311 (#994)

Disable setting first video mode on boot. Resolution is actually set immediately after
This commit is contained in:
superpenguin612
2023-11-02 22:36:24 -04:00
committed by GitHub
parent 5a4eb54693
commit 5136dad535
3 changed files with 6 additions and 2 deletions

View File

@@ -30,4 +30,6 @@ public enum CameraQuirk {
CompletelyBroken,
/** Has adjustable focus and autofocus switch */
AdjustableFocus,
/** Changing FPS repeatedly with small delay does not work correctly */
StickyFPS,
}

View File

@@ -44,7 +44,8 @@ public class QuirkyCamera {
new QuirkyCamera(
-1, -1, "mmal service 16.1", CameraQuirk.PiCam), // PiCam (via V4L2, not zerocopy)
new QuirkyCamera(-1, -1, "unicam", CameraQuirk.PiCam), // PiCam (via V4L2, not zerocopy)
new QuirkyCamera(0x85B, 0x46D, CameraQuirk.AdjustableFocus) // Logitech C925-e
new QuirkyCamera(0x85B, 0x46D, CameraQuirk.AdjustableFocus), // Logitech C925-e
new QuirkyCamera(0x6366, 0x0c45, CameraQuirk.StickyFPS) // Arducam OV2311
);
public static final QuirkyCamera DefaultCamera = new QuirkyCamera(0, 0, "");

View File

@@ -102,7 +102,8 @@ public class USBCameraSource extends VisionSource {
protected USBCameraSettables(CameraConfiguration configuration) {
super(configuration);
getAllVideoModes();
setVideoMode(videoModes.get(0));
if (!cameraQuirks.hasQuirk(CameraQuirk.StickyFPS))
setVideoMode(videoModes.get(0)); // fixes double FPS set
}
public void setAutoExposure(boolean cameraAutoExposure) {