码迷,mamicode.com
首页 > 其他好文 > 详细

GStreamer 1.0 运行时环境变量设置

时间:2015-03-04 16:56:35      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:gstreamer

插件搜索路径

GStreamer程序运行时,按照以下顺序搜索插件:

  • PATH
  • GST_PLUGIN_PATH_1_0GST_PLUGIN_PATH
  • GST_PLUGIN_SYSTEM_PATH_1_0GST_PLUGIN_SYSTEM_PATH

每个环境变量包含一个路径列表。 GST_PLUGIN_PATH_1_0环境变量如果被设置,则GST_PLUGIN_PATH自动失效。 这为系统同时安装GStreamer-0.10和GStreamer-1.0提供了便利。 同样的, GST_PLUGIN_SYSTEM_PATH_1_0如果被设置,也会取代GST_PLUGIN_SYSTEM_PATH

那么既然GST_PLUGIN_PATHGST_PLUGIN_SYSTEM_PATH都是指代插件的路径,那为什么要设置两个相似的环境变量呢?

答案是GStreamer不会对搜索到的插件重复加载,这样我们在GST_PLUGIN_PATH里面搜索到某个插件,而这个插件的另外一个版本又在GST_PLUGIN_SYSTEM_PATH里面被搜索到,后一个版本会被忽略。这样,我们就可以使用自已的版本覆盖到系统安装的版本。

这样看来,我们应该使用GST_PLUGIN_SYSTEM_PATH指代系统上安装的GStreamer插件路径,而使用GST_PLUGIN_PATH指代我们自己开发的插件。但是实际操作中,并不需要严格界定这些变量所指向的插件路径的性质。 我就常常把系统插件路径添加到PATH系统变量中。GStreamer同样可以找到系统插件。

另外需要说明的是,

  1. GST_PLUGIN_SYSTEM_PATH_1_0GST_PLUGIN_SYSTEM_PATH均未被定义时, GStreamer会自动将以下路径添加到GST_PLUGIN_SYSTEM_PATH

    • 用户目录GStreamer插件路径,通常是$XDG_DATA_HOME/gstreamer-1.0/plugins, $XDG_DATA_HOME默认路径是 $HOME/.local/share

    • 系统插件目录,$prefix/libs/gstreamer-1.0

  2. 如果你需要避免GStreamer自动搜索以上路径,你可以将GST_PLUGIN_SYSTEM_PATH设置为空!


Debug输出

设置GST_DEBUG变量可以控制GStreamer运行时的输出。 GST_DEBUG可以设置为如下格式:

“模块名1: 级别 , 模块名2:级别 , …”

模块名中可以使用通配符”*”, 如:

  • *: 1“: 表示所有模块输出级别1
  • GST_ELEMENT_:4*”: 表示所有以”GST_ELEMENT_“开头的模块输出级别为4
级别 名称 意义
1 ERROR Logs all fatal errors
2 WARNING Logs all warnings
3 FIXME Logs all fixme messages
4 INFO Logs all informational messages
5 DEBUG Logs all debug messages
6 LOG Logs all log messages
7 TRACE Logs all trace messages
9 MEMDUMP Logs all memory dump messages
  • FIXME: 这类消息表示执行的某段代码尚未完全实现或需要更多的关注。
  • INFO: 记录只发生一次,或者比较重要,或者不常见的事件消息。
  • DEBUG: 记录发生有限次数的事件消息,比如setup, teardown, 参数变化…
  • LOG: 记录重复发生的事件,如streaming…
  • TRACE:记录重复发生的事件, 如ref/unref

GST_DEBUG_FILE 环境变量如果被设置, 所有Log信息都会被重定位到该变量指定的文件,否则所有信息输出到标准错误输出(stderr).


Registry 缓存

GStreamer程序启动的时候会按照指定的路径搜索插件, 并将插件的信息存入文件系统(缓存)。存放缓存的文件路径是
$XDG_CACHE_HOME/gstreamer-1.0/registry-$ARCH.bin,
当设置了GST_REGISTRY_1_0 或者GST_REGISTRY, 则将缓存存入指定的路径。

在搜索插件的过程中GStreamer 会比较缓存的有效性,并决定是否更新缓存。 如果有任何改动,则在初始化函数的结尾将新的缓存信息写入文件系统。

GStreamer 1.0 运行时环境变量设置

标签:gstreamer

原文地址:http://blog.csdn.net/techx/article/details/44062121

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!