私はカスタム オーディオ ミキサー フィルター (ソースを持っています) のバグに取り組んでおり、いくつかの入力ソースをシークした後に入力オーディオ ストリームが同期していないように見えます (これらのソースはありません)。 1 つ以上の入力が接続されています。
タイムスタンプなどを探した後は正しく見えますが、ストリーム内の実際のデータはタイムスタンプと同期していません。
オーディオ ミキサーには、IMediaSeeking::SetPositions 呼び出しを各入力ピンに渡すカスタム IMediaSeeking 実装があります。これは正しいアプローチのようです。複数のソース フィルターがある場合は、SetPosition 呼び出しを各ソースに渡す必要があります。その場合、ソース フィルターは、そのピンの 1 つだけでのシークのみを実装する必要があります (MSDN に記載されています)。
IMediaPosition もサポートするように、CPosPassThru からパススルー実装を継承する方がよいでしょうか? 一部のフィルターは、IMediaSeeking ではなく IMediaPosition 呼び出しを使用しているようです。
複数の入力ピンへのシーク呼び出しを渡すためにマルチプレクサ フィルタが行う必要がある特定のことはありますか。良い例のソースコードはありますか? マルチプレクサ フィルタの作成に関するモノグラム ブログでは、シークについては触れていないようです。