有专门的类去管理sdp信息(SDPSourceInfo)。
在ReflectorSession类由ReflectorStream来管理一个rtsp的所有流(音视频流),因此需要通过sdp信息来创建每一路流,ReflectorSession类内部使用了SDPSourceInfo类。
1.ReflectorSession与SDPSourceInfo是如何关联到一起的?
对于推流模式:在DoAnnounce时,客户端会将sdp信息发送到服务器,服务器以map的形式将其保存(map<rtspName,sdp>)。在setup时,在FindOrCreateSession中会创建ReflectorSession和SDPSourceInfo,将两者关联。
2.SDPSourceInfo如何解析sdp信息?
void SDPSourceInfo::Parse(char* sdpData, UInt32 sdpLen)将传入的sdp信息分类存储 。
利用StringParser解析每一行
遍历sdp信息以m开头的行,查找出有几路流。如此就确定了流的个数。
每一路流的信息存放在StreamInfo结构体中。
本文介绍ReflectorSession类如何与SDPSourceInfo类关联管理RTSP流,并解析SDP信息确定音视频流数量及配置。了解SDPSourceInfo如何通过StringParser解析sdp数据,以及如何创建和管理每个流。
8824

被折叠的 条评论
为什么被折叠?



