RTP模块
RTP相关的模块主要是RtpRtcp(ModuleRtpRtcpImpl),恕我直言,webrtc里面rtp模块调用关系很复杂,绕来饶去,看的很头疼,可能是为了所谓的接口简洁吧
RtpRtcp是一个纯虚类,具体实现的实现是ModuleRtpRtcpImpl,提供了一大堆接口
可以这么说,反正和rtp扯上一点关系的,都在ModuleRtpRtcpImpl里,它包含了下面的模块:
- 1、RTPSender,rtp发送
- 2、RTCPSender,rtcp发送
- 3、RTCPReceiver,rtcp接收
- 4、注意RTPReceiver,rtp的接收不是在这里
- 5、RemoteBitrateEstimator,远端带宽估计
发送侧的rtp、rtcp入口是:ModuleRtpRtcpImpl::SendOutgoingData、ModuleRtpRtcpImpl::IncomingRtcpPacket
- 1、如果发送RTP数据,那么调用RTPSender
- 2、如果发送RTCP数据,那么调用RTCPSender
- 3、如果收到RTCP数据,那么调用RTCPReceiver