织梦CMS - 轻松建站从此开始!

罗索

GStreamer调试 参数与函数的使用

jackyhwei 发布于 2011-05-10 20:43 点击:次 
一、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 standar
TAG:

一、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 可以通过添加调试参数来打印调试信息

参见:http://manpages.ubuntu.com/manpages/gutsy/man1/gst-launch-0.10.1.html
中的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/gst.h>


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
(ydlake958 )
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201105/11571.html]
本文出处:blog.sina.com.cn/ydlake958  作者:ydlake958
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容