ビデオ形式でフレームをキャプチャする DirectShow ビデオ レンダラーを作成しましたVIDEOINFOHEADER2
(これは、組み込みのグラバーでは不可能です)。CBaseVideoRenderer
このクラスは、必要な基本メソッドから派生し、実装します。CheckMediaType
とSetMediaType
が呼び出されOnStartStreaming
ます。ただしDoRenderSample
、ストリームはすぐに終了するため、呼び出されることはありません。興味深いことに、オーディオは DirectSound レンダラーによってグラフにレンダリングされます。つまり、データがあります。
私のグラフには「ライブ ソース」、つまり BDA DVB-S があることを付け加えておきます。レンダラーの代わりに EVR を追加すると、すべてが機能します。つまり、サウンドとビデオが再生されます。
ここで何が問題なのですか?レンダラーがライブ ソースからデータを受信するための特別な要件はありますか?
更新 1: GraphEdit でグラフを実行すると、サウンドも再生されますが、エラー メッセージが表示されることを追加する必要があります (レンダラーのみで、EVR ではありません):「グラフは状態を変更できませんでした。少なくとも 1 つの操作に関与するピンは既に接続されています。(リターン コード: 0x80040204)」これは問題の一部だと思いますが、残念ながらそれが何を意味するのか、コードで何を変更すればよいのかわかりません。
更新 2:要求に応じて、私のグラフの ROT エントリ (クリックして拡大):