You are not logged in.
So I have an issue with trying to run Vapoursynth when using ffmpeg, l-smash, and libvslsmashsource.so
To clarify I am only using repo libraries here, but Compiling from source doesn't seem to resolve the issue unless i roll back glib.
basically i get this error:
Failed to load /usr/lib/vapoursynth/libvslsmashsource.so. Error given: /usr/lib/libgobject-2.0.so.0: undefined symbol: g_atomic_rc_box_release_full
Failed to load /usr/lib/vapoursynth/libvslsmashsource.so. Error given: /usr/lib/libgobject-2.0.so.0: undefined symbol: g_atomic_rc_box_release_full
The ouput of "readelf -sW /usr/lib/libgobject-2.0.so.0 | grep atomic":
72: 0000000000000000 0 FUNC GLOBAL DEFAULT UND g_atomic_rc_box_release_full
103: 0000000000000000 0 FUNC GLOBAL DEFAULT UND g_atomic_rc_box_acquire
173: 0000000000000000 0 FUNC GLOBAL DEFAULT UND g_atomic_rc_box_alloc0
I've tracked the issue down to libavcodec. It seems something is broken between it and libgobject.
I've recompiled glib 2.73.3 and the issue resolves itself, but i'd rather not have to deal with the issues rolling back a core system library can cause.
SOLUTION:
Recompiled vslsmashsource from source using this git repo:
https://github.com/HomeOfAviSynthPlusEv … MASH-Works
Last edited by Wisperer (2023-02-14 01:04:32)
Offline
What package are you using, exactly? `pacman -Qi glib2`
`lddtree /usr/lib/libgobject-2.0.so.0` may also be illuminating.
Last edited by Scimmia (2023-02-13 04:18:01)
Offline
'pacman -Q glib2' gives me :
glib2 2.74.5-1
output of 'lddtree /usr/lib/libgobject-2.0.so.0'
/usr/lib/libgobject-2.0.so.0 (interpreter => None)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0
libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0
libffi.so.8 => /usr/lib/libffi.so.8
libc.so.6 => /usr/lib/libc.so.6
ld-linux-x86-64.so.2 => /usr/lib/ld-linux-x86-64.so.2
Offline
Compiling from source doesn't seem to resolve the issue
You tried to recompile vaporsynth as well? You didn't receive linker errors?
I've recompiled glib 2.73.3
Arch has never shipped glib2 2.73.3, https://github.com/archlinux/svntogit-p … lib2/trunk
pacman -Qs 'ffmpeg|libav|vapour|glib'
Offline
So it's pulling in the correct libglib-2.0 library, and that lib has the symbol in question. Sounds like it's something specific to Vapoursynth or the plugin you're talking about. If libgobject was actually messed up, a whole lot of things would crash.
It's going to be a lot of output, but set LD_DEBUG=files, I bet it's finding a different libglib-2.0 somewhere.
Offline
Compiling from source doesn't seem to resolve the issue
You tried to recompile vaporsynth as well? You didn't receive linker errors?
I did. None. It compile without errors. Got a bunch of deprication errors, but that was it.
I've recompiled glib 2.73.3
Arch has never shipped glib2 2.73.3, https://github.com/archlinux/svntogit-p … lib2/trunk
Fair. but it was the newest version i could find that didn't cause the issue.
pacman -Qs 'ffmpeg|libav|vapour|glib'
local/appstream-glib 0.8.2-1
Objects and methods for reading and writing AppStream metadata
local/avahi 0.8+22+gfd482a7-3
Service Discovery for Linux using mDNS/DNS-SD -- compatible with Bonjour
local/dbus-glib 0.112-2
GLib bindings for DBUS
local/ffmpeg 2:5.1.2-1
Complete solution to record, convert and stream audio and video
local/ffmpeg4.4 4.4.2-3
Complete solution to record, convert and stream audio and video
local/ffmpegthumbnailer 2.2.2-4
Lightweight video thumbnailer that can be used by file managers
local/glib-networking 1:2.74.0-1
Network extensions for GLib
local/glib2 2.74.5-1
Low level core library
local/glib2-docs 2.74.5-1
Documentation for GLib
local/glibc 2.37-2
GNU C Library
local/glibmm 2.66.5-1
C++ bindings for GLib
local/gst-libav 1.22.0-3
Multimedia graph framework - libav plugin
local/json-glib 1.6.6-2
JSON library built on GLib
local/lib32-glib2 2.74.5-1
Low level core library (32-bit)
local/lib32-glibc 2.37-2
GNU C Library (32-bit)
local/libaccounts-glib 1.26-1
Glib-based client library for accessing the online accounts database
local/libavc1394 0.5.4-4
A library to control A/V devices using the 1394ta AV/C commands.
local/libavif 0.11.1-1
Library for encoding and decoding .avif files
local/libavtp 0.2.0-1
Open source implementation of Audio Video Transport Protocol
local/libdbusmenu-glib 16.04.0-5
Library for passing menus over DBus
local/libmbim 1.28.2-1
MBIM modem protocol helper library
local/libmm-glib 1.20.4-1
ModemManager library
local/libpulse 16.1-3
A featureful, general-purpose sound server (client library)
local/libqmi 1.32.2-1
QMI modem protocol helper library
local/libqrtr-glib 1.2.2-2
Qualcomm IPC Router protocol helper library
local/nss-mdns 0.15.1-1
glibc plugin providing host name resolution via mDNS
local/poppler-glib 23.02.0-1
Poppler glib bindings
local/python-gobject 3.42.2-1
Python Bindings for GLib/GObject/GIO/GTK+
local/qtav 1.13.0-4
A cross-platform multimedia playback framework based on Qt and FFmpeg
local/taglib 1.13-1
A Library for reading and editing the meta-data of several popular audio formats
local/upower 1.90.0-3
Abstraction for enumerating power devices, listening to device events and querying history and statistics
local/vapoursynth R61-1
A video processing framework with the future in mind
local/vapoursynth-plugin-lsmashsource 1:A.5a-2
L-SMASH source plugin for Vapoursynth
Offline
So it's pulling in the correct libglib-2.0 library, and that lib has the symbol in question. Sounds like it's something specific to Vapoursynth or the plugin you're talking about. If libgobject was actually messed up, a whole lot of things would crash.
It's going to be a lot of output, but set LD_DEBUG=files, I bet it's finding a different libglib-2.0 somewhere.
Not likely. This is actually a fresh arch install. It wasn't until after the reinstall this happened.
Offline
Scimmia wrote:So it's pulling in the correct libglib-2.0 library, and that lib has the symbol in question. Sounds like it's something specific to Vapoursynth or the plugin you're talking about. If libgobject was actually messed up, a whole lot of things would crash.
It's going to be a lot of output, but set LD_DEBUG=files, I bet it's finding a different libglib-2.0 somewhere.
Not likely. This is actually a fresh arch install. It wasn't until after the reinstall this happened.
this looks interesting
/usr/lib/vapoursynth/libvslsmashsource.so: error: symbol lookup error: undefined symbol: VapourSynthPluginInit2 (fatal)
264229:
264229: file=/home/fletcher/.hybrid/vsplugins/libvslsmashsource.so [0]; dynamically loaded by /usr/lib/libvapoursynth.so [0]
264229: file=/home/fletcher/.hybrid/vsplugins/libvslsmashsource.so [0]; generating link map
264229: dynamic: 0x00007f339630b680 base: 0x00007f33962e8000 size: 0x0000000000024010
264229: entry: 0x00007f33962e8000 phdr: 0x00007f33962e8040 phnum: 11
264229:
264229:
264229: calling init: /home/fletcher/.hybrid/vsplugins/libvslsmashsource.so
264229:
264229: opening file=/home/fletcher/.hybrid/vsplugins/libvslsmashsource.so [0]; direct_opencount=1
264229:
264229: /home/fletcher/.hybrid/vsplugins/libvslsmashsource.so: error: symbol lookup error: undefined symbol: VapourSynthPluginInit2 (fatal)
264229:
264229: calling fini: /home/fletcher/.hybrid/vsplugins/libvslsmashsource.so [0]
Offline
Yes, you've a version of the smash plugin in your $HOME
Offline
So that wasn't the core issue. That was a leftover from something i tried before.
Turns out the git repo for libvslsmashsource I was using hadn't been updated to use Ffmpeg5.x. There is also something buggy with the repo version of libvslsmashsource. It wouldn't work at all, so i recompiled from source.
I used this Git repo:
Offline
@Wisperer
Can you explain and say more how fix this? thank you.
Offline