GStreamer調試 參數與函數的使用

原文出處: 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 可以通過添加調試參數來打印調試信息

參見: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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章