1

私はDirectShowを初めて使用し、これが可能かどうか疑問に思っています(解決策を見つけるための追加のヘルプもいいでしょうが、これが追求する価値があるかどうかについてもっと心配しています)。

私はC++でDirectShowソースフィルターを作成しており、FillBuffer呼び出しがC#アプリケーションに渡されるように設計しています。私の理解では、C#アプリケーションはDirectShowフィルターをロードし(DirectShowNetライブラリを使用する予定です)、ヘルパーメソッドを含む作成したインターフェイスを要求する必要があります(FillBuffer関数を指定してメディアソースを構成するため)。これは、 DirectShowNetサイトのGSSFの例と非常によく似ています。

ただし、あるアプリケーションにフィルターをロードすることで、別のアプリケーションでフィルターを使用できなくなるのではないか、またはフィルターを別のアプリケーションにロードした場合に、フィルターの構成に加えた変更が反映されないのではないかと思います。

私が言ったように、私はCOMやDirectShowにそれほど慣れていません。

4

1 に答える 1

1

アプリケーションで DirectShow フィルターを使用するということは、このアプリケーションでグラフを作成することを意味します。2 つのアプリケーションを使用すると、それぞれ独自のフィルター インスタンスを持つ 2 つのグラフが作成されます。

1 つのグラフを複数のアプリケーションで使用できるかどうかはわかりません。ツール GraphBuilder は既存のグラフに接続できますが、これはもともとデバッグの目的で実装されたものであり、グラフの共有のためではありません。

構成を共有したいだけで、2 つのフィルター インスタンスを使用できる場合は、共有構成 (レジストリ、シリアル化されたデータなど) を実装し、各フィルターに構成の変更をポーリングさせることができます。

于 2012-04-22T17:13:24.153 に答える