2

我正在使用自定义音频混合器过滤器(我有源)处理一个错误,其中输入音频流在使用某些输入源(我没有这些源)进行任何搜索后似乎不同步,当更多多于一个输入连接。

在寻找时间戳等之后看起来是正确的,但流中的实际数据与时间戳不同步。

音频混合器有一个自定义的 IMediaSeeking 实现,它将 IMediaSeeking::SetPositions 调用传递给每个输入引脚。这似乎是正确的方法。如果有多个源过滤器,则需要将 SetPosition 调用传递给每个源。然后由源过滤器仅在其一个引脚上实现搜索(如 MSDN 中所述)。

从 CPosPassThru 继承传递实现以便它也支持 IMediaPosition 会更好吗?一些过滤器似乎使用 IMediaPosition 调用而不是 IMediaSeeking。

复用器过滤器是否需要做任何特定的事情才能将寻求调用传递给多个输入引脚。有什么好的示例源代码吗?关于编写复用器过滤器的 Monogram 博客似乎没有涵盖搜索。

4

1 回答 1

1

为了未来读者的利益,以下似乎工作正常。同步错误在别处。

音频混合器有一个自定义的 IMediaSeeking 实现,它将 IMediaSeeking::SetPositions 调用传递给每个输入引脚。

如果有多个源过滤器,则需要将 SetPosition 调用传递给每个源。然后由源过滤器仅在其一个引脚上实现搜索(如 MSDN 中所述)。

似乎没有必要向上游转发 IMediaPosition。

于 2013-03-08T12:11:34.433 回答