From 4ce32b53743bf69271061fe7dd005b887f411db9 Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 7 Mar 2020 15:51:30 -0800 Subject: [PATCH] Add more video mode checking to camera streamer seems to resolve spam-y errors saying `CvException [org.opencv.core.CvException: cv::Exception: OpenCV(3.4.7) /__w/1/s/opencv/modules/core/src/matrix_wrap.cpp:1658: error: (-215:Assertion failed) !fixedSize() in function 'release'` --- .../vision/camera/CameraStreamer.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/chameleon-server/src/main/java/com/chameleonvision/vision/camera/CameraStreamer.java b/chameleon-server/src/main/java/com/chameleonvision/vision/camera/CameraStreamer.java index b3c9a95bf..04578c44d 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/vision/camera/CameraStreamer.java +++ b/chameleon-server/src/main/java/com/chameleonvision/vision/camera/CameraStreamer.java @@ -86,6 +86,18 @@ public class CameraStreamer { // Size newSize = new Size(newWidth, newHeight); Imgproc.resize(streamBuffer, streamBuffer, this.size); } + + var sourceVideoMode = cvSource.getVideoMode(); + var imageSize = streamBuffer.size(); + if(sourceVideoMode.width != (int) imageSize.width || sourceVideoMode.height != (int) imageSize.height) { + synchronized (streamBufferLock) { + cvSource.setVideoMode(new VideoMode(sourceVideoMode.pixelFormat, + (int)imageSize.width, + (int) imageSize.height, + sourceVideoMode.fps)); + } + } + cvSource.putFrame(streamBuffer); } }