gstreamer - 在 gstreamer 中删除缓冲区
问题描述
我正在开发一个 gstreamer 应用程序(插件),它从视频流中接收,分析每个缓冲区的特定条件,然后如果存在该条件,则将缓冲区传递给插件源。如果给定缓冲区的条件不存在,则应删除该缓冲区,并且插件源不应接收此缓冲区。
作为 gstreamer 的新手,在浏览 gstreamer 文档和教程时,我找不到让我的插件“删除”缓冲区的方法。
解决方案
尝试将 GstProbe 用于数据缓冲区并返回GST_PAD_PROBE_DROP
或GST_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
推荐阅读
- javascript - 这里的变量 a 如何具有本地范围及其始终返回的窗口对象(通过 this 关键字指向)
- react-native - 你能从 goBack 制作 navigation.goBack 到一些路线吗?
- provisioning - 如何在 ttyUSB0 以外的端口上进行配置?
- c# - 重复为 httpruntime.cache 赋值是不是很糟糕?
- praat - Shimmer 函数不会在 textgrid 间隔上运行,但 jitter 函数可以正常工作吗?
- excel - 宏突然禁用
- java - 如何在 Java 中更新 JSON 数组
- javascript - 您如何使用异步调用解决 IndexedDb Transaction
- javascript - 如何调用jquery函数?
- python - 尝试启动 jupyter notebook 时出现 WinError 10055