我正在编写Gstreamer应用程序并尝试捕获警告消息以进行日志记录。是的我知道Gstreamer有自己的记录器,但我需要的是一个C代码,它可以在不依赖任何bash命令的情况下捕获常规消息。我可以正确捕获流末尾(EOS),错误和STATE_CHANGED消息,但我无法捕获警告消息。从Gstreamer's site获取的示例错误消息捕获代码如下所示。
case GST_MESSAGE_ERROR: {
gchar *debug;
GError *error;
gst_message_parse_error (msg, &error, &debug);
g_printerr ("***ERROR*** from element %s: %s\n", GST_OBJECT_NAME (msg->src), error->message);
g_printerr ("***Debugging*** info: %s\n", (debug) ? debug : "none");
g_error_free (error);
g_free (debug);
rc = 201;
g_main_loop_quit (loop);
break;
}
还有一个gst_message_parse_warning
函数,我尝试使用以下代码片段来捕获警告消息但不幸的是它无法正常工作,到目前为止我无法在互联网上找到任何内容。我真的可以使用一些帮助。
case GST_MESSAGE_WARNING: {
gchar *debug;
GError *error;
gst_message_parse_warning (msg, &error, &debug);
g_printerr ("***WARNING*** from element %s: %s", GST_OBJECT_NAME (msg->src), error->message);
g_printerr ("***Debugging*** info: %s", (debug) ? debug : "none");
g_error_free (error);
g_free (debug);
break;
}