Cannot load Matroska Plugin built from source

Nirbheek Chauhan nirbheek.chauhan at gmail.com
Thu Sep 29 11:55:30 UTC 2022


What you are doing is fundamentally wrong. You're taking a DLL built
in one way (gstreamer monorepo) and trying to directly replace a DLL
built in another way (cerbero). As a result, the dependencies of the
two DLLs are different, and you're not copying the dependent DLLs
over. I would recommend not mixing the two mechanisms.

If you really want to do things the way you are right now, you can use
something like https://github.com/lucasg/Dependencies to figure out
what's missing.

On Thu, Sep 29, 2022 at 4:37 PM Jon Lovewell <jon at csoftware.co.uk> wrote:
>
> Hi Nirbheek,
>
>
>
> Many thanks for taking the time to reply.
>
>
>
> I added z.dll to the bin directory of the installed version and now gst-inspect reports the following:
>
>
>
> (gst-inspect-1.0:29924): GStreamer-WARNING **: 11:56:23.253: Failed to load plugin 'path\to\gstmatroska.dll': The specified procedure could not be found.
>
> No such element or plugin 'matroska'
>
>
>
> Once again, running gst-inspect from my built version displays the plugin details.
>
>
>
> I also get the same issue if I just build the 1.20.3 branch without any modifications to the source code.  Shouldn’t this produce the same dll with the same dependencies as my installed 1.20.3 version?
>
>
>
> Kind Regards
>
>
>
> Jon
>
>
>
> From: Nirbheek Chauhan <nirbheek.chauhan at gmail.com>
> Sent: 29 September 2022 08:41
> To: Discussion of the development of and with GStreamer <gstreamer-devel at lists.freedesktop.org>
> Cc: Jon Lovewell <jon at csoftware.co.uk>
> Subject: Re: Cannot load Matroska Plugin built from source
>
>
>
> Hi,
>
>
>
> It sounds like you didn't copy z.dll to the bin directory. The new plugin needs that. It can't use z-1.dll
>
>
>
> On Tue, 27 Sept, 2022, 21:47 Jon Lovewell via gstreamer-devel, <gstreamer-devel at lists.freedesktop.org> wrote:
>
> Hi All,
>
>
>
> I have built the matroska plugin from source, using the 1.20.3 branch with meson and the msvc toolchain.  When I replace the actual matroska dll included as part of the 1.20.3 msvc binaries and then run gst-inspect it reports the following
>
>
>
> (gst-inspect-1.0:17092): GStreamer-WARNING **: 15:44:18.959: Failed to load plugin 'path\to\gstmatroska.dll': The specified module could not be found.
>
> This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
>
> You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
>
> There are also some third-party GUIs to list and debug DLL dependencies recursively.
>
> No such element or plugin 'matroska'
>
>
>
> I have also built the pango dll in the same way and when I replaced that and did the same thing the details of the plugin were reported correctly.
>
>
>
> One thing that I have noticed is that the dll built from source can be inspected by the version of gst-inspect also built from the source.  Similarly, if I replace the dll built from source with that included by the installer and then use gst-inspect built from source then I get the same error as shown above.
>
>
>
> My hunch is that it is something to do with matroska’s dependency on the z and possibly bz2 dll’s.
>
> Installed version has the following dll’s
>
> z-1.dll
>
> bz2.dll
>
> gstbz2.dll
>
>
>
> When built from source I only have the following dll
>
>                z.dll
>
>
>
> I wonder if anyone can shed any light on what I am doing wrong or what else I need to do when building matroska.
>
>
>
> Many Thanks


More information about the gstreamer-devel mailing list