首页 > 编程语言 >RTSP Server(LIVE555)源码分析(二)-服务器创建

RTSP Server(LIVE555)源码分析(二)-服务器创建

时间:2023-02-13 15:12:51浏览次数:113  
标签:LIVE555 rtspServer 步骤 RTSP 时序 源码 创建 如下

一、 设置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线程创建:

1)步骤1.71,RTSPServer被创建 ourDynamicRTSPServer::createNew(*env, authDB, xxx, eventCB, xxx, xxx),传入 几个重要参数,如:RtspScc_CfgInfo,包含音视频配置信息,eventCB参数即rtspServer_EventCallback 回调接口, authDB参数即UserAuthenticationDatabase等。 2)步骤1.73,ourDynamicRTSPServer::createNew(xxx)中调用setUpOurSocket接口,实际会被调度到 RTSPServer::setUpOurSocket(xxx)中,在步骤1.75中调用setupStreamSocket进行socket创建、bind等操作。然后在 步骤1.76中修改socket发送缓冲区(50x1024)大小,接着进行socket监听(listen),默认监听大小为20个。源码实现如下:

  

3)步骤1.77,new ourDynamicRTSPServer时序图如下:

 

 对⑤中,incomingConnectionHandlerRTSP时序图如下:

 

4)步骤1.81,s_rtspServerObj.rtspServer->InitResource,fVidSrcBuf[RTSP_SERVER_MAX_STREAM]数组初始化。 5)步骤1.82,s_rtspServerObj.rtspServer->setUpTunnelingOverHTTP(8000),创建8000端口HTTP服务,和       RTSPServer创建类似,不做详细分析。 6)步骤1.83,s_rtspServerObj.rtspServer->setUpTunnelingOverHTTP(8080),创建8088端口HTTP服务,和       RTSPServer创建类似,不做详细分析。 7)步骤1.84,env->taskScheduler().doEventLoop(),主进程循环处理RTSP客户端socket连接。doEventLoop()时序       图如下:

  

标签:LIVE555,rtspServer,步骤,RTSP,时序,源码,创建,如下
From: https://www.cnblogs.com/shu-jie/p/17116457.html

相关文章