I need to load gstreamer plugins from an NPAPI plugin, without adding the plugin path to the
PATH environment variables, and without using GStreamer's plugins registry.
The only method I found to work is:
Calling the Windows API SetCurrentDirectory,
Loading each plugin using gst_plugin_load_file,
Calling SetCurrentDirectory
to set back the original directory (normally the browser's executable folder).
Is there any problem to use this method in a multi-threaded setting?
No, you should avoid this. The current directory is per process, not per thread - you'd get random errors if anything in any other thread depended on the current directory.
gst_plugin_load_file
looks like it should support absolute paths - that would be the right way.