WebRTC代码走读(五):视频接受流程

来源:互联网 发布:ctr csm数据区别 编辑:程序博客网 时间:2024/06/09 11:54

转载注明出处http://blog.csdn.net/wanghorse

收到视频包UdpSocketManagerPosixImpl::Run    UdpSocketManagerPosixImpl::Process        UdpSocketPosix::HasIncoming(recvfrom)            UdpTransportImpl::IncomingRTPCallback                UdpTransportImpl::IncomingRTPFunction                           VideoChannelTransport::IncomingRTPPacket                        ViENetworkImpl::ReceivedRTPPacket                            ViEChannel::ReceivedRTPPacket                                ViEReceiver::ReceivedRTPPacket                                    ViEReceiver::InsertRTPPacket                                        如果配置了抓包, 可以RtpDumpImpl::DumpPacket                                        RtpHeaderParserImpl::Parse                                            RtpHeaderParser::Parse                                        ViEReceiver::ReceivePacket                                            RtpReceiverImpl::IncomingRtpPacket                                                ssrc、payroad等检查                                                RTPReceiverVideo::ParseRtpPacket                                                    ViEReceiver::OnReceivedPayloadData                                                        VideoCodingModuleImpl::IncomingPacket                                                            VideoReceiver::IncomingPacket                                                                VCMReceiver::InsertPacket                                                                    VCMJitterBuffer::InsertPacket                                                                        VCMJitterBuffer::GetFrame, 完整frame/未完整frame/空frame                                                                    VCMFrameBuffer::InsertPacket, 组桢                                                                    如果完成, 插入可解码桢队列(decodable_frames_)ViEChannel::ChannelDecodeProcess    VideoCodingModuleImpl::Decode                                       VideoReceiver::Decode            VCMReceiver::FrameForDecoding                VCMJitterBuffer::NextCompleteTimestamp,还未到render时间, 则等待                VCMJitterBuffer::ExtractAndSetDecode, 取frame            如果需要,抓图片?()            VideoReceiver::Decode                VCMGenericDecoder::Decode                    VP8DecoderImpl::Decodedecode完成(VP8是同步的, 直接在Decode中调用)    VCMDecodedFrameCallback::Decoded                    ViEChannel::FrameToRender            图片预处理            ViEFrameProviderBase::DeliverFrame                ViERenderer::DeliverFrame                    IncomingVideoStream::RenderFrame, 复制frame,放入队列IncomingVideoStream::IncomingVideoStreamThreadFun    IncomingVideoStream::IncomingVideoStreamProcess                         AndroidNativeOpenGl2Channel::RenderFrame, 复制frameVideoRenderAndroid::JavaRenderThreadProcess         AndroidNativeOpenGl2Channel::DeliverFrame               调用JAVA层函数            AndroidNativeOpenGl2Channel::DrawNativeStatic                VideoRenderOpenGles20::Render
0 0
原创粉丝点击