EasyDarwin RTSPRequest请求的相关代码分析
在之前的博文中提到了RTSPSession中建立RTSPRequest和RTPSession以完成进一步的视频流构建,本文主要分钟其中RTSPRequest请求的相关代码。
RTSPRequest作为RTSP请求保存视频流请求信息如请求方法,开始时间,结束时间,播放速度,传输方式等。
RTSPRequest的构建是在RTSPSession的Run方法中。
具体位置在状态机case kHaveNonTunnelMessage
构建的是RTSPRequest的父类RTSPRequestInterface。
在RTSPRequestInterface构造函数中对各变量进行初始化,并将相关变量存入字典。
在状态机case FilteringRequest状态中调用SetupRequest()方法去解析RTSP请求和获取RTPSession。
在SetupRequest()中首先对RTSPRequest进行解析,为fRequest进行初始化相关变量。
主要是解析两个方面,一个解析是请求的首行,另一个是解析请求头。
解析完成,返回上一层,对解析出的请求信息进行处理。
主要是对请求方法的处理,包括3个请求方法。
- OPTION
- SET_PARAMETER
- DESCRIBE
处理代码如下
OPTIONS
SET_PARAMETER
DESCRIBE