From 7706ab76700ba8f69999d70a64a627a4b8c6e9ca Mon Sep 17 00:00:00 2001 From: cacheflowe Date: Fri, 20 Oct 2023 13:36:24 -0400 Subject: [PATCH] Improved null checks after more testing and finding occasional NPE errors --- .../bildspur/realsense/RealSenseCamera.java | 59 +++++++++++-------- 1 file changed, 36 insertions(+), 23 deletions(-) diff --git a/src/main/java/ch/bildspur/realsense/RealSenseCamera.java b/src/main/java/ch/bildspur/realsense/RealSenseCamera.java index 65c1db4..de40a5a 100644 --- a/src/main/java/ch/bildspur/realsense/RealSenseCamera.java +++ b/src/main/java/ch/bildspur/realsense/RealSenseCamera.java @@ -315,48 +315,59 @@ public void readFrames() { // copy streams if (depthStream.isEnabled()) { DepthFrame frame = frames.getDepthFrame(); + if (frame != null) { + + // apply depth filter + if (!filters.isEmpty()) { + for (RSFilterBlock filter : filters) { + DepthFrame temp = filter.getBlock().process(frame); + frame.release(); + frame = temp; + } + } - // apply depth filter - if (!filters.isEmpty()) { - for (RSFilterBlock filter : filters) { - DepthFrame temp = filter.getBlock().process(frame); - if (frame != null) frame.release(); - frame = temp; + // update colors if colorized is there + if (colorizer.isEnabled()) { + VideoFrame coloredFrame = colorizer.getBlock().colorize(frame); + if(coloredFrame != null) { + depthStream.copyPixels(coloredFrame); + coloredFrame.release(); + } } - } - // update colors if colorized is there - if (colorizer.isEnabled()) { - VideoFrame coloredFrame = colorizer.getBlock().colorize(frame); - depthStream.copyPixels(coloredFrame); - coloredFrame.release(); + frame.release(); } - - if (frame != null) frame.release(); } if (colorStream.isEnabled()) { VideoFrame frame = frames.getColorFrame(); - colorStream.copyPixels(frame); - if (frame != null) frame.release(); + if (frame != null) { + colorStream.copyPixels(frame); + frame.release(); + } } if (firstIRStream.isEnabled()) { VideoFrame frame = getStreamByIndex(frames, Stream.Infrared, Format.Any, firstIRStream.getIndex()); - firstIRStream.copyPixels(frame); - if (frame != null) frame.release(); + if (frame != null) { + firstIRStream.copyPixels(frame); + frame.release(); + } } if (secondIRStream.isEnabled()) { VideoFrame frame = getStreamByIndex(frames, Stream.Infrared, Format.Any, secondIRStream.getIndex()); - secondIRStream.copyPixels(frame); - if (frame != null) frame.release(); + if (frame != null) { + secondIRStream.copyPixels(frame); + frame.release(); + } } if (poseStream.isEnabled()) { PoseFrame frame = frames.getPoseFrame(); - - if (frame != null) frame.release(); + if (frame != null) { + frame.release(); + } } } @@ -368,7 +379,9 @@ private T getStreamByIndex(FrameList frames, Stream stream, Fo && frame.getProfile().getIndex() == index) { return (T) frame; } - if (frame != null) frame.release(); + if (frame != null) { + frame.release(); + } } return null; }