gstreamer插件编写指南:编写解复用器和解析器
解复用器是需要特别注意的 1 对 N 元件。它们负责将未经解析的原始数据打上时间戳,转换成基本的视频或音频流。这里将提到几个罪魁祸首,并提供常见的解决方案。解析器是只有一个源衬底的解多路复用器。此外,它们只会将数据流切割成缓冲区,而不会接触其他数据。
如前文“能力集协商”中所述,解复用器应使用固定能力集,因为其数据类型不会改变。
正如“不同的调度模式”中所讨论的,解复用器元件可以用多种方式写入:
它们可以运行自己的任务,成为流水线的驱动力。这对于需要随机访问的元素(例如 AVI 解多路复用器)尤其有效。
它们还能以推送模式运行,即由上游元素驱动流水线。这对于可能来自网络的数据流(如 Ogg)尤其有效。
此外,理论上也可以编写随机存取模式的音频解析器。虽然如果您的元素只接受一种模式,简单的回放大多可以正常工作,但可能需要实现多种模式才能与编辑等各种应用程序结合使用。此外,如果采用多种模式,性能可能会更好。请参阅“不同的调度模式”,了解元素如何接受多种调度模式。
本文由作者按照 CC BY 4.0 进行授权