DirectShow元件原理分析及應用

2021-08-25 10:45:39 字數 1240 閱讀 3258

)的形式存在,它是建立在二進位制規範上的物件。com定義並實現了軟部件(如應用程式、資料物件、控制項及服務)機制,並把他們統稱為"物件"。每個軟部件物件由資料以及訪問資料的函式組成,訪問軟部件物件資料的函式集合稱為"介面"。在應用程式看來com是乙個黑箱,可呼叫com提供的方法但不知道它的具體實現。在使用directshow程式設計時,使用者建立的自定義元件必須以com形式實現,所以必須知道如何實現com,而一般的應用程式只需要了解com的介面和用法

// get the inte***ce for directshow's graphbuilder

cocreateinstance(clsid_filtergraph, null, clsctx_inproc_server,

iid_igraphbuilder, (void **)&pgb);

// queryinte***ce for directshow inte***ces

pgb->queryinte***ce(iid_imediacontrol, (void **)&pmc);

pgb->queryinte***ce(iid_imediaeventex, (void **)&pme);

pgb->queryinte***ce(iid_imediaseeking, (void **)&pms);

pgb->queryinte***ce(iid_imediaposition, (void **)&pmp);

// query for video inte***ces, which may not be relevant for audio files

pgb->queryinte***ce(iid_ivideowindow, (void **)&pvw);

pgb->queryinte***ce(iid_ibasicvideo, (void **)&pbv);

// query for audio inte***ces, which may not be relevant for video-only files

pgb->queryinte***ce(iid_ibasicaudio, (void **)&pba);

3.3 建立過濾器圖表

應用directshow建立過濾器圖表時,使用者完全不需要操心系統使用了哪一類過濾器以及過濾器是怎樣連線的。只要呼叫igraphbuilder::renderfile函式,就可以建成乙個完整的過濾器圖表。

// run the graph to play the media file

pmc->run();

DirectShow元件原理分析及應用

directshow inte ces igraphbuilder pgb null imediacontrol pmc null imediaeventex pme null ivideowindow pvw null ibasicaudio pba null ibasicvideo pbv nu...

react元件渲染原理

jsx 經過babel編譯成react.createelement的表示式。element在react裡,是組成虛擬dom 樹的節點,用來描述在瀏覽器上看到什麼。它的引數有三個 1 type 標籤 2 attributes 標籤屬性,沒有的話,可以為null 3 children 標籤的子節點 e....

函式式元件原理

前一篇文章分析了函式式元件用法 這篇文章從原始碼的角度看看函式式元件,看看它怎麼是無狀態的,以及怎麼沒有例項的。我們就用之前文章的例子來進行分析。要渲染的元件如下 list view comp 就是函式式元件 在options裡面定義了functional屬性為true id和list data是傳...