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读取实际数据。