給新人交接vlc的**,順便記下來。
1.vlc的**結構
compat:跨平台的函式
src/control:外部介面
src:呼叫邏輯
modules:外掛程式
前文提到過,vlc用c語言實現了多型。這裡具體說一說。
1.1外掛程式的匯出函式
以modules/access/fs.c為例
巨集vlc_module_begin,巨集vlc_module_end匯出函式vlc_entry__filesystem( module_t *p_module )
巨集set_callbacks( open, close )設定 module->pf_activate, module->pf_deactivate。
巨集set_capability,設定外掛程式的能力。可以用於訪問的"access",解復用的「demux」,解碼的「decoder」
1.2src/modules/modules.c
遍歷plugins下的所有動態庫,將這些module_t 放入module_bank。
1.3使用外掛程式
src/input/access.c
p_access->p_module = module_need( p_access, "access", psz_access, true );
遍歷module_bank,找到有"access"能力,而且可以處理檔案的外掛程式。
呼叫外掛程式的 module->pf_activate,呼叫下面的**,將access_t的成員函式指標指向modules/access/fs.c檔案中的函式,這就是「c語言實現多型」的全過程。
p_access->pf_write = write;
p_access->pf_read = read;
p_access->pf_seek = seek;
p_access->pf_control = control;
2.執行緒結構
a input執行緒
b decoder執行緒
c video_output執行緒
d 視窗訊息迴圈執行緒
ab,bc之間使用資料佇列聯絡,典型的消費/生產模型。
VLC目錄結構介紹
0.起因 vlc最近出了2.0版本,決定今年深入掌握之,從分析 開始,以此為備忘。1.概述 vlc多 框架的優點是 1.系統更加緊湊 高效 2.跨平台支援好,特別是桌面平台 包括windows mac 3.編譯系統完善,很容易可以構造出支援windows,linux的版本 4.社群活躍,長期技術更新...
vlc的應用之二 vlc的ActiveX及cab
2009 05 14補充 8.activex的解除安裝 9.讓vlc自動安裝activex 10.關於vlc的activex的說明。vlc自帶了activex控制項 axvlc.dll,在編譯完vlc之後的activex資料夾下。activex是個好東西,axvlc.dll可以隨意放到任何位置,成功...
VLC強大的地方。
最近比較忙,忙來忙去也不知道幹了些什麼 下面是我對這東西的個人理解,寫下來免得以後糊塗了,也歡迎有興趣的朋友來交流 關於 vlc 這東西很 nb 嗯 它可以 由於採用了plugin 的編解碼器,它是能夠擴充套件的。可以方便的獲取輸入流 並且輸出。甚至用 screen 你可以把你的螢幕當成輸入。vlc...