GStreamer的调试子系统
是获取应用程序正在执行操作信息的简单方法。它不适用于编程错误,使用GLib方法(g_warning等)。仅在GStreamer初始化调用gst_init后才能工作,调试子系统用于在应用程序运行时记录信息性消息。每条消息都附加了一些属性。这些属性包括调试类别,严重性(此处称为“级别”)和它所属的可选GObject。这些消息中的每一个都被发送到所有已注册的调试处理程序,然后处理这些消息。GStreamer在启动时附加一个默认处理程序,它将请求的消息输出到stderr。
GStreamer插件日志
开发人员可能想要做的唯一事情是定义他自己的类别,在代码的顶部,声明变量并设置默认类别。
GST_DEBUG_CATEGORY_STATIC (my_category); // define category (statically)
#define GST_CAT_DEFAULT my_category // set as default
之后,您只需要初始化类别。
GST_DEBUG_CATEGORY_INIT (my_category, "my category",0, "This is my very own");
必须在首先使用类别之前完成初始化。插件在他们的plugin_init函数中执行此操作,库和应用程序应在初始化期间执行此操作。
可以在构建时禁用整个调试子系统,并将--disable-gst-debug开关传递给configure。如果这样做,则此文件中描述的每个函数,宏甚至结构都会评估为默认值或根本不评估任何值。所以不要采用这些功能的地址或使用其他技巧。如果由于某种原因必须这样做,仍然有一个选择。如果编译出调试子系统,则在<gst / gst.h>中定义GST_DISABLE_GST_DEBUG,因此您可以在执行操作之前检查它。禁用调试子系统将使您略微(读取:不明显)速度增加,并将减少已编译代码的大小。GStreamer库本身变小了约10%。使用GST_DEBUG_CATEGORY_INIT初始化后,其值不能再更改。
GStreamer设置日志文件及回调函数
GStreamer使用的默认日志记录处理程序。只要使用GST_DEBUG或类似的宏,就会调用记录函数。默认情况下,此功能设置为将消息和附加信息输出到通过user_data接收的stderr(或通过GST_DEBUG_FILE环境变量指定的日志文件) 。您可以使用gst_debug_add_log_function添加其他处理程序。您可以通过调用gst_debug_remove_log_function(gst_debug_log_default)来删除此处理程序;
回调函数:
日志格式: