protected virtual int NativeConnectionCallback(MmalConnectionType *connection) { var queue = new MmalQueueImpl(connection->Queue); var bufferImpl = queue.GetBuffer(); if (bufferImpl.CheckState()) { if (bufferImpl.Length > 0) { CallbackHandler.InputCallback(bufferImpl); } InputPort.SendBuffer(bufferImpl); return((int)connection->Flags); } queue = new MmalQueueImpl(connection->Pool->Queue); bufferImpl = queue.GetBuffer(); if (!bufferImpl.CheckState()) { MmalLog.Logger.LogInformation("Buffer could not be obtained by connection callback"); return((int)connection->Flags); } if (bufferImpl.Length > 0) { CallbackHandler.OutputCallback(bufferImpl); } OutputPort.SendBuffer(bufferImpl); return((int)connection->Flags); }