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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习 GStreamer 的回调函数需要先了解 GStreamer 的基本框架和概念。GStreamer 采用了事件驱动的编程模型,通过管道 (Pipeline) 将不同的媒体元素 (Element) 连接起来,每个媒体元素负责处理特定的媒体数据。GStreamer 的回调函数通常用于处理事件 (Event) 和消息 (Message)。 事件是 GStreamer 中的一种通知机制,用于向元素发送信号并触发相应的动作。GStreamer 中的事件可以分为两类:控制事件和数据事件。控制事件用于控制元素的状态转换,例如开始播放、暂停、停止等。数据事件用于传递媒体数据,例如音频数据、视频数据等。 消息是 GStreamer 中的另一种通知机制,用于向应用程序发送信息。消息通常用于报告错误、警告、状态变化等。GStreamer 中的消息可以分为四类:错误消息、警告消息、状态变化消息和其他消息。 在 GStreamer 中,可以使用回调函数处理事件和消息。回调函数是一种函数,当事件或消息到达时,GStreamer 会自动调用该函数。您可以使用 GStreamer 提供的 API 注册回调函数,例如 gst_element_set_event_function() 和 gst_element_set_message_function()。在注册回调函数时,您需要指定要处理的事件或消息类型以及相应的处理函数。 如果您想深入了解 GStreamer 的回调函数,建议先学习 GStreamer 的基本框架和概念,并参考 GStreamer 的官方文档。同时,您可以查看 GStreamer 的示例代码,了解如何使用回调函数处理事件和消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值