特定の生ファイルを読み取るための directshow ソース フィルターを作成しています。生ファイルには、各フレームにタイムスタンプ (utc 時間) が含まれています。
私のフィルターは、Microsoft SDK の「Push Source Filters Sample」から変更されているため、最も重要なことは、GetMediaType()、DecideBufferSize()、および FillBuffer() を上書きすることです。
私の質問は、FillBuffer(IMediaSample *pSample) にあります。この関数で pSample->SetTime() を正しく呼び出す方法がわかりません。タイムスタンプが大きな数字から始まるため、フレームは StreamTime がタイムスタンプに達するまで待機します。
この問題は、各フレームのオフセットを減算することで解決できますが、下流のフィルター (SampleGrabber) で元のタイムスタンプが必要です。
より良い解決策はありますか?