<div dir="ltr"><div>As you may know the Pidgin IM client uses gstreamer and farstream on Linux, but that capability hasn't been implemented on Windows. The Pidgin IM client uses a MinGW build system with some specialized build instructions at <a href="https://developer.pidgin.im/wiki/BuildingWinPidgin">https://developer.pidgin.im/wiki/BuildingWinPidgin</a>. I'm attempting to get gstreamer/farstream working in Pidgin on Windows.<br>
<br>After a lot of effort, I got things to compile and start up by:<br><ul><li>Making some MinGW build tweaks to farstream itself, described at <a href="https://bugs.freedesktop.org/show_bug.cgi?id=62793">https://bugs.freedesktop.org/show_bug.cgi?id=62793</a></li>
<li>Downloading precompiled binaries for gstreamer 1.1.0.1, glib 2.32, GTK+ 2.24, etc. as described at <a href="http://pidgin.10357.n7.nabble.com/Video-Voice-on-Windows-progress-fails-to-load-fsrtpconference-plugin-td125410.html">http://pidgin.10357.n7.nabble.com/Video-Voice-on-Windows-progress-fails-to-load-fsrtpconference-plugin-td125410.html</a>. (Note that I've since rebuilt libnice 0.1.4 from scratch just fine under MinGW using a pregenerated ./configure.)</li>
</ul></div><div><div><div></div><div>With GST_DEBUG set to '*:9', as Pidgin starts up I can see that some plugins are loaded just fine and others fail. It looks like:<br><ul><li><b>fsmsnconference</b>, <b>fsrtcpfilter and fsrtpconference fail to load</b></li>
<li><b>fsrawconference, fsvideoanyrate load just fine </b></li></ul>For "deployment" of the plugins I just copied the DLLs to C:\Users\cp\.gstreamer-1.0, set GST_PLUGIN_PATH to point there, and copied other dependent DLLs into the pidgin.exe directory. Using Dependency Walker seems to show no missing dependencies. So I guess I wonder if anyone has any thoughts on:<br>
<ul><li>What kinds of things would cause loading a plugin to fail?
</li><li>Can you suggest any extra debugging steps I might try?
</li><li>Do you see a pattern in terms of which plugins load and which ones fail that might point me in the right direction?<br></li></ul>I appreciate any help you can offer. Thanks!<br><br></div><div>-- Conrad<br><br><br>
</div><div>P.S. Here are the log messages generated when I start up:<br></div><div><br><b>fsmsnconference failing to load</b>:<br><span style="font-family:courier new,monospace">0:00:00.018001000  8912    1d58600 DEBUG           GST_REGISTRY gstregistry.c:1324:gst_registry_scan_path_internal:<registry0> scanning path C:\Users\cp\.gstreamer-1.0<br>
0:00:00.019001000  8912    1d58600 LOG             GST_REGISTRY gstregistry.c:1244:gst_registry_scan_path_level:<registry0> file C:\Users\cp\.gstreamer-1.0\libfsmsnconference.dll looks like a possible module<br>0:00:00.019001000  8912    1d58600 DEBUG           GST_REGISTRY gstregistry.c:1305:gst_registry_scan_path_level:<registry0> file C:\Users\cp\.gstreamer-1.0\libfsmsnconference.dll not yet in registry<br>
0:00:00.019001000  8912    1d58600 DEBUG     GST_PLUGIN_LOADING gstplugin.c:702:gst_plugin_load_file: attempt to load plugin "C:\Users\cp\.gstreamer-1.0\libfsmsnconference.dll"<br>0:00:00.023002000  8912    1d58600 WARN      GST_PLUGIN_LOADING gstplugin.c:734:gst_plugin_load_file: module_open failed: `C:\Users\cp\.gstreamer-1.0\libfsmsnconference.dll': The specified module could not be found.</span><br>
<br><b>fsrawconference loading fine</b>:<br><span style="font-family:courier new,monospace">0:00:00.023002000  8912    1d58600 LOG             GST_REGISTRY gstregistry.c:1244:gst_registry_scan_path_level:<registry0> file C:\Users\cp\.gstreamer-1.0\libfsrawconference.dll looks like a possible module<br>
0:00:00.023002000  8912    1d58600 DEBUG           GST_REGISTRY gstregistry.c:1305:gst_registry_scan_path_level:<registry0> file C:\Users\cp\.gstreamer-1.0\libfsrawconference.dll not yet in registry<br>0:00:00.023002000  8912    1d58600 DEBUG     GST_PLUGIN_LOADING gstplugin.c:702:gst_plugin_load_file: attempt to load plugin "C:\Users\cp\.gstreamer-1.0\libfsrawconference.dll"<br>
0:00:00.024002000  8912    1d58600 TRACE        GST_REFCOUNTING gstobject.c:214:gst_object_init:<GstObject@01DA4228> 01DA4228 new<br>0:00:00.024002000  8912    1d58600 LOG       GST_PLUGIN_LOADING gstplugin.c:803:gst_plugin_load_file: Plugin 01DA4228 for file "C:\Users\cp\.gstreamer-1.0\libfsrawconference.dll" prepared, calling entry function...<br>
0:00:00.024002000  8912    1d58600 LOG       GST_PLUGIN_LOADING gstplugin.c:810:gst_plugin_load_file: Plugin 01DA4228 for file "C:\Users\cp\.gstreamer-1.0\libfsrawconference.dll" prepared, registering...<br>0:00:00.024002000  8912    1d58600 LOG       GST_PLUGIN_LOADING gstplugin.c:504:gst_plugin_register_func: plugin "C:\Users\cp\.gstreamer-1.0\libfsrawconference.dll" looks good<br>
0:00:00.024002000  8912    1d58600 TRACE        GST_REFCOUNTING gstobject.c:214:gst_object_init:<GstObject@0418D140> 0418D140 new<br>0:00:00.024002000  8912    1d58600 LOG      GST_ELEMENT_FACTORY gstelementfactory.c:240:gst_element_register:<fsrawconference> Created new elementfactory for type FsRawConference<br>
...<br></span><br></div><div><b>fsrtcpfilter and fsrtpconference failing to load:</b><br><span style="font-family:courier new,monospace">0:00:00.029002000  8912    1d58600 LOG             GST_REGISTRY gstregistry.c:1244:gst_registry_scan_path_level:<registry0> file C:\Users\cp\.gstreamer-1.0\libfsrtcpfilter.dll looks like a possible module<br>
0:00:00.029002000  8912    1d58600 DEBUG           GST_REGISTRY gstregistry.c:1305:gst_registry_scan_path_level:<registry0> file C:\Users\cp\.gstreamer-1.0\libfsrtcpfilter.dll not yet in registry<br>0:00:00.029002000  8912    1d58600 DEBUG     GST_PLUGIN_LOADING gstplugin.c:702:gst_plugin_load_file: attempt to load plugin "C:\Users\cp\.gstreamer-1.0\libfsrtcpfilter.dll"<br>
0:00:00.032002000  8912    1d58600 WARN      GST_PLUGIN_LOADING gstplugin.c:734:gst_plugin_load_file: module_open failed: `C:\Users\cp\.gstreamer-1.0\libfsrtcpfilter.dll': The specified module could not be found.<br>0:00:00.033002000  8912    1d58600 LOG             GST_REGISTRY gstregistry.c:1244:gst_registry_scan_path_level:<registry0> file C:\Users\cp\.gstreamer-1.0\libfsrtpconference.dll looks like a possible module<br>
0:00:00.033002000  8912    1d58600 DEBUG           GST_REGISTRY gstregistry.c:1305:gst_registry_scan_path_level:<registry0> file C:\Users\cp\.gstreamer-1.0\libfsrtpconference.dll not yet in registry<br>0:00:00.033002000  8912    1d58600 DEBUG     GST_PLUGIN_LOADING gstplugin.c:702:gst_plugin_load_file: attempt to load plugin "C:\Users\cp\.gstreamer-1.0\libfsrtpconference.dll"<br>
0:00:00.035002000  8912    1d58600 WARN      GST_PLUGIN_LOADING gstplugin.c:734:gst_plugin_load_file: module_open failed: `C:\Users\cp\.gstreamer-1.0\libfsrtpconference.dll': The specified module could not be found.</span><br>
<br><b>fsvideoanyrate loading fine:</b><br><span style="font-family:courier new,monospace">0:00:00.035002000  8912    1d58600 LOG             GST_REGISTRY gstregistry.c:1244:gst_registry_scan_path_level:<registry0> file C:\Users\cp\.gstreamer-1.0\libfsvideoanyrate.dll looks like a possible module<br>
0:00:00.035002000  8912    1d58600 DEBUG           GST_REGISTRY gstregistry.c:1305:gst_registry_scan_path_level:<registry0> file C:\Users\cp\.gstreamer-1.0\libfsvideoanyrate.dll not yet in registry<br>0:00:00.035002000  8912    1d58600 DEBUG     GST_PLUGIN_LOADING gstplugin.c:702:gst_plugin_load_file: attempt to load plugin "C:\Users\cp\.gstreamer-1.0\libfsvideoanyrate.dll"<br>
0:00:00.036002000  8912    1d58600 TRACE        GST_REFCOUNTING gstobject.c:214:gst_object_init:<GstObject@01DA40B8> 01DA40B8 new<br>0:00:00.036002000  8912    1d58600 LOG       GST_PLUGIN_LOADING gstplugin.c:803:gst_plugin_load_file: Plugin 01DA40B8 for file "C:\Users\cp\.gstreamer-1.0\libfsvideoanyrate.dll" prepared, calling entry function...<br>
0:00:00.036002000  8912    1d58600 LOG       GST_PLUGIN_LOADING gstplugin.c:810:gst_plugin_load_file: Plugin 01DA40B8 for file "C:\Users\cp\.gstreamer-1.0\libfsvideoanyrate.dll" prepared, registering...<br>0:00:00.036002000  8912    1d58600 LOG       GST_PLUGIN_LOADING gstplugin.c:504:gst_plugin_register_func: plugin "C:\Users\cp\.gstreamer-1.0\libfsvideoanyrate.dll" looks good<br>
0:00:00.036002000  8912    1d58600 TRACE        GST_REFCOUNTING gstobject.c:214:gst_object_init:<GstObject@0418D1D0> 0418D1D0 new<br>0:00:00.036002000  8912    1d58600 LOG      GST_ELEMENT_FACTORY gstelementfactory.c:240:gst_element_register:<fsvideoanyrate> Created new elementfactory for type GstVideoanyrate<br>
...<br></span><br><br><br></div><div><a href="http://pidgin.10357.n7.nabble.com/Video-Voice-on-Windows-progress-fails-to-load-fsrtpconference-plugin-td125410.html"></a></div></div></div></div>