DirectShow関係4(クラスライブラリ)

1.機能


◎DirectShowインターフェース

現在利用可能なDirectShowのインターフェースを下記に示します。

IGraphBuilder, IFilterGraph, IMediaControl, IMediaPosition, IVideoWindow,

IBasicVideo2, IBasicAudio, IMediaEvent, IMediaEventEx, IMediaSeeking,

ICaptureGraphBuilder2, IFileSinkFilter, IAMCopyCaptureFileProgress, IAMVideoProcAmp,

IBaseFilter, IPersist, IMediaFilter, IEnumFilters, IAMStreamConfig,

IAMStreamSelect, IMediaSample, IPin, IEnumPins, IReferenceClock,

ISampleGrabber, ISampleGrabberCB, IVMRMixerBitmap9, IVMRMixerControl9

IStreamBufferSink,IStreamBufferSource,IStreamBufferMediaSeeking,
また、DirectShowのインターフェースではありませんが、
下記のインターフェースも定義されています。
EnumSTATSTG, IStorage, IPersist, IPersistStream, 

ISpecifyPropertyPages, ICreateDevEnum, IPropertyBag

インターフェースは、基本的にCでの名称と同じにしています。
使い方も同じですので、引数の意味などはC用のDirectShowマニュアルを参照して下さい。


◎ユーティリティ

ユーティリティモジュールは下記の機能を提供します。

汎用関数
CoCreateInstance COMオブジェクトのインスタンスを作成します。
ReleaseInstance COMオブジェクトのインスタンスをを解放します。
PtrToStructure アンマネージ領域からデータをコピーします。
デバッグ関係
DebugPrint グラフの内容をコンソールに出力します。
SaveGraphFile グラフをGRFファイルに保存します。
LoadGraphFile GRFファイルからグラフを読込ます。
例外関係
GetDirectShowMessage 戻り値等からDirectShow関連のエラーメッセージを取得します。
DirectShowException DirectShow関連の例外クラスです。
グラフ構築関係
CreateNewGraph 新しい空のグラフを生成します。
CreateFilter 名称やCLSIDなどを指定しフィルタのインスタンスを生成します。
AddFilter 名称やCLSIDなどを指定しグラフにフィルタを追加します。
グラフ操作関係
GraphPlay グラフを再生させます。
GraphStop グラフを停止させます。
GraphPause グラフを一時停止させます。
PlayLoopStart 再生中のグラフをループ再生させます。
PlayLoopStop ループ再生を終了させます。
情報取得関係
EnumFilters カテゴリを指定しフィルタを列挙します。
EnumPins フィルタのピンを列挙します。
FindPin 条件にあうピンを検索します。
FindInterface グラフ内のフィルタから指定されたインターフェースを検索します。
GetFilterName フィルタの名称を取得します。
GetPinName ピンの名称を取得します。
GetVideoSize 映像サイズを取得します。
GetGraphState グラフ状態を取得します。
フォーマット関係
EnumFormat ピンがサポートしているフォーマットを列挙します。
GetFormatCount ピンがサポートしているフォーマットの個数を取得します。
GetFormat 現在のフォーマットを取得します。
SetFormat 使用するフォーマットを設定します。
列挙用アルゴリズム
EnumFiltersAlgorithm フィルタ列挙のアルゴリズムを提供します。
EnumPinsAlgorithm ピン列挙のアルゴリズムを提供します。
EnumFormatAlgorithm フォーマット列挙のアルゴリズムを提供します。
プロパティページ関係
OpenDiaglog フィルタ又はピンのプロパティページを表示します。
メディアタイプ関係
DeleteMediaType メディアタイプの領域を解放します。
CompGUIDString GUID文字列同士の比較お行います。
NormalizeGUIDString GUID文字列を一般的な形式に整えます。
GetMediaTypeName メディアタイプのGUID文字列からわかりやすい名称を取得します。
ビデオレンダラ関係
SetVideoRendererOwner 指定されたウィンドウ/コントロール内で動画再生されるようにします。
SetVideoRendererEventOwner レンダラでのマウス操作を指定されたウィンドウ/コントロールで
イベントとして認識できるようにします。
サンプルグラバ関連
FrameCapture カメラ又は動画ファイルから、
静止画データを取り込む機能を提供するクラスです。
カメラ選択
SelectCameraDialog カメラをユーザに選択させるダイアログです。

 


概要の所でも触れましたが、あえて「関数」という形で提供しています。
DirectShowのサポート範囲は結構広く様々な操作があって(私にとっては)複雑すぎるため、
全てをサポートできるようなクラスは私には作れません。
誰か作ってください(^^;;;

このクラスライブラリはDirectSHowの全ての機能を提供する訳ではないです。
っていうか、その一割にも満たないでしょう。

足りない機能があったらリクエストしてください。
(すぐには追加できない可能性がありますが^^;)

 


上に戻る