2016-03-25 53 views
2

我正在研究VLC源代碼,以瞭解VLC究竟在哪裏將解碼幀寫入屏幕。我基本上對qt ui版本以及windows和linux平臺感興趣。Vlc視頻架構

我已經追溯到avcodec_decode_video2,直到它使用vout_PutPicturepicture_fifo_Push將幀寫入隊列。另一方面,我看到有一個Thread對象調用ThreadDisplayRenderPicture,該對象又調用vout_display_Display,它調用Display。我期待這個最後的功能是視頻幀的字節實際上被複制到幀緩衝區,但它所做的只是設置大小,然後釋放圖片。

有人可以向我解釋一下,或者指向一個資源嗎?VLC在哪裏寫入隊列中的picture_t結構到WId結構,從而有效地將幀寫入屏幕?任何關於VLC視頻架構更全面解釋的鏈接都會很棒!

回答

4

我不能直接回答你的問題,但爲你提供一個VLC體系結構的全面解釋的參考。 (如您在最後一句中所述)

克拉根福大學的Christophe Massiot撰寫了關於VLC媒體播放器API文檔的論文。你可以在谷歌here和google學者here上找到它。

它包含以下插圖,可能會引導您朝着正確的方向前進。

VLC Architecture

我認爲該文件可以證明是有用的,以你的問題。看看描述視頻輸出層的第5章

+1

非常感謝Michael!那就是我一直在尋找的!這太糟糕了,我沒有名譽來接受你的答案,因爲你肯定指出我需要的材料。再次感謝。 – user3846684

+0

@ user3846684很高興我可以幫忙;請再次嘗試接受答案,對於接受答案應該沒有聲望最低限度(請參閱:http://meta.stackexchange.com/q/5234),僅用於提供答案。謝謝! –