private async void handlePlayButtonOn() { recordMode = RecordMode.Playingback; saveRecordedSession.Focus(); finishRecording.Wait(); playButton.ImageIndex = 3; playBackRgbLock = new object(); rgbBoard.playbackLock = playBackRgbLock; // Reread rgb file videoReader = new VideoReader(tempRgbFileName, (int)lastWrittenRgbTime.TotalMilliseconds); rgbBoard.mat = videoReader.getFrame(0); if (rgbBoard.mat == null) { // video is null return; } rgbBoard.Image = rgbBoard.mat.Bitmap; rgbPlaybackFrameNo = videoReader.frameCount; int frameWidth = videoReader.frameWidth; int frameHeight = videoReader.frameHeight; depthReader = new BaseDepthReader(tempDepthFileName); depthFrame = depthReader.getFrameCount(); depthWidth = depthReader.getWidth(); depthHeight = depthReader.getHeight(); depthBitmap = new Bitmap(depthWidth, depthHeight, PixelFormat.Format32bppRgb); depthValuesToByte = new byte[depthWidth * depthHeight * 4]; endTimeLabel.Text = (int)lastWrittenRgbTime.TotalMinutes + ":" + lastWrittenRgbTime.Seconds.ToString("00") + "." + lastWrittenRgbTime.Milliseconds.ToString("000"); // Set values for playBar playBar.Enabled = true; playBar.Minimum = 1; playBar.Maximum = rgbPlaybackFrameNo; playBar.Value = 1; StringBuilder sb = new StringBuilder(); sb.Append("Temporary rgb file has written " + rgbStreamedFrame + " frames \n"); sb.Append("Temporary rgb file has " + rgbPlaybackFrameNo + " frames of size = ( " + frameWidth + " , " + frameHeight + " ) \n"); sb.Append("Temporary depth file has " + depthFrame + " frames of size = ( " + depthWidth + " , " + depthHeight + " ) \n"); sb.Append("RecordingTime " + lastWrittenRgbTime + "\n"); if (rigDetected.Value) { sb.Append("Rig(s) is detected.\n"); } else { sb.Append("No rig is detected.\n"); } detectedObjects = await Utils.DetectObjects("Progress on capturing", videoReader, depthReader, objectRecognizers, objectRecognizerIncluded, this.coordinateMapper.MapColorFrameToCameraSpace); Console.WriteLine("In playback " + detectedObjects.Count); sb.Append(detectedObjects.Count + " objects is detected.\n"); helperTextBox.Text = sb.ToString(); main.Invalidate(); }