我正在编写一个directshow源过滤器来读取特定的原始文件,原始文件在每一帧中都包含时间戳(utc时间)
我的过滤器是从微软SDK的“Push Source Filters Sample”修改而来的,所以最重要的是覆盖GetMediaType()、DecideBufferSize()和FillBuffer()。
我的问题在 FillBuffer(IMediaSample *pSample) 中。我不知道如何在这个函数中正确调用 pSample->SetTime() ,因为时间戳从一个很大的数字开始,帧会一直等到 StreamTime 到达时间戳。
该问题可以通过在每一帧上减去一个偏移量来解决,但我需要下游过滤器中的原始时间戳(SampleGrabber)
有更好的解决方案吗?