protected override Future <object> DoStop() { var promise = new Promise <object>(); if (_NdiReceiver != null) { _NdiReceiver.VideoFrameReceived -= ProcessFrameReceived; if (_BufferAllocated) { _Buffer.Free(); _BufferAllocated = false; } promise.Resolve(null); } else { promise.Reject(new Exception("NDI.Receiver already gone.")); } return(promise); }