diff --git a/chameleon-server/src/main/java/com/chameleonvision/vision/camera/USBCameraCapture.java b/chameleon-server/src/main/java/com/chameleonvision/vision/camera/USBCameraCapture.java index 129558ba0..b9d0cb372 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/vision/camera/USBCameraCapture.java +++ b/chameleon-server/src/main/java/com/chameleonvision/vision/camera/USBCameraCapture.java @@ -13,6 +13,7 @@ import org.opencv.core.Size; import org.opencv.imgcodecs.Imgcodecs; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class USBCameraCapture implements CameraCapture { @@ -30,6 +31,12 @@ public class USBCameraCapture implements CameraCapture { cvSink = CameraServer.getInstance().getVideo(baseCamera); properties = new USBCaptureProperties(baseCamera, config); + var videoModes = properties.getVideoModes(); + if(videoModes.size() < 1) { + throw new VideoException("0 video modes are valid! Full list provided by camera: \n\n" + + Arrays.toString(baseCamera.enumerateVideoModes())); + } + int videoMode = properties.videoModes.size() - 1 <= config.videomode ? config.videomode : 0; setVideoMode(videoMode); }