DirectShow應用程式設計介紹(翻譯) (轉)

amyz發表於2007-11-10
DirectShow應用程式設計介紹(翻譯) (轉)[@more@] 

DirectShow應用設計介紹:namespace prefix = o ns = "urn:schemas--com::office" />

這篇文章包含兩方面內容:Filter Graphs , 寫一個DShow應用程式

一、  Filter Graphs

DShow的基本軟構件塊是一種叫做filter的。A Filter一般只基於多資料上的單一的操作。例如,有一些DShow Filter有如下功能:

1、  讀

2、  從影片採集卡上獲取影片

3、  為某一種流格式的資料解碼,比如 MPEG—1

4、  傳送資料到 the graphics(螢幕的畫面) 或音效卡

 

Filters接收輸入(多媒體資料),生成輸出(多媒體資料)。例,假如a filter解碼MPEG-1影片資料,則輸入就是MPEG編碼流,輸出就是解碼後的RGB影片流(原始影片流)。

為了執行給定的任務,應用程式往往需要連線多個filters。一系列連線的filters叫做a filter graph。圖1—1顯示了一個AVI檔案的a filter graph。

ectratio="t" v:ext="edit">   圖1—1

在a filter graph裡,你的應用程式不需要管理單獨的filters。取而代之的是,DShow提供了一個叫the Filter Graph Manager的上層元件(簡化了filters的管理)。The Filter Graph Manager控制了透過the graph的資料流動。

另外,the Filter Graph Manager簡化了a filter graph的建立過程。例如,你可以指定一個檔名,然後the Filter Graph Manager將會生成a graph去播放檔案。

二、寫一個DShow應用程式

一個典型的DShow應用程式會執行如圖2—1所示三個基本步驟。

 

 

 

 

    圖2—1

1、  建立the Filter Graph Manager的一個例項。使用CoCreateInstance

2、  用the Filter Graph Manager生成a filter graph。(當然可以用其他元件)

3、  操作the filter graph和響應事件。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-981630/,如需轉載,請註明出處,否則將追究法律責任。

相關文章