Chinaunix首页 | 论坛 | 博客
  • 博客访问: 58454
  • 博文数量: 9
  • 博客积分: 226
  • 博客等级: 二等列兵
  • 技术积分: 131
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-22 22:43
文章分类

全部博文(9)

文章存档

2013年(2)

2012年(7)

我的朋友

分类: 嵌入式

2012-09-05 16:24:53

                          Environment Variables
GST_PLUGIN_SYSTEM_PATH
指定plugins的查找路径,多个路径用冒号分开,如果没有指定这个环境变量,系统会搜索如下目录:

1:~/.gstreamer-1.0/plugins
2: /usr/local/lib/gstreamer-1.0

如果将这个环境变量设置成空字符串,系统将不会搜索上面的默认路径,这对嵌入式平台很有用。

GST_PLUGIN_PATH
跟GST_PLUGIN_SYSTEM_PATH类似,不过系统会先搜索GST_PLUGIN_PATH指定的路径,然后再搜索GST_PLUGIN_SYSTEM_PATH指定的路径。一般在嵌入式平台上,将GST_PLUGIN_SYSTEM_PATH置空,将GST_PLUGIN_PATH指向交叉编译过的gstreamer库的路径。

GST_DEBUG
gstreamer的LOG分为不同的category,而每个category内部又分为不同的level,因此我们用 "category_name:level" 二元组来指定每个category对应的level,GST_DEBUG就是由一系列的"category_name:level"二元组的列表组成,多个二元组用逗号分隔,category_name支持"*"通配符,level的值根据gstreamer版本有所不同,目前最新版本可以支持0~9,等级越高打印的LOG越多,等级越低打印的LOG越少。
例如:
GST_DEBUG=GST_AUTOPLUG:6,GST_ELEMENT_*:4   gst-launch playbin2 uri=file:///test.avi

注意:两个二元组之间除了逗号以外不能有其它任何字符,有些人喜欢加一个空格,千万不能加。

如果不设置category,则按照level打印所有的category的LOG,例如:
GST_DEBUG=6 gst-inspect

如果不知道category的name可以用gst-launch --gst-debug-help查询

注意:在运行的APP前面直接指定环境变量的值是Linux环境下常用的方式,这种方式指定的环境变量只影响当前运行的APP,你也可以在shell下面export环境变量,然后再运行APP。


GST_DEBUG_NO_COLOR
默认情况下,gstreamer输出的LOG根据等级分为不同的颜色,设置此参数将不会输出颜色字符(有些终端不支持颜色字符,如果不禁用颜色字符会出现一大堆框框)


GST_DEBUG_FILE
设置LOG重定向的文件名, 设置了这个路径以后,gstreamer将LOG信息重定向到你指定的文件,这样就不会跟其它LOG混在一起
 

GST_DEBUG_DUMP_DOT_DIR
这个环境变量用来设置.dot文件的存放路径,请确保改路径是可写的!
.dot文件存放了pipeline在不同的state的时候的结构,你可以用graphviz 工具打开.dot文件。

GST_REGISTRY_UPDATE
对于嵌入式平台来说,将这个环境变量的值设置成”no”,这样gstreamer 框架在初始化的时候就不会检查plugin的更新,这样可以加速启动。

上面介绍了几个常用环境变量,一般来说只要了解这些环境变量就好了,这些环境变量对你自己编写的APP也是有效的。下面一节将介绍如何gstreamer log系统相关的一些源代码,以及如何在自己编写的插件中正确的使用gstreamer的log系统。花这么多时间来说明这些工具和Log系统是因为gstreamer框架用了很多设计模式,尤其是组合模式(个人认为非常丑陋),一旦出现问题,debug非常麻烦,如果你用eclipse调试经常能看到一百多层的调用栈夹杂着各种递归。因此熟悉gstreamer提供的工具和Log系统可以显著的提高效率,尤其在嵌入式平台!
阅读(5647) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~