diff --git a/chameleon-server/src/main/java/com/chameleonvision/vision/VisionProcess.java b/chameleon-server/src/main/java/com/chameleonvision/vision/VisionProcess.java index 2f841930f..53a73570c 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/vision/VisionProcess.java +++ b/chameleon-server/src/main/java/com/chameleonvision/vision/VisionProcess.java @@ -284,6 +284,7 @@ public class VisionProcess { private class CameraStreamerRunnable extends LoopingRunnable { final CameraStreamer streamer; + private Mat bufferMat = new Mat(); private CameraStreamerRunnable(int cameraFPS, CameraStreamer streamer) { // add 2 FPS to allow for a bit of overhead @@ -295,12 +296,16 @@ public class VisionProcess { protected void process() { if (!streamFrameQueue.isEmpty()) { try { - Mat tempMat = new Mat(); - Mat tempMat2 = streamFrameQueue.take(); - tempMat2.copyTo(tempMat); - tempMat2.release(); - streamer.runStream(tempMat); - tempMat.release(); + + bufferMat = streamFrameQueue.take(); + + try { + streamer.runStream(bufferMat); + bufferMat.release(); + } catch (Exception e) { + // do nothing + } + } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/DriverVisionPipeline.java b/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/DriverVisionPipeline.java index 2bcc6a19b..e5cc03baa 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/DriverVisionPipeline.java +++ b/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/DriverVisionPipeline.java @@ -1,6 +1,5 @@ package com.chameleonvision.vision.pipeline; -import com.chameleonvision.Main; import com.chameleonvision.util.MemoryManager; import com.chameleonvision.vision.camera.CameraCapture; import com.chameleonvision.vision.pipeline.pipes.Draw2dContoursPipe; @@ -38,8 +37,6 @@ public class DriverVisionPipeline extends CVPipeline