SampleGrabber フィルターが何らかの処理を行っている DirectShow グラフがあります。処理には最大 50 ミリ秒かかるため、多くの場合、再生速度が遅くなります。加工のON/OFFが可能です。
私の問題は、処理がしばらくオンになっている場合、オフにすると、ビデオが特定のポイントに達するまでできるだけ速く再生されることです。おそらく、この時点でフレーム時間がストリーム時間と一致し、ラグがなくなります。
処理をオフにすると再生が通常の速度になるように、これを防ぐにはどうすればよいですか? データの処理中にストリーム クロックをオフにすることはできますか? それとも、SampleGrabber フィルターから出てくるサンプルに再びタイムスタンプを付けて、余分なラグを追加するのでしょうか?
これを行う適切な方法を知っている人はいますか?
編集:
以下の回答に示すように、サンプル時間を変更する方法を使用しましたが、サンプルのタイムスタンプのシークと計算に問題がありました。
独自の基準クロックを実装し、処理に時間がかかりすぎる場合はクロックを停止する方がよい方法を見つけました。