gstreamer - 在 gstreamer 中删除缓冲区

标签 gstreamer gstreamer-1.0 python-gstreamer

我正在开发一个 gstreamer 应用程序(插件),它从视频流中接收,分析每个缓冲区的特定条件,然后如果存在该条件,则将缓冲区传递到插件源。如果给定缓冲区不存在该条件,则应删除该缓冲区,并且插件源不应接收该缓冲区。

作为 gstreamer 的新手,在查看 gstreamer 文档和教程后,我找不到让我的插件“删除”缓冲区的方法。

最佳答案

尝试使用 GstProbe 作为数据缓冲区,并在满足您的条件时返回 GST_PAD_PROBE_DROPGST_PAD_PROBE_HANDLED

如果您的插件基于 GstBaseTransform,您应该实现自己的 transform_frame_iptransform_frame。如果是这样,您可以返回GST_BASE_TRANSFORM_FLOW_DROPPED:

/**
 * GST_BASE_TRANSFORM_FLOW_DROPPED:
 *
 * A #GstFlowReturn that can be returned from transform and transform_ip to
 * indicate that no output buffer was generated.
 */
#define GST_BASE_TRANSFORM_FLOW_DROPPED   GST_FLOW_CUSTOM_SUCCESS 

关于gstreamer - 在 gstreamer 中删除缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65171901/

相关文章:

Gobject 的概念以及我们如何在 gstreamer 应用程序开发中使用它

linux - 有没有 gstreamer 插件可以扩展视频流?

c - 如何在 C 程序中使用 Gstreamer 在视频中动态添加和删除字幕

c++ - gstreamer-1.0 从 GstAppSink 中的 GstSample 获取数据

GStreamer:管道在 gst-launch-1.0 命令中工作,但在 C++ 代码中不工作

android - GStreamer 通过 HTTPS 视频流传输 RTSP

c - 用于将 rtspsrc 的名称元素与音频和视频队列链接的 Gstreamer 应用程序

python - 使用 GStreamer 和 GNonLin 的视频过渡不起作用

gstreamer - gstreamer 的 python 绑定(bind) : how to import typelib

python - Gstreamer 编辑服务。播放真实的视频文件。 GESAsset 元素(从 Python 翻译为 C)