gstreamer-0.10打印管道字符串

时间:2016-09-01 09:08:45

标签: c++ gstreamer gstreamer-0.10

我想打印出gstreamer-0.10元素的管道。怎么办呢?

外部开发人员为我们编写的代码:

static GstElement* jpgPipeline  = NULL;
pipedef = g_strdup_printf("appsrc name=jpgsrc ! ffmpegcolorspace %s %s %s %s %s  ! ffmpegcolorspace ! jpegenc quality=%i ! multifilesink name=jpgsink location=\"image.jpg\"",cropStr, scaleStr, sharpenStr,vbStr,gammaStr,quality);
jpgPipeline = gst_parse_launch (pipedef, &error);
bus = gst_pipeline_get_bus(GST_PIPELINE(jpgPipeline));
gst_element_set_state (jpgPipeline, GST_STATE_PLAYING);

我试图通过以下方式查看管道:

g_print(gst_element_info(jpgPipeline));

但是当我尝试编译它时会收到很多警告。

main.c:331:2: warning: implicit declaration of function ‘gst_element_info’ [-Wimplicit-function-declaration]
  g_print(gst_element_info(jpgPipeline));
  ^
main.c:331:2: warning: passing argument 1 of ‘g_print’ makes pointer from integer without a cast [enabled by default]
In file included from /usr/include/glib-2.0/glib.h:62:0,
                 from /usr/include/gstreamer-0.10/gst/gst.h:27,
                 from main.c:5:
/usr/include/glib-2.0/glib/gmessages.h:265:17: note: expected ‘const gchar *’ but argument is of type ‘int’
 void            g_print                 (const gchar    *format,
                 ^
main.c:331:2: warning: format not a string literal and no format arguments [-Wformat-security]
  g_print(gst_element_info(jpgPipeline));
main.c:(.text.startup+0x651): undefined reference to `gst_element_info'

1 个答案:

答案 0 :(得分:2)

第1和最重要:请使用1.0,现在已经过时了0.10。

gst_element_info不存在AFAIK。你期望将什么作为关于管道的字符串打印出来?它中的元素?您想如何表示链接?

使用点表示可能会更好。在此处找到了一些说明:https://developer.ridgerun.com/wiki/index.php/How_to_generate_a_Gstreamer_pipeline_diagram_%28graph%29https://www.freedesktop.org/software/gstreamer-sdk/data/docs/latest/gstreamer-0.10/gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE:CAPS