Skip to content

Commit e9bd234

Browse files
committed
Defensive checks for null frame
1 parent e855c14 commit e9bd234

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

src/main/java/ch/bildspur/realsense/RealSenseCamera.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ public void readFrames() {
308308

309309
if (align.isEnabled()) {
310310
FrameList temp = align.getBlock().process(frames);
311-
frames.release();
311+
if (frames != null) frames.release();
312312
frames = temp;
313313
}
314314

@@ -320,7 +320,7 @@ public void readFrames() {
320320
if (!filters.isEmpty()) {
321321
for (RSFilterBlock filter : filters) {
322322
DepthFrame temp = filter.getBlock().process(frame);
323-
frame.release();
323+
if (frame != null) frame.release();
324324
frame = temp;
325325
}
326326
}
@@ -332,31 +332,31 @@ public void readFrames() {
332332
coloredFrame.release();
333333
}
334334

335-
frame.release();
335+
if (frame != null) frame.release();
336336
}
337337

338338
if (colorStream.isEnabled()) {
339339
VideoFrame frame = frames.getColorFrame();
340340
colorStream.copyPixels(frame);
341-
frame.release();
341+
if (frame != null) frame.release();
342342
}
343343

344344
if (firstIRStream.isEnabled()) {
345345
VideoFrame frame = getStreamByIndex(frames, Stream.Infrared, Format.Any, firstIRStream.getIndex());
346346
firstIRStream.copyPixels(frame);
347-
frame.release();
347+
if (frame != null) frame.release();
348348
}
349349

350350
if (secondIRStream.isEnabled()) {
351351
VideoFrame frame = getStreamByIndex(frames, Stream.Infrared, Format.Any, secondIRStream.getIndex());
352352
secondIRStream.copyPixels(frame);
353-
frame.release();
353+
if (frame != null) frame.release();
354354
}
355355

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

359-
frame.release();
359+
if (frame != null) frame.release();
360360
}
361361
}
362362

@@ -368,7 +368,7 @@ private <T extends Frame> T getStreamByIndex(FrameList frames, Stream stream, Fo
368368
&& frame.getProfile().getIndex() == index) {
369369
return (T) frame;
370370
}
371-
frame.release();
371+
if (frame != null) frame.release();
372372
}
373373
return null;
374374
}
@@ -620,9 +620,13 @@ public PVector getProjectedPoint(int x, int y) {
620620
public short[][] getDepthData() {
621621
checkRunning();
622622

623-
DepthFrame frame = frames.getDepthFrame();
624-
depthStream.updateDepthData(frame);
625-
frame.release();
623+
if (frames != null) {
624+
DepthFrame frame = frames.getDepthFrame();
625+
if (frame != null) {
626+
depthStream.updateDepthData(frame);
627+
frame.release();
628+
}
629+
}
626630
return depthStream.getData();
627631
}
628632

0 commit comments

Comments
 (0)