GStreamer 1.24.0 and a new Warning

Hi all,
since I upgraded to the latest GStreamer 1.24

I get this warning
(FireflyLuciferin:36608): GStreamer-WARNING **: 12:27:23.362: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. You might need to set the GST_PLUGIN_SCANNER environment variable if your setup is unusual. This should normally not be required though.

I never seen this warning before, what can it be?

Thanks
Davide

1 Like

How did you update? Did you properly configured the prefix ti match your installation?

using the MSI installer.
I use the same path as always.

A --gst-debug= or GST_DEBUG=*:INFO,*PLUGIN*:LOG debug log might shed some light.

Can you try with 1.24.1? I think this commit might have fixed your issue, registry, ptp: Canonicalize the library path returned by dladdr (bd97973c) Ā· Commits Ā· GStreamer / gstreamer Ā· GitLab

Thanks for the answer philn, I appreciate it,
Iā€™ll try it once the installer will be ready.

1.24.1 binaries are up now.

@philn
Same warning even with 1.24.1
the weird thing is that the Warning does not shows every time.

Sometimes I see it, sometimes notā€¦

Please provide debug logs suggested by Tim.

I saw some as well in Gstreamer 1.24.1. For example, qt libs are missing for qml6 sink although qml6 sink is not used. My app is still using Qt5. Maybe ignore them. But do pay attention to these warnings for libs or plugins which are used.

OS: Ubuntu 22.04

Iā€™m not sure if this helps, or is strictly related, but here goes:

Iā€™ve been testing GStreamer 1.24.3 and 1.24.4 on five different Windows 11 laptops. On one machine only, Gstreamer crashes when trying to construct the path to the system plugin scanner:

0:00:00.161548400 27356 00000214081E8090 DEBUG GST_REGISTRY gstregistry.c:1586:priv_gst_get_relocated_libgstreamer: attempting to retrieve libgstreamer-1.0 location using Win32-specific method
0:00:00.168271100 27356 00000214081E8090 DEBUG GST_REGISTRY gstregistry.c:1595:priv_gst_get_relocated_libgstreamer: using DLL dir <redacted (app path)>\gstreamer\x86_64\lib
0:00:00.170209200 27356 00000214081E8090 DEBUG GST_PLUGIN_LOADING gstpluginloader-win32.c:483:find_helper_bin_location: found libgstreamer-1.0 library at <redacted (app path)>\gstreamer\x86_64\lib
0:00:00.172337300 27356 00000214081E8090 DEBUG GST_PLUGIN_LOADING gstpluginloader-win32.c:500:find_helper_bin_location: constructing path to system plugin scanner using plugin dir: ā€˜libā€™, plugin scanner dir: ā€˜libexecā€™

Above was the last line executed at debug level 6.

Even if I supply the path via THE GST_PLUGIN_SCANNER environment variable, the scanner is apparently found but it canā€™t be loaded, on both the good machines and the bad one:

0:00:00.023052500 42816 000002276E13E090 LOG GST_PLUGIN_LOADING gstpluginloader-win32.c:469:find_helper_bin_location: Trying GST_PLUGIN_SCANNER env var: \gstreamer\x86_64\libexec\gstreamer-1.0
0:00:00.023202100 42816 000002276E13E090 WARN GST_PLUGIN_LOADING gstpluginloader-win32.c:1095:gst_plugin_loader_new: Couldnā€™t create helper process
0:00:00.023248800 42816 000002276E13E090 WARN GST_REGISTRY gstregistry.c:1164:gst_registry_scan_plugin_file: Failed starting plugin scanner. Scanning in-process

On my good machines, scanning does succeed. It looks like it succeeds regardless if that env var is set or not. But on my one machine, gstreamer still crashes.

Now, I donā€™t want to mislead anyone, because this crash also is now happening with Gstreamer 1.19.

So something is now wrong on this one machine only. I just donā€™t know yet what to look for.

1 Like

STACK_TEXT:
00000040b5ffd8e0 00007ff8e7214e2a : 00007ff8e7252ac0 0000000000000000 00000040b5ffd9b0 000000000000005c : glib_2_0_0!g_build_pathname_va+0x98
00000040b5ffd960 00007ff8e72141b9 : 00000040b5ffdeb0 000000006657d066 0000000000000000 0000020acf0c0000 : gstreamer_1_0_0!find_helper_bin_location+0x22a
00000040b5ffdc00 00007ff8e71d1ab3 : 0000000200000000 000081b600000000 0000000000000000 00000040b5ffdeb0 : gstreamer_1_0_0!gst_plugin_loader_new+0x29
00000040b5ffdd00 00007ff8e71d1960 : 0000000000000000 0000020a90c62f80 0000020a98d00138 0000000000000001 : gstreamer_1_0_0!gst_registry_scan_plugin_file+0x83
00000040b5ffdd60 00007ff8e71d25d7 : 0000000000000000 0000000000000000 0000020a9a82323b 0000020a847d6fa0 : gstreamer_1_0_0!gst_registry_scan_path_level+0x7c0
00000040b5ffde60 00007ff8e71ced32 : 00000040b5ffdfc0 0000020a844c1f80 0000020a00000001 00000040b5ffdfc0 : gstreamer_1_0_0!scan_and_update_registry+0x2c7
00000040b5ffdf10 00007ff8e71d1c73 : 0000000000000000 00000040b5ffe080 0000020a9b22efa0 00007ff92c5318da : gstreamer_1_0_0!ensure_current_registry+0x1e2
00000040b5ffdf70 00007ff8e715cbe7 : 0000000000000000 0000020aefb86020 0000000000000000 0000020a9b1e6e60 : gstreamer_1_0_0!gst_update_registry+0x23
00000040b5ffdfc0 00007ff8e6c22528 : 0000000000000001 0000020a00000000 0000020a9b23cfa0 0000020a9b22efa0 : gstreamer_1_0_0!init_post+0x667
00000040b5ffe030 00007ff8e715c36f : 00000040b5ffe1a0 0000000000000000 0000020a9b22efa0 00007ff931e60000 : glib_2_0_0!g_option_context_parse+0x898
00000040b5ffe110 00007ff8e715c247 : 00000040b5ffe6c0 0000020ad71a43b0 00000040b5ffe290 0000020ad71a43b0 : gstreamer_1_0_0!gst_init_check+0xdf
00000040b5ffe160 00007ff8fbfba0bc : 0000020ad71a43b0 00007ff8fbfd7178 0000000000000000 0000000000000020 : gstreamer_1_0_0!gst_init+0x17

ā€¦

STACK_COMMAND: ~7s; .ecxr ; kb

FAULTING_SOURCE_LINE: C:\projects\repos\cerbero.git\1.24\build\sources\msvc_x86_64\glib-2.74.4\glib\gfileutils.c

FAULTING_SOURCE_FILE: C:\projects\repos\cerbero.git\1.24\build\sources\msvc_x86_64\glib-2.74.4\glib\gfileutils.c

FAULTING_SOURCE_LINE_NUMBER: 2085

FAULTING_SOURCE_CODE:
2081: }
2082:
2083: #ifdef G_OS_WIN32
2084:

2085: static gchar *
2086: g_build_pathname_va (const gchar *first_element,
2087: va_list *args,
2088: gchar *str_array)
2089: {
2090: /
Code copied from g_build_pathv(), and modified to use two

SYMBOL_NAME: glib_2_0_0!g_build_pathname_va+98

MODULE_NAME: glib_2_0_0

IMAGE_NAME: glib-2.0-0.dll

FAILURE_BUCKET_ID: INVALID_POINTER_READ_AVRF_c0000005_glib-2.0-0.dll!g_build_pathname_va

OS_VERSION: 10.0.19041.1

BUILDLAB_STR: vb_release

OSPLATFORM_TYPE: x64

OSNAME: Windows 10

IMAGE_VERSION: 2.74.4.0

FAILURE_ID_HASH: {77c8e690-c8fb-ee80-a37d-ab5afecae874}

@philn sorry for the late reply.
the problem stll happen even on 1.24.7

this is the debug output:

[Instance #1] 21:27:39.176 [JavaFX Application Thread] INFO  o.dpsoftware.grabber.ImageProcessor - GStreamer path in use=C:/dev/dpsoftware/ArduinoRaspberry/PUBLIC/firefly_luciferin/src/main/resources
0:00:00.053258200 33052 000001A1BE475F30 ERROR     GST_PLUGIN_LOADING gstpluginloader-win32.c:386:gst_plugin_loader_try_helper: Child process got terminated

(FireflyLuciferin:33052): GStreamer-WARNING **: 21:27:39.253: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. You might need to set the GST_PLUGIN_SCANNER environment variable if your setup is unusual. This should normally not be required though.
0:00:01.344052400 33052 000001A1BE475F30 WARN         d3d11debuglayer gstd3d11device.cpp:729:gst_d3d11_device_dispose:<d3d11device0> DXGIInfoQueue: Live ID3D11Device at 0x000001A1BE3F4D10, Refcount: 3
0:00:01.354329800 33052 000001A1BE475F30 WARN             d3d11device gstd3d11device.cpp:1275:gst_d3d11_device_get_video_device_handle: D3D11 call failed: 0x80004002, Interfaccia non supportata.
0:00:01.354562800 33052 000001A1BE475F30 WARN         d3d11debuglayer gstd3d11device.cpp:729:gst_d3d11_device_dispose:<d3d11device1> DXGIInfoQueue: Live ID3D11Device at 0x000001A1BE435100, Refcount: 3
0:00:01.471026100 33052 000001A1BE475F30 WARN             d3d12device gstd3d12device.cpp:738:gst_d3d12_device_new_internal: Could not find adapter, hr: 0x887a0002
0:00:02.172451700 33052 000001A1BE475F30 WARN                 default ges-meta-container.c:237:_set_value:<GESAsset@000001A1BE956B50> Could not set value on item: format-version
0:00:02.172586200 33052 000001A1BE475F30 WARN                 default ges-meta-container.c:237:_set_value:<GESAsset@000001A1BE956BD0> Could not set value on item: format-version
0:00:02.172691700 33052 000001A1BE475F30 WARN                 default ges-meta-container.c:237:_set_value:<GESAsset@000001A1BE956C50> Could not set value on item: format-version
0:00:02.173144500 33052 000001A1BE475F30 WARN               structure gststructure.c:2371:priv_gst_structure_parse_fields: Failed to find delimiter, r=mimetype
0:00:02.302202400 33052 000001A1BE475F30 WARN                 default gstjackloader.c:187:gst_jack_load_library: Could not open library libjack64.dll, 'libjack64.dll': Impossibile trovare il modulo specificato.
0:00:02.302424700 33052 000001A1BE475F30 WARN                 default gstjack.c:108:plugin_init: Failed to load jack library
0:00:02.304491200 33052 000001A1BE475F30 WARN                  ladspa gstladspa.c:509:plugin_init:<plugin163> no LADSPA plugins found, check LADSPA_PATH
0:00:02.861876100 33052 000001A1BE475F30 WARN             mftransform gstmftransform.cpp:1223:gst_mf_transform_set_output_type: MediaFoundation call failed: 0xc00d36bd, Tipo non valido.
0:00:02.877800200 33052 000001A1BED3C540 WARN             mftransform gstmftransform.cpp:513:gst_mf_transform_thread_func:<mftransform4> No available device at index 0
0:00:02.895205700 33052 000001A1BE475F30 WARN         d3d11debuglayer gstd3d11device.cpp:729:gst_d3d11_device_dispose:<d3d11device2> DXGIInfoQueue: Live ID3D11Device at 0x000001A1BF178940, Refcount: 3
0:00:02.907588900 33052 000001A1BED3C600 WARN             mftransform gstmftransform.cpp:513:gst_mf_transform_thread_func:<mftransform7> No available device at index 1
0:00:02.910676700 33052 000001A1BED3C680 WARN             mftransform gstmftransform.cpp:513:gst_mf_transform_thread_func:<mftransform9> No available device at index 1
0:00:02.912678400 33052 000001A1BED3C680 WARN             mftransform gstmftransform.cpp:920:gst_mf_transform_open_internal: MediaFoundation call failed: 0x80004002, Interfaccia non supportata.
0:00:02.912783300 33052 000001A1BED3C680 WARN             mftransform gstmftransform.cpp:921:gst_mf_transform_open_internal:<mftransform10> ICodecAPI is unavailable
0:00:02.913932000 33052 000001A1BED3C640 WARN             mftransform gstmftransform.cpp:920:gst_mf_transform_open_internal: MediaFoundation call failed: 0x80004002, Interfaccia non supportata.
0:00:02.914058700 33052 000001A1BED3C640 WARN             mftransform gstmftransform.cpp:921:gst_mf_transform_open_internal:<mftransform11> ICodecAPI is unavailable
0:00:03.028194500 33052 000001A1BE475F30 WARN               cudanvrtc gstcudanvrtc.cpp:161:gst_cuda_nvrtc_load_library_once: Could not open nvrtc library 'nvrtc64_90_0.dll': Impossibile trovare il modulo specificato.
0:00:03.217606300 33052 000001A1BE475F30 WARN         d3d11debuglayer gstd3d11device.cpp:729:gst_d3d11_device_dispose:<d3d11device3> DXGIInfoQueue: Live ID3D11Device at 0x000001A1BD0AAAB0, Refcount: 3
[Instance #1] 21:27:43.322 [JavaFX Application Thread] INFO  o.d.managers.PowerSavingManager - Adding hook for power saving.
[Instance #1] 21:27:43.330 [JavaFX Application Thread] INFO  org.dpsoftware.NativeExecutor - CPU SIMD AVX512 Instructions supported
[Instance #1] 21:27:43.331 [JavaFX Application Thread] INFO  org.dpsoftware.NativeExecutor - SIMD CPU Instructions: Auto
[Instance #1] 21:27:43.579 [JavaFX Application Thread] INFO  o.dpsoftware.managers.DisplayManager - Native HMONITOR peer: 65537 -> X32 FP                                                                                                                          
[Instance #1] 21:27:43.579 [JavaFX Application Thread] INFO  o.dpsoftware.managers.DisplayManager - Width: 3072.0 Height: 1728.0 Scaling: 1.25 MinX: 0.0 MinY: 0.0
[Instance #1] 21:27:44.331 [pool-15-thread-1] INFO  o.d.managers.PipelineManager - Waiting device for my instance...
[Instance #1] 21:27:45.327 [pool-15-thread-1] INFO  o.d.managers.PipelineManager - Waiting device for my instance...
[Instance #1] 21:27:46.328 [pool-15-thread-1] INFO  o.d.managers.PipelineManager - Waiting device for my instance...
[Instance #1] 21:27:47.328 [pool-15-thread-1] INFO  o.d.managers.PipelineManager - Waiting device for my instance...
[Instance #1] 21:27:50.314 [gstreamer service thread 1] INFO  o.dpsoftware.grabber.GrabberManager - Starting a new pipeline
0:00:11.273143100 33052 000001A1BED3CD80 FIXME                default gstutils.c:4090:gst_element_decorate_stream_id_internal:<d3d12screencapturesrc0> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
[Instance #1] 21:27:59.161 [pool-5-thread-1] INFO  o.dpsoftware.managers.UpgradeManager - Checking for Glow Worm Luciferin Update

Well, maybe ā€œyour setup is unusualā€ then :slight_smile:

How did you install GStreamer?

This looks like Windows? Sorry I donā€™t know much about that :slight_smile:

@philn I use the msvc .msi installer.

and then I add to my environment variables (path variable) this path:
C:/dev/dpsoftware/ArduinoRaspberry/PUBLIC/firefly_luciferin/src/main/resources/gstreamer/1.0/msvc_x86_64/bin

is there something wrong in this?

So you followed this doc? Installing on Windows

Maybe you need to set GST_PLUGIN_PATH too. Iā€™ll let someone familiar with Windows chime in.

@philn I tried setting that env variable but nothing change.

Try adding the
C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0
to the Path of your system variables (in my case the gstreamer folder is in my C:/ driver. make sure to find where you installed yours)