<div dir="ltr">It can't find the gstreamer plugins plugins.<div><br></div><div>On the build machine, you can probably run `gst-inspect-1.0 videotestsrc` and it shows you where the plugins can be found.</div><div><br></div><div>I am willing to bet you did not package the plugin binaries with your deployable.  You need to package the binaries and then tell gstreamer where to look for them.</div><div><br></div><div>I have a bit of initialization code that I run when my program starts.</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><font face="monospace">if (!_initialized)</font></div><div><font face="monospace">{</font></div><div><span style="font-family:monospace">    boost::filesystem::path pluginFolder = assemblyFolder / "plugins";</span><br></div><div><font face="monospace"><br></font></div><div><font face="monospace">    // WARNING: setting an environment variable is only safe at the beginning of the program (before any</font></div><div><font face="monospace">    // other threads have been spun up).  We do this to maintain strict control over the plugins that we</font></div><div><font face="monospace">    // are using.</font></div><div><font face="monospace">    const char* priorGstPluginPath = g_getenv("GST_PLUGIN_PATH");</font></div><div><font face="monospace">    std::string gstPluginPath = string::unwiden(pluginFolder.string());</font></div><div><font face="monospace">    if (priorGstPluginPath)</font></div><div><font face="monospace">    {</font></div><div><font face="monospace">        char c = priorGstPluginPath[0];</font></div><div><font face="monospace">        if (c != 0)</font></div><div><font face="monospace">        {</font></div><div><font face="monospace">            gstPluginPath = gstPluginPath + PATHS_SEP_STR + priorGstPluginPath;</font></div><div><font face="monospace">        }</font></div><div><font face="monospace">    }</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">    g_unsetenv("GST_PLUGIN_SYSTEM_PATH_1_0");</font></div><div><font face="monospace">    g_unsetenv("GST_PLUGIN_SYSTEM_PATH");</font></div><div><font face="monospace">    g_unsetenv("GST_PLUGIN_PATH_1_0");</font></div><div><font face="monospace">    g_unsetenv("GSTREAMER_ROOT_X86_64");</font></div><div><font face="monospace">    g_setenv("GST_PLUGIN_PATH", gstPluginPath.c_str(), true);</font></div><div><font face="monospace">    g_setenv("GSTREAMER_1_0_ROOT_X86_64", string::unwiden(assemblyFolder.string()).c_str(), true);</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">    //  Initialize gstreamer</font></div><div><font face="monospace">    gst_init(pnargs, pargs);</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">    //  Guard against initializing more than once.</font></div><div><font face="monospace">    _initialized = true;</font></div><div><font face="monospace">}</font></div></blockquote><div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 30, 2020 at 8:19 AM erikherz <<a href="mailto:erik@vivoh.com">erik@vivoh.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Looking at the debug output, I see:<br>
<br>
GST_ELEMENT_FACTORY gstelementfactory.c:444:gst_element_factory_make:<br>
gstelementfactory: make "videotestsrc" "(NULL)"<br>
GST_ELEMENT_FACTORY gstelementfactory.c:142:gst_element_factory_find: no<br>
such element factory "videotestsrc"<br>
<br>
GST_ELEMENT_FACTORY gstelementfactory.c:444:gst_element_factory_make:<br>
gstelementfactory: make "d3dvideosink" "(NULL)"<br>
GST_ELEMENT_FACTORY gstelementfactory.c:142:gst_element_factory_find: no<br>
such element factory "d3dvideosink"<br>
<br>
The app runs on the same machine and shows the video test pattern when I<br>
launch it from QT Creator but not when I deploy it as a stand-alone<br>
application (using windeployqt.exe and copying over all of the Gstreamer<br>
libraries).<br>
<br>
Here is the full output file (GST_DEBUG=*:7):<br>
<a href="https://customers.vivoh.com/all/mini_app_out_mar_30_2020.txt" rel="noreferrer" target="_blank">https://customers.vivoh.com/all/mini_app_out_mar_30_2020.txt</a><br>
<br>
I posted the source code to a very small QT sample application that<br>
reproduces the problem here:<br>
<a href="https://forum.qt.io/topic/112384/building-with-gstreamer-on-windows/28" rel="noreferrer" target="_blank">https://forum.qt.io/topic/112384/building-with-gstreamer-on-windows/28</a><br>
<br>
<br>
<br>
--<br>
Sent from: <a href="http://gstreamer-devel.966125.n4.nabble.com/" rel="noreferrer" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div>