在gstreamer管道上动态更改udpsrc

时间:2015-07-15 03:17:49

标签: gstreamer

参考http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-dynamic-pipelines.html,我试图在gstreamer管道上更改udpsrc。 但有些事情是错误的,管道状态在更改udp源后无法更改为PLAYING。

下面是更改udpsrc的顺序。 原始管道箱包含......

udpsrc - queue - tsdemux - queue - parser - videodecoder - queue videosink

  1. 首先,阻止udpsrc的src pad
  2. 将eos事件发送到队列(udpsrc旁边)
  3. 等到公交车收到eos消息。
  4. 设置udpsrc的状态为NULL,并从管道bin中删除udpsrc。(取消链接)
  5. 使用新的源uri创建新的udpsrc。
  6. 链接到队列
  7. 将状态更改为PLAYING。
  8. 这个序列有什么错误吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您不需要通过管道发送EOS。这具有发信号通知流的结束的效果,并且在大多数情况下可以从中恢复,对于这种情况,不需要它。

动态更改管道时通过元素发送EOS的方案是具有sink和src pad的元素,以便排出可能卡在内部的任何数据。