我正在尝试为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)
要声明GstVideoTestSrcPattern
枚举,我需要包括什么头?我已经摸了一下,找不到了。
答案 0 :(得分:0)
GstVideoTestSrcPattern
枚举在gst-plugins-base的 gst / videotestsrc / gstvideotestsrc.h 标头中定义。这是一个不会以任何方式公开的标头(因为这意味着GstVideoTestSrc结构将成为公共API / ABI的一部分)。因此,您不能使用实际的枚举符号。
要解决此问题,可以使用相应的整数值(在这种情况下为18)。如果您实际上是使用gst-launch-1.0
或与它等效的C语言gst_parse_launch()
设置属性,则可以实际使用videotestsrc pattern=ball
,这也将起作用。
(注意:您甚至可以在gst_value_deserialize()
的帮助下自己实现上述类型的字符串反序列化,但仍然需要您输入在编译时未检查的字符串)
最后,如果不确定枚举的各种值是什么,则可以使用gst-inspect-1.0 videotestsrc
作为备忘单。