2016-09-14 18 views
0

カスタムDSレンダリングフィルタを作成しようとしています。 SDKで提供されているサンプルフィルタ、つまり「ダンプ」から始めました。私は正常にDUMP.DLLと関連ファイルを構築することができますが、私はどのように私のアプリでそれを使用するかを把握することはできません。DirectShowサンプルフィルタ:使用方法

IFilterMapper2-> RegisterFilterのように見えますが、(IMHO)それは怪物であり、ドキュメントはミニマリストです。また、DLLをInProcServerとして指定する場所はどこにもありませんが、これは必要と思われます。

私もregsvr32 DUMP.DLLを試しましたが、それが役立つかどうかはわかりません。

私は答えが単純でなければならないと信じていますが、私はそれを見ません。どんな助けにも大いに感謝されます。特にコードスニペット(学術的な談話はあまり役に立ちません)。また、最良の解決策は、ストレートC++(サードパーティのパッケージや.NETのもの)でなければなりません。事前に

感謝、
- ジョン

答えて

2

フィルタはスタンドアロンで使用されていない - 彼らは、パイプラインの一部である、彼らは他のフィルタにとフィルタグラフマネージャと通信します。

フィルタは実際にIFilterMapper2::RegisterFilterコールで登録されています。これは、HKLMの下でレジストリを書き込むため、ローカル管理者の昇格された権限で登録が行われなければならないことに注意してください。

ほとんどの場合、このように正確に行う必要はありませんが、この登録は、regsvr32または同等の呼び出しによって行われる汎用COM登録の一部です。 DLL登録コードは、公開するフィルタに対して通常IFilterMapper2::RegisterFilterを実行します。

ダンプサンプルでは、​​同じファイル内にあるg_Templatesの助けを借りて、それを処理するthere is a AMovieDllRegisterServer2 callがあります。

フィルタを登録すると、アプリケーションによって列挙できます。最初に試してみたいのは、SDK GraphEditツールまたはそれより新しい、より強力なオープンソースの置き換えGraphStudioNextです。

はCtrl +Fあなたがあなたを見つけて、対話的に構築されてフィルタグラフに挿入することができ、フィルタのリストを開きます。次に、他のフィルターを接続して実行します。

MSDNのを参照してください。

+0

はい、私は理解していますが、私の質問はどのように正確に "フィルタを登録する"のですか?(それをグラフにAddFilterに使用します)? – DontPanic

+0

@DontPanic:私は上記を更新しました。 –

+0

素晴らしい!ちょうど私が必要なもの。 – DontPanic

関連する問題