音视频CC计数检查
来源:互联网 发布:javascript语言特点 编辑:程序博客网 时间:2024/05/22 07:59
在网络中收取视频数据的时候,可以通过检查 CC来判断网络中是否存在丢包问题,CC字段是在 TS头中的一个计数值,正常情况下它是从0到15的连续值(到达16后变为0)。
编码思路:首先记录第一次的 CC值,然后再收到数据包的时候和上次保存的 CC值进行对比,如果差1说明网络中没有丢包。
有以下几种情况 CC计数是可以不连续的:
1.调整字段的值为 00或者 10的时候,说明这个数据包中没有音视频数据,所以 CC不计数;
2.当前数据包中存在调整字段,并且调整字段有数据,如果调整字段设置了不连续计数标志位的话,这种情况下 CC不计数。
代码:
pThis->m_cc = (pData[3] & 0x0f);//pData是获取的 188字节的TS数据
if (pThis->m_last_cc == -1)
{
pThis->m_last_cc = pThis->m_cc;
}
else
{
if (0 == (pData[3] & 0x10)) // 调整字段为00或10时,连续计数值不增加
{
pThis->m_last_cc = -1;
}
else if (0 != (pData[3] & 0x20) && pData[4] > 0) // 存在调整字段11,并且调整字段大于0,检查是否有不连续计数位
{
unsigned int uDiscontinuityIndicator = pData[5] & 0x80;
if( (pThis->m_cc != ((pThis->m_last_cc + 1) &0x0f)) && (0 == uDiscontinuityIndicator) )
{
log_info(" last cc is %d new cc is %d\n", pThis->m_last_cc, pThis->m_cc);
}
pThis->m_last_cc = pThis->m_cc;
}
else
{
if(pThis->m_cc != ((pThis->m_last_cc + 1) &0x0f))
{
log_info(" last cc is %d new cc is %d\n", pThis->m_last_cc, pThis->m_cc);
}
pThis->m_last_cc = pThis->m_cc;
}
}
0 0
- 音视频CC计数检查
- CC视频
- cc.XMLHttpRequest 引用计数
- cc
- cc
- CC
- cc
- cc
- cc++
- cc
- cc
- cc
- cc
- cc
- CC
- cc
- cc
- cc
- NLPIR/ICTCLAS2016分词系统 使用心得
- QT之HTTP下载获取文件大小信息
- 字符设备驱动
- 仍然是找到不OPencl.dll的问题-更新nvdia驱动解决
- Frogger
- 音视频CC计数检查
- 数据结构实验之查找四:二分查找
- Linux进程间通信——使用信号
- 【t057】任务分配
- 蓝牙之二十一-蓝牙免弹窗配对
- 手机浏览器呼出QQ聊天窗口
- java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext错误解决
- Android中3种时间获取方法的差异
- LeetCode--2. Add Two Numbers