案例
连续读取文件并提供给appsrc 元素。来源-appsrc
我有一个处于播放状态的 GStreamer 管道。现在,当我按下一个意味着应该清除 appsrc 队列的按钮时,我希望管道能够刷新/清理。播放应该从现在添加到/或在刷新后添加的任何缓冲区开始。
发出
我使用的 API 返回 false。我无法冲洗。
fprintf(stderr, "The flush event start was <%d>",gst_element_send_event(GST_ELEMENT (pipe), gst_event_new_flush_start());
fprintf(stderr, "The flush event stop was <%d>",gst_element_send_event(GST_ELEMENT (pipe), gst_event_new_flush_stop()));
以上均返回 0。这意味着错误。这个假的原因是什么?
如何尝试使用某些 API 刷新管道中的数据?或者是否有任何其他 API 可以跳过播放?
试过了
- 发送
gst_event_new_flush_start ()
和发送gst_event_new_flush_stop ()
到管道,有或没有几毫秒的间隙 gst_event_new_seek (1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH, GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_SET, 0);
- 将管道设置为 NULL 然后再次播放
所有这些都行不通。