我需要从NPAPI插件加载gstreamer插件,而不需要添加插件路径
PATH环境变量,而不使用GStreamer的插件注册表。
我发现的唯一方法是:
调用Windows API SetCurrentDirectory,
使用gst_plugin_load_file加载每个插件,
调用SetCurrentDirectory
设置原始目录(通常是浏览器的可执行文件夹)。
在多线程设置中使用此方法有什么问题吗?
答案 0 :(得分:1)
不,你应该避免这种情况。当前目录是按进程而不是每个线程 - 如果任何其他线程中的任何内容依赖于当前目录,则会出现随机错误。
gst_plugin_load_file
看起来应该支持绝对路径 - 这将是正确的方式。
答案 1 :(得分:0)
感谢您的回复。
我想我找到了一个更好的方法:
我调用SetDllDirectory而不是SetCurrentDirectory
加载gstreamer插件后,我调用SetDllDirectory(NULL),
为了恢复默认的dll搜索顺序。