WebRtc Native M96 远端视频接收之-VideoReceiveStream2中FrameBuffer原理(6)

在这里插入图片描述

经过一系列的操作,最终完整的frame回到RtpVideoStreamReceiver2::OnCompleteFrames中。
并且,通过complete_frame_callback_->OnCompleteFrame(std::move(frame));回调到VideoReceiveStream2类中。

这时候,就需要frame_buffer_出场了!!!

std::unique_ptr<video_coding::FrameBuffer> frame_buffer_;

当组帧完成,参考关系完整后,帧放到FrameBuffer中,就可以等待解码器来临幸了。这里是两个线程在操作,一个线程处理完参考关系后,将帧插入到FrameBuffer;一个线程取帧来解码播放。

DecodingQueue线程:

frame_buffer_->NextFrame

IncomingVideoStream线程:

config_.renderer->OnFrame(video_frame);

......

sink_->OnFrame(frame);

FrameBuffer::InsertFrame

int64_t FrameBuffer::InsertFrame(std::unique_ptr<EncodedFrame> frame) {
  TRACE

猜你喜欢

转载自blog.csdn.net/wangshubo1989/article/details/123514211
今日推荐