接收数据:OnPacketReceived->ViENetworkImpl::ReceivedRTPPacket()->ViEChannel::ReceivedRTPPacket()->ViEReceiver::ReceivedRTPPacket()->ViEReceiver::InsertRTPPacket()->ModuleRtpRtcpImpl::IncomingRtpPacket()->RTPReceiver::IncomingRTPPacket()->RTPReceiverVideo::ParseRtpPacket()->RTPReceiverVideo::ParseVideoCodecSpecific()->RTPReceiverVideo::ParseVideoCodecSpecificSwitch()->RTPReceiverVideo::ReceiveVp8Codec()->ViEReceiver::OnReceivedPayloadData()->VideoCodingModuleImpl::IncomingPacket()->VCMReceiver::InsertPacket()->VCMJitterBuffer::InsertPacket()->VCMFrameBuffer::InsertPacket()
ViEChannel::StartReceive()->ViEChannel::StartDecodeThread()->开线程ViEChannel::ChannelDecodeThreadFunction()ViEChannel::ChannelDecodeProcess()->VideoCodingModuleImpl::Decode()->VCMReceiver::FrameForDecoding()->Decode(*frame);
PS:此图参考牛人博客:http://blog.csdn.net/fanshengchong/article/details/11195903 衷心感谢!
总之就是:
rtp数据:parsedPacket.info.VP8.data
放入抖动缓冲区:jitter_buffer
解码后的缓冲区:frame buffer,
然后丢给VideoRenderModule去渲染!