@@ -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