0

Directshow SampleGrabber をコールバック モードで使用して、ソース ファイルからビデオ フレームをキャプチャし、何らかの処理を行っています。また、ビデオの現在の再生速度を維持したいと考えており、ランダム、フォワード、バックワード シークの両方をサポートする必要があります。このために、別のスレッドでローカルバッファリングも行っています。最大速度を得るために、syn ソースを NULL に設定してグラフを実行しています。ただし、一定量のバッファリング後にグラフを一時停止すると。グラフが一時停止している場合でも、SampleGrabber コールバックが誤って呼び出されます。これは、フレームのインデックス作成と追跡に影響を与えています。一時停止したのと同じ位置からグラフを再開したい。ただし、デフォルトのクロックでグラフを実行すると問題なく動作しますが、再生に影響があります。バッファリングスレッドをできるだけ早く終了させたい。グラフが一時停止しているときにコールバックが呼び出されないようにするにはどうすればよいですか? どんな考えや提案も大いに役立ちます。

前もってありがとう

4

1 に答える 1

0

一時停止されたグラフは、通常、レンダラーがストリーミングをブロックしているという例外を除いて、すべて同じストリーミングを内部 (アクティブな状態) に持っています。プレビュー バナーに十分なデータが受信され次第。グラフからクロックを削除したため、レンダラーは一時停止するクロックを保持しないため、実行をブロックしない可能性があります。あなたの場合、これは、ファイルと再生をすばやく解析するために同じグラフを再利用するという意図から生じる問題です。個別のグラフ設計は、より良い結果をもたらす可能性が高いように見えます。

于 2013-02-19T07:40:06.050 に答える