Skip to content

Commit

Permalink
Merge pull request #42 from cacheflowe/master
Browse files Browse the repository at this point in the history
Add defensive checks for null `frame`
  • Loading branch information
cansik authored Oct 21, 2023
2 parents e855c14 + 7706ab7 commit 0fbc9e5
Showing 1 changed file with 44 additions and 27 deletions.
71 changes: 44 additions & 27 deletions src/main/java/ch/bildspur/realsense/RealSenseCamera.java
Original file line number Diff line number Diff line change
Expand Up @@ -308,55 +308,66 @@ public void readFrames() {

if (align.isEnabled()) {
FrameList temp = align.getBlock().process(frames);
frames.release();
if (frames != null) frames.release();
frames = temp;
}

// 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);
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();
}

frame.release();
}

if (colorStream.isEnabled()) {
VideoFrame frame = frames.getColorFrame();
colorStream.copyPixels(frame);
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);
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);
frame.release();
if (frame != null) {
secondIRStream.copyPixels(frame);
frame.release();
}
}

if (poseStream.isEnabled()) {
PoseFrame frame = frames.getPoseFrame();

frame.release();
if (frame != null) {
frame.release();
}
}
}

Expand All @@ -368,7 +379,9 @@ private <T extends Frame> T getStreamByIndex(FrameList frames, Stream stream, Fo
&& frame.getProfile().getIndex() == index) {
return (T) frame;
}
frame.release();
if (frame != null) {
frame.release();
}
}
return null;
}
Expand Down Expand Up @@ -620,9 +633,13 @@ public PVector getProjectedPoint(int x, int y) {
public short[][] getDepthData() {
checkRunning();

DepthFrame frame = frames.getDepthFrame();
depthStream.updateDepthData(frame);
frame.release();
if (frames != null) {
DepthFrame frame = frames.getDepthFrame();
if (frame != null) {
depthStream.updateDepthData(frame);
frame.release();
}
}
return depthStream.getData();
}

Expand Down

0 comments on commit 0fbc9e5

Please sign in to comment.