0

DirectShowソースフィルターを作成しました。ソースフィルターのアウトピンはffdshowビデオデコーダーフィルターに接続されています。

手動で接続するため、 GraphEditでは非常にうまく機能します。

今、私はそれをWindowsMediaPlayerで動作させるようにしようとしています。問題はデコーダーフィルターに関するものです。

ソースフィルターでデコーダーフィルターを「 ffdshowVideoDecoder」に制限するにはどうすればよいですか?CheckMediaTypeから?「 ffdshowVideoDecoder」は、 OutPinに接続できる唯一のフィルターであり、WMPで自動的に接続することもできます。このデコーダーフィルターがインストールされていない場合、グラフは機能しません。

助けてくれてありがとう。12時間後に戻って答えを確認します:)

4

1 に答える 1

2

出力ピンクラスのオーバーライドIPin::Connectメソッド。そこにあなたがIPin接続しているピンのインターフェースがあります。これをffdshowビデオデコーダーの入力ピンにしたいので、そこで実行しIPin::QueryPinInfoてピンのフィルターを取得します。そこであなたは、あなたが知っていて期待しているものIBaseFilter::GetClassIDと得られたものを比較します。CLSID不一致で失敗を返します。

これは、必要なフィルターにのみ接続する方法でした。もう1つのことは、アプリケーションが必要なフィルターを試していない可能性があることです。この場合IStreamBuilder、出力ピンに接続するためのフィルターを提案するように実装する必要があります。

于 2012-08-26T14:29:25.593 に答える