为什么我从具有相同采样时间的DirectShow捕获过滤器获得连续的媒体样本



我有一个用Delphi 6编写的DirectShow应用程序,使用DSPACK组件库并在Windows XP上运行。在我的过滤器图的顶部是一个音频捕获过滤器。捕获过滤器被分配给我的VOIP电话,并有一个采样采集器过滤器立即下游。在样本采集器过滤器的回调方法中,我添加了代码,以便在从具有相同时间戳(SampleTime的)的样本采集器过滤器获得一行中的两个媒体样本时进行报告。这种情况经常发生,有时几乎每次都发生。注意,捕获过滤器的缓冲区大小为100毫秒,采样率为8000 kHz。逻辑告诉我,我不应该得到两次采样时间相同的样本交付,它们之间的间隔应该总是非常接近100毫秒。但事实并非如此。

当DirectShow捕获过滤器向您发送具有相同采样时间的2个连续媒体样本时,这意味着什么?我是否应该忽略第二次寄出的样品时间与上一次相同?还是有别的问题需要我解决?

注意,我无法控制进入我的样本时间。它们是由捕获过滤器生成的。

真正的错误是我在计算时间戳时犯的错误。捕获过滤器不负责。我会投票关闭我的帖子,除非有一个有价值的评论,它的实用程序称为DumpMediaSample(见评论部分到我的原始帖子)。

相关内容

最新更新