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

發表于:2007-07-01來源:作者:點擊數: 標簽:
DirectShow應用程序設計介紹 這篇文章包含兩方面內容:Filter Graphs , 寫一個DShow應用程序 一、 Filter Graphs DShow的基本軟構件塊是一種叫做filter的組件。A Filter一般只執行基于多媒體數據上的單一的操作。例如,有一些DShow Filter有如下功能: 1、
 

DirectShow應用程序設計介紹

這篇文章包含兩方面內容: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。

                   圖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和響應事件。

 


原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97