以下的文章是我在學習DirectShow的過程中翻譯自DirectX 9 SDK的幫助文檔,希望對大家瞭解和編寫自己的filter等組件時有所幫助。翻譯文檔的內容我會陸續發到網上。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. DirectShow基礎類庫概述Microsoft® DirectShow®基礎類庫是一系列的C++類和實用函數的集合,這些使用函數的設計的目的是爲了實現DirectShow的filter。對應用程序開發人員來說,某些幫助類也是非常有用的。
本篇文章描述了這個基礎類庫,包含了以下一些部分:
如果你想使用Microsoft® DirectShow®基礎類庫,你必須生成和鏈接基礎類庫的庫文件,這些庫文件位於:
(SDK 根目錄)\Samples\C++\DirectShow\BaseClasses
DirectShow的基礎類庫的工作空間的名字叫做BaseClasses.dsw。這個工程生成了兩個版本的庫文件,一個零售版本——Strmbase.lib,一個調式版本的庫文件——Strmbasd.lib。在你的自己的工程裏面,如果你想使用基本類庫,你必須包含Streams.h這個頭文件。你的應用程序既可以鏈接Strmbase.lib or to Strmbasd.lib,這取決於你生成的程序的版本,即你是生成一個零售版本還是一個調試版本。
下面這個表格總結了你需要的文件:
當你在你的工程中包含了Streams.h這個頭文件,下面的與處理符號就有了特殊的意義:
這篇文文章描述了Microsoft DirectShow基本類庫,這個庫是爲filter開發人員設計的,但是應用程序開發人員可能會找到一些有幫助的類文件,或者調試應用程序時有些幫助。但是基本庫類並不是DirectShow程序必須的。
下面的章節概述了大多數最重要的基本類:
3.1. COM 對象庫下面的這些類用來支持COM對象的創建:
大多數的DirectShow類派生於CBaseObject。這個類提供了一個在在Dll文件中的活動對象計數器,在運行時的調試幫助。在調試版本中,如果DLL沒有被加載,但是對象計數器大於0,則被斷言失敗。這樣就可以很容易的追蹤由引用計數引起的內存泄露問題。
所有的這些基本類支持從CUnknown 中派生出來的COM接口,CUnknown派生於CBaseObject。CUnknown類支持引用計數、QueryInterface、聚合。
下面的這些類支持DirectShow filter和pin對象的創建:
下面的這些類在創建專門的filter有一些幫助:
要使用這些類,你必須要派生你自己的類,然後在你自己的類裏面編寫代碼來實現filter裏面的功能。越專業的基類,你要在你自己的派生類裏面要書寫的代碼就越少。
下面的這些類實現了一些用在filter和pin中的輔助對象。這些類中的大多數無需從中派生,可以直接使用。
|
DirectShow基礎類庫開發參考文檔
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.