我正在研究 VLC 源代码,以了解 VLC 将解码帧写入屏幕的确切位置。我基本上对qt ui版本以及windows和linux平台感兴趣。
我一直在跟踪,avcodec_decode_video2
直到它使用vout_PutPicture
and将帧写入队列picture_fifo_Push
。在另一端,我看到有一个Thread
对象调用ThreadDisplayRenderPicture
,然后调用vout_display_Display
,再调用Display
。我希望最后一个函数是将视频帧的字节实际复制到帧缓冲区的函数,但它所做的只是设置大小,然后释放图片。
有人可以向我解释一下,或者指向一个资源,VLCpicture_t
究竟在哪里将队列中的结构写入 WId 结构,有效地将帧写入屏幕?任何指向 VLC 视频架构更全面解释的链接也很棒!