c - GStreamer GstVideoTestSrcPattern 枚举 - 它在哪里?

标签 c gstreamer-1.0

我正在尝试为我的 videotestsrc 设置“模式”:

#include <gst/gst.h>

GstElement *pipeline, *source, *sink;
...
source = gst_element_factory_make("videotestsrc", "source");
g_object_set(source, "pattern", GST_VIDEO_TEST_SRC_BALL, NULL);

编译,我得到:

error: ‘GST_VIDEO_TEST_SRC_BALL’ undeclared (first use in this function)

我需要包含什么 header 才能声明 GstVideoTestSrcPattern 枚举?我四处搜寻了一下,找不到它。

最佳答案

GstVideoTestSrcPattern 枚举在 gst-plugins-base 中的 gst/videotestsrc/gstvideotestsrc.h header 中定义。这是一个不会以任何方式公开的 header (因为这意味着 GstVideoTestSrc 结构将成为公共(public) API/ABI 的一部分)。因此,您不能使用实际的枚举符号。

要解决这个问题,您可以使用相应的整数值(在本例中为 18)。如果您实际上使用 gst-launch-1.0 或其 C 等价物 gst_parse_launch() 来设置属性,您实际上可以使用 videotestsrc pattern=ball,它也可以工作。

(注意:您甚至可以在 gst_value_deserialize() 的帮助下自己实现上述类型的字符串反序列化,但它仍然需要您输入未检查的字符串在编译时)

最后,如果您不确定枚举的各种值是什么,可以使用 gst-inspect-1.0 videotestsrc 作为备忘单。

关于c - GStreamer GstVideoTestSrcPattern 枚举 - 它在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54234998/

相关文章:

gstreamer - 如何将数据从文件发送到 gstreamer 中的 webrtcbin 元素?

c++ - 在 rpi4 中使用 openCV 的 gstreamer

c - 如何在C中定义gstreamer中videoparse元素的 "framerate"属性

gstreamer - 使用 GStreamer Pipeline 创建 onvif 合规性相机

python - 如何为 python 包 bintrees 安装 C 函数?

android - 如何在 Android 上使用 framebuffer 进行绘图?

c - 在二叉树中插入一个节点 - 将迭代转换为递归

linux - gstreamer 保存的 .avi 视频在视频播放器中播放速度过快

c - 为什么要限制与套接字交互的 C 标准 I/O 流?

c - 无法将 linux 程序的输出存储到文件中