海康的设备获取“码流”,并对码流进行处理。

 NET_DVR_RealPlay_V30(m_struDeviceInfo.lLoginID,&ClientInfo,g_RealDataCallBack_V30,NULL,TRUE);  //播放实时流

 

g_RealDataCallBack_V30 回调函数实现获取实时流

void CALLBACK g_RealDataCallBack_V30(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,void* dwUser)
 {
   switch (dwDataType)
 {
 case NET_DVR_SYSHEAD: //dwDataType宏的值

  if (!PlayM4_GetPort(&lPort))  //获取播放库未使用的通道号
  {
   break;
  }
  if (dwBufSize > 0)
  {
   if (!PlayM4_SetStreamOpenMode(lPort, STREAME_REALTIME))  //设置实时流播放模式
   {
    break;
   }

   if (!PlayM4_OpenStream(lPort, pBuffer, dwBufSize, 2*1024*1024)) //打开流接口
   {
    break;
   }
   if (!PlayM4_Play(lPort,NULL)) //播放开始  这一步必须有
   {
    break;
   }
   PlayM4_SetDecCallBack(lPort,DecCBFun);  //执行回调
  }
 case NET_DVR_STREAMDATA:   //码流数据
  if (dwBufSize > 0 && lPort != -1)
  {
   if (!PlayM4_InputData(lPort, pBuffer, dwBufSize))
   {
    break;
   }
  }
 }
}

DecCBFun   回调函数对实时流进行处理     可输出  RGB32帧、YUV12帧

 

你可能感兴趣的:(海康的设备获取“码流”,并对码流进行处理。)