C#包装器,用于三个指针的数组

我目前正在使用C#包装器来处理Dallmeier Common API灯。
查看上一篇文章: C#wrapper和Callbacks

我已经拥有了几乎所有“包装”但我仍然坚持包含一个包含三个指针数组和一个数组整数的回调:

dlm_setYUVDataCllback

int(int SessionHandle, void (*callback) (long IPlayerID, unsigned char** yuvData, int* pitch, int width, int height, int64_t ts, char* extData)) 

function设置回调,以接收当前YUV图像。
参数 SessionHandle:处理当前会话。
返回 PlayerID(请参阅回调)。
回调 – IPlayerId:Player对象的id
– yuvData:指向Y,U和V部分图像的三个指针的数组
使用的YUV格式是YUV420平面(未打包)。
char * y = yuvData [0];
char * u = yuvData [1];
char * v = yuvData [2];
– pitch:用于Y,U和V部分图像的音高的整数数组
– width:图像的固有宽度。
– 身高
– ts:当前帧的时间戳
– extData:框架的附加数据

我如何在c#中包装它?

任何帮助深表感谢。

unsigned char** yuvData应定义为[MarshalAs(UnmanagedType.ByValArray,SizeConst=3)] IntPtr[] yuvData

然后,您将获得3个IntPtrs的数组。 您可以使用Marshal.Read或Marshal.Copy读取实际数据。