DSPACK コンポーネント ライブラリを使用して Delphi 6 で記述され、Windows XP で実行される DirectShow アプリケーションがあります。フィルタ グラフの上部には、オーディオ キャプチャ フィルタがあります。キャプチャ フィルターは私の VOIP 電話に割り当てられており、ストリームのすぐ下にサンプル グラバー フィルターがあります。サンプル グラバー フィルターのコールバック メソッドで、同じタイムスタンプ (SampleTime) を持つサンプル グラバー フィルターから連続して 2 つのメディア サンプルを取得するたびに報告するコードを追加しました。その状態は非常に頻繁に発生し、時にはほぼ毎回発生します。キャプチャ フィルタのバッファ サイズは 100 ミリ秒で、サンプル レートは 8000 kHz です。ロジックは、同じサンプル時間で 2 つのサンプル配信を取得してはならず、常に 100 ミリ秒近く離れている必要があることを教えてくれます。しかし、それは起こっていることではありません。
DirectShow キャプチャ フィルタが同じサンプル時間で 2 つの連続したメディア サンプルを送信することはどういう意味ですか? 前のサンプル時間と同じサンプル時間の 2 番目のサンプル配信を無視する必要がありますか? または、対処する必要がある別の問題がありますか?
私は、入ってくるサンプル時間を制御できないことに注意してください。それらはキャプチャ フィルタによって生成されています。