public V2ImageFrame(IColorFrameReader reader, IntPtr handle) { try { _data = reader.GetFrameArrivedEventData(handle); _reference = _data.get_FrameReference(); SetFrame(_reference.AcquireFrame()); } catch (COMException) { Dispose(); } }
public override KinectBaseImageFrame GetFrame() { try { if (waitHandle != null) { m_data = m_reader.GetFrameArrivedEventData(waitHandle); m_frameRef = m_data.get_FrameReference(); var frame = new V2ImageFrame(m_frameRef.AcquireFrame()); if (!NewTimeStamp(frame.Time)) { return null; } return frame; } else { var frame = new V2ImageFrame(m_reader.AcquireLatestFrame()); if (!NewTimeStamp(frame.Time)) { return null; } return frame; } } catch (COMException ex) { if ((UInt32)ex.ErrorCode == 0x8000000A) { } else { Console.WriteLine(ex); } return null; } }
protected override void OnDispose() { if (_description != null) { Marshal.ReleaseComObject(_description); _description = null; } if (_frame != null) { Marshal.ReleaseComObject(_frame); _frame = null; } if (_reference != null) { Marshal.ReleaseComObject(_reference); _reference = null; } if (_data != null) { Marshal.ReleaseComObject(_data); _data = null; } }