GStreamer除錯 引數與函式的使用

2021-07-09 08:28:41 字數 2359 閱讀 4731

原文出處: 

一、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

函式,引數陣列params與陣列引數,結構函式

1 函式 static 返回值型別 函式名 形參1,形參2,無返回值,則static void 函式名 static void out 無返回值,無形參函式 static int add int num1,int num2 有返回值,有形參函式 public static void main str...

go gdb除錯引數

編譯時,如果編譯的結果需要gdb除錯則使用引數 gcflags n l 這樣可以忽略go 內部做的一些優化,聚合變數和函式等優化.go build gcflags n l 但是一定要注意是不是小寫的i,也不是大寫的i,是小寫的l,不然會出現奇怪的錯誤。如果編譯的結果需要發布.則使用 ldflags ...

gstreamer外掛程式工作原理與流程分析

gstreamer plugins的工作同所有的基於外掛程式的程式的工作原理類似,本質上都是通過讀取動態庫實現的,只需要每個動態庫都實現某乙個特定的介面就可以了,比如xx init等,gstreamer統一使用plugin init。裡面會有個像登錄檔一樣的資料結構會儲存所有的外掛程式的資訊。1 在...