I am trying to build and install the gtk4 plugin from https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs for a Haskell project. I have followed all the instructions written in Rust using Visual Studio Code as an IDE, and it looked as if it succeded but when I ran gst-inspect-1.0 gstgtk4
I got the following warning message
(gst-plugin-scanner.exe:9876): GStreamer-WARNING **: 16:16:29.798: Failed to load plugin 'D:visual-studio-projectsgstreamer-gst-plugins-rs-gst-plugins-rstargetx86_64-pc-windows-msvcdebuggstgtk4.dll': Impossibile trovare la procedura specificata
No such element or plugin 'gstgtk4' saying that gstreamer failed to load the plugin.
I then ran gst-inspect-1.0 -b
to see if the plugin got somehow blacklisted and it did, I got the following:
PS C:Usersbu> gst-inspect-1.0 -b
Blacklisted files:
gstamrnb.dll
gstamrwbdec.dll
gstgtk4.dll
Total count: 3 blacklisted files
Following the instructions from Matilda Gl’s answer Why compiled and installed gstreamer plugin from boilerplate code is not found by gst-inspect I first tried deleting directory ~/.cache/ (the question was asked from a Linux user, for Windows I assume it’s C:Usersuser.cache , correct me if I’m wrong) and then ran gst-inspect-1.0
again but nothing happened. She said that Gstreamer would print out the reason why it blacklisted the plugin but I got no message.
The last step was to run dumpbin -dependents D:visual-studio-projectsgstreamer-gst-plugins-rsgst-plugin-rstargetx86_64-pc-windows-msvcdebuggstgtk4.dll
to see if I had any missing dependencies for the gstgtk4 plugin as Sourab Maity suggested in Failed to load plugin GStreamer and I did. This is the command output:
Dump of file D:visual-studio-projectsgstreamer-gst-plugins-rsgst-plugin-rstargetx86_64-pc-windows-msvcdebuggstgtk4.dll
File Type: DLL
Image has the following dependencies:
bcryptprimitives.dll
api-ms-win-core-synch-l1-2-0.dll
gstgl-1.0-0.dll
gstvideo-1.0-0.dll
gstbase-1.0-0.dll
gstreamer-1.0-0.dll
gobject-2.0-0.dll
glib-2.0-0.dll
gtk-4-1.dll
graphene-1.0-0.dll
gio-2.0-0.dll
kernel32.dll
ntdll.dll
VCRUNTIME140.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
Summary
1000 .data
7000 .pdata
38000 .rdata
1000 .reloc
72000 .text
C:Program Files (x86)Microsoft Visual Studio2022BuildTools>
The following dependencies are missing from D:\gstreamer\1.0\msvc_x86_64\bin
: bcryptprimitives.dll, api-ms-win-core-synch-l1-2-0.dll, gtk-4-1.dll, kernel32.dll, ntdll.dll, VCRUNTIME140.dll, api-ms-win-crt-string-l1-1-0.dll, api-ms-win-crt-math-l1-1-0.dll, api-ms-win-crt-runtime-l1-1-0.dll, api-ms-win-crt-heap-l1-1-0.dll.
So now I don’t really know how to solve this problem. Do I just download all of these dependencies separately and copy them over the bin directory? Would that be enough?
Or should I try reinstalling gstreamer and see if they get installed this time?
I also ran Dependency Walker program to inspect these missing dependencies a little bit better and found out that a lot of them come from c:program files (x86)windows kits10windows performance toolkit . I tried updating the SDKs from Windows but nothing happened still.