首页 > 解决方案 > 在 gstreamer 中删除缓冲区

问题描述

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

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

标签: gstreamergstreamer-1.0python-gstreamer

解决方案


尝试将 GstProbe 用于数据缓冲区并返回GST_PAD_PROBE_DROPGST_PAD_PROBE_HANDLED满足您的条件。

GstBaseTransform如果你transform_frame_ip的插件是基于transform_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 

推荐阅读