3

GraphEdit で次のグラフを作成しました: Logitech Webcam -> Infinite Tee Pin Filter -> VideoRenderer。これは問題なく動作します (GraphEdit は、TEe フィルターと VideoRenderer フィルターの間にいくつかの中間フィルターを自動的に挿入します)。

コードで同じことを試みましたが、Tee フィルターを VideoRenderer に接続しようとすると失敗します。最初に Web カメラを T フィルターに接続すると動作します (Web カメラがオンになり、S_OK が表示されます)。次に、T フィルターから 1 つの出力ピンを最初のフィルターに接続しようとしましたが、失敗しました (エラーは、それが可能であるということです)。それらを接続するための一連の中間フィルターが見つかりません)。同じ効果で、IGraphBuilder::Connect と ICaptureGraphBuilder2::RenderStream の両方にそれらを接続しようとしました。ピンを列挙するには、hr = _CaptureGraphBuilder.FindPin(theFilter, PinDirection.Input, null, null, true, 0, out thePin); を使用します。ビデオ レンダラーの場合、Tee フィルターの PinDirection.Output を除いて同じです (これは C# にありますが、コンストラクトは C++ に正確にマップされます)。

何か案は?

4

1 に答える 1

2

問題が見つかりました。どうやら、Webcam フィルターは、グラフが開始されるまで出力メディア タイプを正しく更新しません。したがって、グラフを開始し、すべてが完了したらグラフを再開すると、うまくいきました。

于 2008-12-29T05:34:58.000 に答える