簡體   English   中英

加載自定義gstreamer插件會引發gst.ElementNotFoundError

[英]loading custom gstreamer plugin raises gst.ElementNotFoundError

我正在嘗試在集成測試中加載自定義gstreamer插件之前設置GST_PLUGIN_PATH環境變量,因此我需要以編程方式更改GST_PLUGIN_PATH

但是,如果沒有在外殼GST_PLUGIN_PATH設置gst.element_factory_make ,則gst.element_factory_make失敗。

我正在使用gstreamer-0.10,python2.6和linux 3.2.0(debian 6)。

例:

import gst, os
os.environ['GST_PLUGIN_PATH'] = '/tmp'
print gst.element_factory_make('myelem')

在shell中GST_PLUGIN_PATH設置GST_PLUGIN_PATH

$ export GST_PLUGIN_PATH=
$ ./gstpathtest.py
Traceback (most recent call last):
  File "./gstpathtest.py", line 7, in <module>
    print gst.element_factory_make('myelem')
gst.ElementNotFoundError: myelem

在外殼中設置了GST_PLUGIN_PATH

$ GST_PLUGIN_PATH=/tmp ./gstpathtest.py
/MyElem:myelem0 (__main__.MyElem)

或在外殼中導出GST_PLUGIN_PATH

$ export GST_PLUGIN_PATH=/tmp
$ ./gstpathtest.py
/MyElem:myelem0 (__main__.MyElem)

當以GST_DEBUG=6運行時,我注意到myelem創建,但立即被未引用和破壞,這可能是錯誤的原因。

我什至嘗試將路徑添加到os.environ['PATH'] ,或直接添加到sys.path但沒有任何改變。

我的主要問題是:我在python級別上做錯了什么(以及究竟是什么),或者它表明myelem插件本身存在一些錯誤?

噢,愚蠢的我-如果我在導入gst之前設置了os.environ['GST_PLUGIN_PATH'] ,那么一切都會按預期進行。

此外, gst.registry.scan_path可以工作:

import gst
gst.registry_get_default().scan_path('/tmp')
print gst.element_factory_make('myelem')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM