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));
}
}
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));
}
}
- JRtpLib分包代码
- jrtplib 分包处理
- jrtplib 分包处理
- jrtplib 分包处理 (EMIPLIB)
- jrtplib--代码笔记
- JRtpLib组包代码
- jRTPlib
- jrtplib编程步骤文档代码解析
- jrtplib中组播代码发送端和接收端的实现
- J2EE编写代码过程中的分包策略讨论
- C#中upd分包与发送,已经实现全部代码
- jrtplib介绍
- jrtplib指南
- jrtplib介绍
- jrtpLib介绍
- JRTPLIB 文档
- jrtplib介绍
- jrtplib 使用
- freemark
- JAVA中的多线程问题(高级面试中经常遇到)
- 程序状态寄存器指令
- 读书笔记《30天自制操作系统》day01
- 单片机中断的运算方法
- JRtpLib分包代码
- mfc创建动态库注意事项
- 从今天起,记录点滴,一步一步积累。webdriver-总结找不到页面元素报错的各种情况
- 浅谈编程能力的培养与提高——卓越的程序设计之道
- oracle_(培训)1_oracle数据库基本概念
- Qt中Qstring,char,int,QByteArray之间到转换
- 软件中断指令
- html css选项卡连载
- Windows CE的体系结构和功能