一、函数调用关系
Thread::PreRun
-->ProcessMessages
-->Dispatch
-->Thread::QueuedTaskHandler::OnMessage
-->BaseChannel::SetRemoteContent
-->VoiceChannel::SetRemoteContent_w
1)ProcessMessages
2)Dispatch

3) Thread::QueuedTaskHandler::OnMessage

4) BaseChannel::SetRemoteContent

5)VoiceChannel::SetRemoteContent_w

----video.streams通过MediaContentDescription获取,MediaContentDescription通过sdp获取
->BaseChannel::UpdateRemoteStreams_w
->WebRtcVideoChannel::AddRecvStream
1)BaseChannel::UpdateRemoteStreams_w
2)WebRtcVideoChannel::AddRecvStream

-----调用ConfigureReceiverRtp配置远端ssrc
WebRtcVideoChannel::WebRtcVideoReceiveStream::WebRtcVideoReceiveStream
WebRtcVideoChannel::WebRtcVideoReceiveStream::RecreateWebRtcVideoStream
webrtc::VideoReceiveStream* Call::CreateVideoReceiveStream

----将远端ssrc,emplace到receive_rtp_config_,后续收包时做合法性判断。、
1)internal::VideoReceiveStream2::VideoReceiveStream2

2)RtpVideoStreamReceiver2::RtpVideoStreamReceiver2
----生效远端ssrc
二、具体函数实现
- CreateTracksFromSsrcInfos解析sdp命令行,构造StreamParams参数

- ConfigureReceiverRtp配置远端ssrc

- Call::CreateVideoReceiveStream,将远端ssrc,emplace到receive_rtp_config_

- DeliveryStatus Call::DeliverRtp对收到报文的ssrc进行合法性判断

- RtpVideoStreamReceiver2::RtpVideoStreamReceiver2函数生效远端ssrc

- RtpVideoStreamReceiver2::RtpVideoStreamReceiver2函数生效远端ssrc


接收RTCP报文时,使用该值做合法性判断

SDP命令行
参考:webrtc代码走读二(视频数据处理流程)_EveryDayOneHour的博客-优快云博客
SDP有SSRC的协商 :

本文详细解析了WebRTC中处理视频流的过程,从Thread的执行到函数调用,包括ProcessMessages、Dispatch、BaseChannel和VoiceChannel的相关函数。重点介绍了SSRC(同步源)的设置、配置及在接收RTP包时的合法性检查。在创建和更新接收流时,通过SDP协商获取SSRC,并在接收RTCP报文时使用SSRC进行校验。整个过程涉及WebRtcVideoChannel和ReceiveStream的创建及内部机制。
481

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



