写在前面:
对于海康的技术支持我不想多做评价,电话打不通邮件不回,一些找寻解决方案的灵感多来自于海康的论坛和官网给的demo程序。
不过问题解决后感觉 靠自己,不放弃 是多么重要。
声明:此处的解决方法是结合海康论坛将官网demo里的有效代码搬移过来,于茫茫代码中找到自己所需也是挺烦燥的一件事,仅仅为别人节省一点时间也是好的,废话不多说啦~
得到摄像头数据流思路:
通过两个回调函数(这个是sdk里没有的)完成,在NET_DVR_SetRealDataCallBack(m_lRealHandle, g_RealDataCallBack_V30,(DWORD)m_CameraNo)处设置回调函数进行数据包的解析,当一帧图像的数据包完全到达时,会调用PlayM4_SetDecCallBack(LPort, decFunction)进行解码,这里decFunction就是解码的回调函数,在这个函数里完成YV12的数据转成你所需要的格式然后以队列或其他随便什么形式传递出去。
ps:1、所谓回调函数就是一种用函数指针调用的函数,多数情况下调用是系统或是其他函数调用的
2、这里的回调函数参数都是sdk规定好的(NET_DVR_SetRealDataCallBack函数声明里)
3、这里回调函数像是sdk函数在进行流处理时留给我们的一个接口,流通过参数传递进来,你只要想法把数据通过某个形势传递出去就可以在程序