GStreamer GstVideoTestSrcPattern枚举-它在哪里?

时间:2019-01-17 11:31:07

标签: 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)

要声明GstVideoTestSrcPattern枚举,我需要包括什么头?我已经摸了一下,找不到了。

1 个答案:

答案 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作为备忘单。