Gstreamer调度模式的分析http://www./a/201007/9825.html Gstreamer 的调度模式是 gstreamer 内核中比较重要,但是又较为复杂的部分(呵呵,好象是废话,但是又不得不说的)。简单地说, Gstreamer 的调度模式就是:一种确定一个 element 何时被调用 为它的同伴 element 处理和准备数据的方法。是不是觉得上面的话太简单又太复杂了啊?继续看。 一. Gstreamer 的三种调度模式 [1] Push/Push mode 数据由上游的 element 推过来,由当前的 element 接收处理后,再推给下游的 element
。我们可以看出,这种模式中,当前的 element 必须等待上游的 element 把数据推过来,才可以做下一步的操作。因此,当前的
element 不是数据调度的发起者,它对数据的处理,仅仅能够影响下游的 element 。并且在这个模式中,当前的 element
不能控制上游的 element 的任何行为(当然,你可以从当前的 element 发 event 给上游的 element ,如果上游的
element 有相应的处理操作的话,会激发一个动作发生)。 如
下图:数据由当前的element从上游的element处拉过来,加工处理后,被下游的element拉走。在这个模式里面,当前的element也必
须提供相应的接口函数给下游的element调用;当前的element不是调用的发起者,它只是调用的一个传递者;当然,当前的element可以调用
上游的element提供的相应接口。
|
|