0

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

当 DirectShow 捕获过滤器向您发送 2 个具有相同采样时间的连续媒体样本时,这意味着什么?我应该忽略与前一个样品时间相同的第二个样品交付吗?还是在某个地方我需要解决另一个问题?

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

4

1 回答 1

0

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

于 2011-12-03T18:09:15.893 回答