DirectShow関係
5.フィルタグラフ操作用DLL
ActiveMovie controlだけではDirectShowのほんの一部の機能しか使うことができません。
で、あると便利な機能を詰め込んだDLLを作成致しました。
いくつかの機能を追加しました。(2004/7/30) Ver1.40
フォーマット形式を取得/設定するオブジェクト(AMStreamConfigのラッパ)を追加しました。(2005/4/13)
Ver1.50
これを使うと以下のようなことがVBから行えます。
grfファイルの読み書き
GraphEditで作れるgrfファイルを読み込んでグラフを生成したりgrfファイルに出力できます。
DirectX8のヘルプにはRenderFileメソッドでGRFファイルが読み込めるみたいなことが書いてありますが、
実際には読み込めません。Microsoftのサイトでもできないと書いてあります。
(確か英語でどっかにあったと思います^^;)
あとgrfファイルは「デバッグ用に使用するように」とヘルプに書いてありますので覚えておきましょう(^^;
ROTへの登録と削除
ROTにグラフを登録すると、実行中のプログラムで作成したグラフの内容を
GraphEditで確認することができるようになります。
GraphEditの「File」-「Connect to Remote Graph」でフィルタの内容を確認できます。
CLSIDでのフィルタ追加
CLSID文字列でフィルタを指定して、グラフにフィルタを追加します。
CLSIDがわかっていればフィルタを列挙せずに直接目的のフィルタをグラフに追加できます。
フィルタの列挙
レジストリに登録されているフィルタをカテゴリ別に列挙できます。
列挙したフィルタの名称とCLSIDを取得できるので
上のフィルタ追加機能と組み合わせれば
目的の種類(コーディックフィルタとかキャプチャフィルタとか)を
選択して追加することができます。
プロパティページの表示
フィルタやピンのプロパティページを表示します。
これによりカメラの設定(解像度や画質等)をユーザに変更させることが出来ます。
サンプルグラバフィルタラッパ
サンプルグラバフィルタをVBから使うためのオブジェクトです。
これを使うことにより比較的環境に依存しないで
(Windows2000な環境でも)静止画を取得することができます。
静止画だけでなく音声の波形なども取得可能です。
AMStreamConfigラッパ
AMStreamConfigをVBから使いやすいようにラッパするオブジェクトです。
ピンのフォーマット形式を取得/設定することができます。
(これによりカメラの出力サイズ等を選択できます)
使い方は同封のテキストとサンプルを見てください。(^^;
なお、下記でダウンロードできるアーカイブにはDLLの全ソース(VC++6.0用)も含まれます。
これらは自由に使用/再配布/流用して頂いてかまいません。
改造の有無を問わず当方への連絡など不要で、
流用したもののソースを公開する義務とかもありません。
(いわゆるGPLではありません。
また改造して公開する場合はGUIDとファイル名とかを変更してもらうと助かります。
ココのものとかぶっちゃうので^^;)
ダウンロード Ver1.50A
ダウンロード Ver1.40C
(念のため旧バージョンもアップしておきます)