VLCがデコードされたフレームを画面に正確に書き込む場所を理解するために、VLCソースコードを研究しています。私は基本的に qt ui バージョンと、Windows および Linux プラットフォームに興味があります。
と を使用しavcodec_decode_video2
てフレームをキューに書き込むところまでトレースするところまで来ました。反対側には、 を呼び出し、次に を呼び出し、さらに を呼び出すオブジェクトがあることがわかります。この最後の関数は、ビデオ フレームのバイトが実際にフレーム バッファーにコピーされる関数であると予想していましたが、サイズを設定して画像を解放するだけです。vout_PutPicture
picture_fifo_Push
Thread
ThreadDisplayRenderPicture
vout_display_Display
Display
誰かが私に説明したり、VLCがpicture_t
キューに座っている構造をWId構造に正確に書き込んで、フレームを画面に効果的に書き込んだりするリソースを教えてもらえますか? VLC のビデオ アーキテクチャのより完全な説明へのリンクも素晴らしいでしょう!