想看下peerconnection客户端例子的视频传输部分,就调试看了视频显示部分,分为两个部分:本地显示和显示远端视频。
peerconnection客户端渲染对端视频:在modulesvideo_renderincoming_video_stream.cc文件中的IncomingVideoStreamProcess线程函数会去从其成员变量VideoRenderFrames& render_buffers_;中读取视频帧渲染。
video_enginevie_channel.cc文件中的ChannelDecodeProcess线程函数通过video_codingmainsourcevideo_receiver.cc中的成员变量VCMReceiver _receiver;接收数据帧解码添加到渲染线程中读取的缓存render_buffers_;中。
数据接收的线程会调用video_codingmainsourcevideo_receiver.cc文件中的VideoReceiver::IncomingPacket函数将接收到的数据存入到VCMReceiver _receiver;供解码线程读取解码。接收对端编码的视频帧数据流程如下:
发送编码的视频帧数据到对端的流程如下: