原文出处: http://blog.sina.com.cn/s/blog_5cf930300100ia75.html
一、GStreamer的五个打印调试信息的函数:
GST_LOG () ==>>5
GST_DEBUG () ==>>4
GST_INFO () ==>>3
GST_WARNING () ==>>2
GST_ERROR () ==>>1
现摘录《GStreamer Plugin Writer's Guide》中23.2节中Debugging 的第一句话:
Elements should never use their standard output for debugging (using functions such as printf () or g_print ()).
永远不要使用printf () 或 g_print ()
也就是说,既然提供了五个调试函数,那我们最好就用GStreamer的了。
二、调试等级(LEVEL)
总共有六个等级[0,5]
0: 什么都不打印
1: 打印GST_ERROR ()的信息
2: 打印GST_ERROR () GST_WARNING () 的信息
3: 打印GST_ERROR () GST_WARNING () GST_INFO () 的信息
4: 打印GST_ERROR () GST_WARNING () GST_INFO () GST_DEBUG () 的信息
5: 打印GST_ERROR () GST_WARNING () GST_INFO () GST_DEBUG () GST_LOG () 的信息
三、关于 --gst-debug-level=LEVEL的用法
LEVEL的取值为[0,5]
如果使用这个参数来打印调试信息,则所有文件(包括库文件)里的调试信息都将输出来
四、关于--gst-debug=STRING 的用法
只输出由STRING指定范围内的调试信息
STRING 为调试分类名加:号和调试等级
比如: GST_CAT:5,GST_ELEMENT_*:3,oggdemux:5
在编写GStreamer程序时,创建自己的调试分类的过程如下:
Step1
在文件的开头添加两行代码:
GST_DEBUG_CATEGORY_STATIC (myelement_debug);
#define GST_CAT_DEFAULT myelement_debug
Step2
在初始化的地方添加:
GST_DEBUG_CATEGORY_INIT (myelement_debug, "myelement", 0, "My own element");
Step3
在命令行参数中使用: --gst-debug=myelement:X (X的取值为[0,5])
五、gst-launch工具与调试参数
在使用gst-launch 可以通过添加调试参数来打印调试信息
参见:
中的OPTIONS 部分
六、在Code::Blocks中设置命令行调试参数
Project
==>Set progrmas' arguments..
==>Program arguments
填写类似: --gst-debug-level=X 或 --gst-debug=myelement:X(X的取值为[0,5])
七、OBJECT调试函数的用法也类似
GST_LOG_OBJECT ()
GST_DEBUG_OBJECT ()
GST_INFO_OBJECT ()
GST_WARNING_OBJECT ()
GST_ERROR_OBJECT ()
八、在多个文件中共同使用同一个调试类别的方法:
创建一个头文件,其内容如下:
#ifndef DG_H_INCLUDED
#define DG_H_INCLUDED
#include
GST_DEBUG_CATEGORY_STATIC (my_category);
#define GST_CAT_DEFAULT my_category
//注意: 声明一个宏,在不同的文件里,如果有函数里使用该调试类别的话,直接使用该宏
#define USE_OWN_SAME_DEBUG GST_DEBUG_CATEGORY_INIT (my_category, "mycategory",5, "for own debug level");
#endif // DG_H_INCLUDED
阅读(3984) | 评论(0) | 转发(0) |