sdp文本的解析流程和生成sdp文本的过程基本是相反的,也就是从sdp文本生成sdp类关系图的过程;
sdp文本的解析的触发是在WebRTC调用peerconnection的setRemoteSDP或者setLocalSdp的时候;
触发流程
- 1 SetRemoteSdp的时候的触发流程如下:
- 2 SetLocalSdp的时候的触发流程如下:
通过上述的两个图可以看出,不管是那种方式触发的sdp文本解析流程这里最终都是调用到webrtc::SdpDeserialize
方法;
源码分析
从上文分析可知webrtc::SdpDeserialize
方法是解析文本的重要方法,和生成sdp文本std::string SdpSerialize(const JsepSessionDescription& jdesc)
的方法是对应的方法;
同std::string SdpSerialize(const JsepSessionDescription& jdesc)函数的分析方式,这里按照顺序解析重要的函数:
- 函数的开始是初始化sdp类关系中的一些类和需要的变量如下: