live555 两个循环
来源:互联网 发布:excel输入数据 编辑:程序博客网 时间:2024/06/14 03:28
live555有两个循环!
1、
一个是select()所在的主循环,它即监听连接,也接收请求。
live555MediaServer.cpp中的main()函数,可见其创建一个RTSPServer类实例后,即进入一个函数env->taskScheduler().doEventLoop()中,看名字很明显是一个消息循坏,执行到里面后不停地转圈,生名不息,转圈不止。
void BasicTaskScheduler0::doEventLoop(char* watchVariable) { // Repeatedly loop, handling readble sockets and timed events: while (1) { if (watchVariable != NULL && *watchVariable != 0) break; SingleStep();//select 循环 } }
2、
另一个是发送数据的循环,在MultiFramedRTPSink类中,通过buildAndSendPacket、packFrame、afterGettingFrame、afterGettingFrame1、sendPacketIfNecessary和sendNext构成了一个循环圈,数据包的读取和发送在这里循环进行着。特别注意的是sendPacketIfNecessary方法中的后面代码(nextTask() = envir().taskScheduler().scheduleDelayedTask(uSecondsToGo, (TaskFunc*)sendNext, this);),通过Delay amount of time后,继续下一个Task,并回过来继续调用buildAndSendPacket方法。阅读全文
0 0
- live555的两个循环
- live555的两个循环
- live555的两个循环
- live555 两个循环
- live555--消息循环
- live555-消息循环
- live555 配置循环播放文件
- live555学习笔记3-消息循环
- live555学习笔记3-消息循环
- Live555研究之一mediaServer主循环
- live555学习笔记3-消息循环
- live555学习笔记-消息循环
- live555学习笔记3-消息循环
- live555
- live555
- live555
- live555
- live555
- Linux 安装Nginx详细图解教程
- 苹果开发者账号中,测试机器列表已达到100台上限,怎么办
- Android Studio生成apk安装返回失败ErrorCode:-15、INSTALL_FAILED_TEST_ONLY
- Lua中元方法__call的使用
- 01小项目
- live555 两个循环
- oracle新建用户相关操作
- 线性表的链式存储实现c++
- 根号n段合并排序算法的实现
- PostgreSQL 实现按月按年,按日统计 分组统计
- 页面之间的数据传递
- iOS设备中垂直同步开启后的帧率计数
- Next Permutation-leetcode下一个排列组合
- 图论-C语言-foundation(2)