Short-cutting the pipeline
Basic tutorial 8展示了应用程序如何通过使用两个特殊元素appsrc
和appsink
来手动提取或注入数据到管道中。playbin
也允许使用这些元素,但是连接它们的方法是不同的。要将appsink
连接到playbin
,请参阅Playback tutorial 7:自定义playbin sinks
。
如何将appsrc与playbin连接起来
要将appsrc
用作管道的source
,只需实例化一个playbin
并将其URI
设置为appsrc://
。
playbin
将创建一个内部的appsrc
元素,并触发source-setup
信号,以允许应用程序对其进行配置。
如何配置appsrc
特别重要的是设置appsrc
的caps
属性,因为一旦信号处理程序返回,playbin
将根据这些caps
实例化管道中的下一个元素。
appsrc
的配置与Basic tutorial 8:中完全相同:caps
被设置为audio/x-raw
,并注册了两个回调函数,以便元素可以在需要时告诉应用程序何时开始和停止推送数据。有关更多详细信息,请参阅Basic tutorial 8。
从此刻开始,playbin
会处理管道的其余部分,应用程序只需要在被告知时生成更多的数据。
要了解如何使用appsink
元素从playbin
中提取数据,请参阅Playback tutorial 7。
函数与知识点
-
source_setup_callback (GstElement * playbin, GstElement *source, gpointer udata)
功能:此信号在source
元素被创建后发出,因此可以通过设置其他属性来对其进行配置此信号通常是从GStreamer流媒体线程的上下文中发出的。