JRtpLib分包代码

来源:互联网 发布:品牌网络推广毕业论文 编辑:程序博客网 时间:2024/06/06 03:40
int status=0;
 int packetSize=FLAME_VIDEO_PACKETSIZE;
 if(dwBufSize<=packetSize)
 {
  status= m_sess->SendPacket((void *)pBuffer,dwBufSize);
  if (status < 0)
  {
   FlameLog::Single()->LogError("send data error:"+GetSessionID()+RTPGetErrorString(status)); 
  }
 }
 else
 {
  //分包处理格式:  个数:编号
  int paNumber=dwBufSize/packetSize+1;
  if(dwBufSize%packetSize==0)
  {
   paNumber-=1;
  }
  string header=FlameString::ToString(paNumber)+":"; 
  int i=0;
  for(i=0;i<paNumber-1;i++)
  {      
   string headerTem=header+FlameString::ToString(i);
   //FlameLog::Single()->LogError("send data size:"+FlameString::ToString(packetSize));
   status= m_sess->SendPacketEx((void *)(pBuffer+packetSize*i),packetSize,FLAME_VIDEO_SPLITDATA,headerTem.c_str(),headerTem.length());   
   if (status < 0)
   {
      FlameLog::Single()->LogError("send data error:"+GetSessionID()+RTPGetErrorString(status)); 
   }
  }   
  //发送最后一个
  string headerTem=header+FlameString::ToString(i);
  //FlameLog::Single()->LogError("send lstdata size:"+FlameString::ToString(dwBufSize-(i*packetSize)));
  status= m_sess->SendPacketEx((void *)(pBuffer+packetSize*i),dwBufSize-(i*packetSize),FLAME_VIDEO_SPLITDATA,headerTem.c_str(),headerTem.length());
  if (status < 0)
  {  
      FlameLog::Single()->LogError("send data error:"+GetSessionID()+RTPGetErrorString(status)); 
  }
 } 
原创粉丝点击