2013-07-09 25 views
0

我想在集成測試中加載自定義gstreamer插件之前設置GST_PLUGIN_PATH環境變量,所以我需要以編程方式更改GST_PLUGIN_PATH加載自定義gstreamer插件引發gst.ElementNotFoundError

但沒有設置在shell中的GST_PLUGIN_PATHgst.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') 

沒有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但它沒有改變任何東西。

我的主要問題是:我做錯了什麼在蟒蛇級(和什麼),或者它表明在myelem插件本身的一些bug?

回答

0

此外,gst.registry.scan_path作品:

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

如何我將在IOS –

+0

@DURGESHKUMAR - 我不熟悉與iOS,而且由於這是不是很流行的問題,你可能不會得到任何幫助從任何人在這裏。我認爲你應該爲你的問題制定新的問題。 –

0

哦,愚蠢的我 - 如果我在導入gst之前設置os.environ['GST_PLUGIN_PATH'],一切都按預期工作。