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) |