JRTP 服务端 怎么设置为堵塞模式啊?
来源:互联网 发布:win10如何恢复mac地址 编辑:程序博客网 时间:2024/06/12 01:40
求助老手,我起了个线程在死循环里面执行
do{
#ifndef RTP_SUPPORT_THREAD
error_status = sess_client.Poll();
checkerror(error_status);
#endif // RTP_SUPPORT_THREAD
sess_client.BeginDataAccess();
// check incoming packets
if (sess_client.GotoFirstSourceWithData())
{
printf("Begin play\n");
do
{
RTPPacket *pack;
while ((pack = sess_client.GetNextPacket()) != NULL)
{
// You can examine the data here
printf("Got packet !\n");
timestamp1 = pack->GetTimestamp();
lengh=pack->GetPayloadLength();
RawData=pack->GetPayloadData(); //得到数据
printf(" timestamp: %d lengh=%d\n",timestamp1,lengh);
// we don't longer need the packet, so
// we'll delete it
//Begin play
int fd = open("/dev/dsp", O_RDWR);
int status = write(fd, RawData,lengh );
printf("Play bytes:%d\n",status);
if (status != lengh)
perror("wrote wrong number of bytes");
status = ioctl(fd, SOUND_PCM_SYNC, 0);
if (status == -1)
perror("SOUND_PCM_SYNC ioctl failed");
printf("Play end\n");
close(fd);
sess_client.DeletePacket(pack);
}
} while (sess_client.GotoNextSourceWithData());
//return 0;
}
sess_client.EndDataAccess();
}while(1);
结果CPU 99%,请问JRTP里面的怎么设置堵塞模式的啊?
do{
#ifndef RTP_SUPPORT_THREAD
error_status = sess_client.Poll();
checkerror(error_status);
#endif // RTP_SUPPORT_THREAD
sess_client.BeginDataAccess();
// check incoming packets
if (sess_client.GotoFirstSourceWithData())
{
printf("Begin play\n");
do
{
RTPPacket *pack;
while ((pack = sess_client.GetNextPacket()) != NULL)
{
// You can examine the data here
printf("Got packet !\n");
timestamp1 = pack->GetTimestamp();
lengh=pack->GetPayloadLength();
RawData=pack->GetPayloadData(); //得到数据
printf(" timestamp: %d lengh=%d\n",timestamp1,lengh);
// we don't longer need the packet, so
// we'll delete it
//Begin play
int fd = open("/dev/dsp", O_RDWR);
int status = write(fd, RawData,lengh );
printf("Play bytes:%d\n",status);
if (status != lengh)
perror("wrote wrong number of bytes");
status = ioctl(fd, SOUND_PCM_SYNC, 0);
if (status == -1)
perror("SOUND_PCM_SYNC ioctl failed");
printf("Play end\n");
close(fd);
sess_client.DeletePacket(pack);
}
} while (sess_client.GotoNextSourceWithData());
//return 0;
}
sess_client.EndDataAccess();
}while(1);
结果CPU 99%,请问JRTP里面的怎么设置堵塞模式的啊?
0 0
- JRTP 服务端 怎么设置为堵塞模式啊?
- 怎么设置ie10默认浏览模式为兼容模式
- C++ Socket为send recv设置堵塞超时时间
- 堵塞与非堵塞IO模式详解
- VC中将SOCKET类的connect函数设置为非堵塞
- VC中将SOCKET类的connect函数设置为非堵塞
- QTableWidget的其中某些列怎么设置为只读模式使其不能被修改
- c语言 设置堵塞和非堵塞io的方法
- MFC 为按键设置图片怎么不行
- win10 中怎么将用户密码输入验证设置为当电脑从睡眠模式中唤醒时
- 设置网卡为混杂模式
- WebBrowser设置为ie8模式
- ARM设置模式为管理模式
- input设置为只读模式
- 设置socket为为阻塞模式
- 怎么设置KEIL的编译模式
- jrtp h264
- 设置数据日志模式为归档模式
- Vim简明教程
- 集合
- BZOJ1001[BeiJing2006]狼抓兔子最小割網絡流
- Oracle NChar类型的注意事项
- Find All Numbers Disappeared in an Array
- JRTP 服务端 怎么设置为堵塞模式啊?
- mysql 协议的创建DB命令包及解析
- LeetCode 333. Largest BST Subtree
- 利用WinPcap编程,实现基于ARP欺骗的中间人攻击
- 匿名内部类
- 窗口输出文字、图形
- 如何替换掉mybatis逆向生成的垃圾注释?
- Bootstrap Metronic 免费前台
- 云服务器托管