SetSyncSource和SetSyncPoint的区别

2025-04-12 01:36:27
推荐回答(1个)
回答1:

SetSyncSource是给filter graph设置参考时钟。一般来说,每个filter graph都会有一个参考时钟,即使你不设的话,系统也会自动选择一个(选择声卡上的参考时钟或者系统时钟)。一个filter graph只有有了一个有效的参考时钟,音视频才能真正的同步。

SetSyncPoint这个接口函数是在sample上调用的,表明当前这个sample是个同步点,比如包含mpeg格式的sample,那sync point的sample应该是包含GOP的那个sample,如果后续的filter丢了数据,那么可以从sync point的这个sample开始重新开始正常的解码/播放流程。而对于sample中已经是非压缩格式的数据,一个sample饱含了一帧数据,这种情况下每个sample都是sync point。

SetSyncSource是系统级别的,而SetSyncPoint在sample这个具体级别的