RTSP Server(LIVE555)源码分析(二)-服务器创建
一、 设置RTSP服务器配置
步骤1.5:rtspServer_Init--->BasicTaskScheduler::createNew()时序图如下:
1)步骤1.54,BasicTaskScheduler0构造函数中创建HandleSet对象,通过HandlerSet* fHandlers来管理
HandlerDescriptor对象即管理RTSP客户端socket一些回调处理事件。BasicTaskScheduler0构造函数代码如下:
2)步骤1.55,schedulerTickTask中调用scheduleDelayedTask虚函数,实际上最后会调度到父类
BasicTaskScheduler0::scheduleDelayedTask(),在该函数中new AlarmHandler(proc, clientData, timeToDelay),
然后存于fDelayQueue延时队列(实际是个双链表实现)中,这时候就和之前我们说的AlarmHandler事件处理类联系起
来了。scheduleDelayedTask构造实现如下:
步骤1.6:rtspServer_Init---> BasicUsageEnvironment::createNew(*s_rtspServerObj.Scheduler)时序图如下:
步骤1.7:rtspServer_Init--->rtspServer_TskMain--->ourDynamicRTSPServer::createNew(...)时序图如下:
rtspServer_TskMain线程创建:
3)步骤1.77,new ourDynamicRTSPServer时序图如下:
对⑤中,incomingConnectionHandlerRTSP时序图如下: