1

現在、ユーザーが TV キャプチャ カードを構成するのに役立つ DirectShow アプリケーションを開発しています。この構成は、後で別のプログラムで使用されます。

ICaptureGraphBuilder2::RenderStreamメソッドを使用して、ビデオとオーディオの両方をレンダリングします。グラフのソースは、ユーザーが選択したデバイスによって異なりますが、これはほとんどWDM ビデオ キャプチャ フィルターカテゴリのデバイスです。

これが私の問題です。一部のデバイスは、ソース フィルター以上のものを必要とするため、機能しません。たとえば、オーディオ用に別のフィルターを備えた Web カメラがあります。別の例として、独自の Encoder/Mux を持つ TV チューナー カードがあります。

私のアプリケーションはほとんどのキャプチャ デバイスで動作するはずですが、ソース フィルタの横に、グラフが動作するために必要な追加のフィルタがあるかどうかを検出する一般的な方法はありますか?

すべてのフィルターを列挙して、それらの名前が互いに似ているかどうかを確認できましたが、名前は信頼できません...

4

1 に答える 1

0

フレームワークとしての DirectShow は、基本的に柔軟な DIY フィルター セットです。それらの散在するセットがあり、それら(一部)も分類されています。カテゴリを列挙すると、含まれる機能セットに関していくつかの仮定を立てることができます。

特に、ビデオとオーディオ (およびその他のメディア タイプ) のソース間に直接的な対応はありません。できることは、ユーザーにデバイス (アプリ構成の一部など) を選択するように促し、それらが関連していると想定し、該当する場合は同期されたコンテンツを送信することです。

もう 1 つの一般的なタスクはクロスバーの接続です。これは、TV チューナーでの作業に関心があるかもしれません。Capture Graph Builder オブジェクトには、このためのヘルパーがあり、それを活用できます。ICaptureGraphBuilder2::FindInterfaceの「Supporting Filters」のコメントを参照してください。

于 2012-11-18T12:18:57.463 に答える