SirLynix / obs-kinect

OBS Plugin to use a Kinect (all models supported) in OBS (and setup a virtual green screen based on depth and/or body detection).
GNU General Public License v2.0
425 stars 29 forks source link

Undefined symbol in obs-kinect-freenect.so #77

Closed hollowshiroyuki closed 6 months ago

hollowshiroyuki commented 1 year ago

Hi !

I can't get my Kinect 360 to work on Archlinux.

OBS crashes with this message in the logs :

obs: symbol lookup error: ./obs-kinect-freenect.so: undefined symbol: freenect_convert_packed_to_16bit

The libfreenect seems to work there is those messages in the logs too :

info: [obs-kinect] [freenect] freenect info: [Stream 80] Negotiated packet size 1920

Attempted path: share/obs/obs-studio/images/overflow.png
Attempted path: /usr/share/obs/obs-studio/images/overflow.png
info: [obs-kinect] [freenect] freenect info: [Stream 70] Negotiated packet size 1920

info: adding 21 milliseconds of audio buffering, total audio buffering is now 21 milliseconds (source: Desktop Audio)

I'm running OBS from the command line in the plugin directory so I don't have to use LD_LIBRARY_PATH for now.

Full Log

``` debug: Found portal inhibitor Attempted path: share/obs/obs-studio/locale/en-US.ini Attempted path: /usr/share/obs/obs-studio/locale/en-US.ini Attempted path: share/obs/obs-studio/locale.ini Attempted path: /usr/share/obs/obs-studio/locale.ini Attempted path: share/obs/obs-studio/themes/Yami.qss Attempted path: /usr/share/obs/obs-studio/themes/Yami.qss info: Platform: Wayland info: CPU Name: AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx info: CPU Speed: 3638.379MHz info: Physical Cores: 4, Logical Cores: 8 info: Physical Memory: 6872MB Total, 1466MB Free info: Kernel Version: Linux 6.1.3-arch1-1 info: Distribution: "Arch Linux" Unknown info: Session Type: wayland info: Qt Version: 6.4.2 (runtime), 6.4.1 (compiled) info: Portable mode: false Attempted path: share/obs/obs-studio/themes/Dark/no_sources.svg Attempted path: /usr/share/obs/obs-studio/themes/Dark/no_sources.svg qt.core.qmetaobject.connectslotsbyname: QMetaObject::connectSlotsByName: No matching signal for on_tbar_position_valueChanged(int) qt.core.qmetaobject.connectslotsbyname: QMetaObject::connectSlotsByName: No matching signal for on_actionShowTransitionProperties_triggered() qt.core.qmetaobject.connectslotsbyname: QMetaObject::connectSlotsByName: No matching signal for on_actionHideTransitionProperties_triggered() info: OBS 28.1.2-2 (linux) info: --------------------------------- info: --------------------------------- info: audio settings reset: samples per sec: 48000 speakers: 2 max buffering: 960 milliseconds buffering type: dynamically increasing info: --------------------------------- info: Initializing OpenGL... info: Using EGL/Wayland info: Initialized EGL 1.5 info: Loading up OpenGL on adapter AMD AMD Radeon Vega 8 Graphics (raven, LLVM 14.0.6, DRM 3.49, 6.1.3-arch1-1) info: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 22.3.2, shading language 4.60 info: --------------------------------- info: video settings reset: base resolution: 1920x1080 output resolution: 1280x720 downscale filter: Bicubic fps: 30/1 format: NV12 YUV mode: Rec. 709/Partial info: NV12 texture support not available info: P010 texture support not available info: Audio monitoring device: name: Default id: default info: --------------------------------- warning: Failed to load 'en-US' text for module: 'decklink-captions.so' warning: Failed to load 'en-US' text for module: 'decklink-output-ui.so' libDeckLinkAPI.so: cannot open shared object file: No such file or directory warning: A DeckLink iterator could not be created. The DeckLink drivers may not be installed warning: Failed to initialize module 'decklink.so' info: [pipewire] Available captures: info: [pipewire] - Desktop capture warning: v4l2loopback not installed, virtual camera disabled info: FFMPEG VAAPI supported error: os_dlopen(obs-kinect-azuresdk->obs-kinect-azuresdk.so): obs-kinect-azuresdk.so: cannot open shared object file: No such file or directory 0000000000000000 DO *UND* 0000000000000000 (CXXABI_1.3) _ZTVN10__cxxabiv117__class_type_infoE error: os_dlopen(./obs-kinect-azuresdk->./obs-kinect-azuresdk.so): libk4a.so.1.4: cannot open shared object file: No such file or directory 0000000000000000 DF *UND* 0000000000000000 os_dlclose error: os_dlopen(/app/plugins/lib/obs-plugins/obs-kinect-azuresdk->/app/plugins/lib/obs-plugins/obs-kinect-azuresdk.so): /app/plugins/lib/obs-plugins/obs-kinect-azuresdk.so: cannot open shared object file: No such file or directory000000000000 DF *UND* 0000000000000000 gs_draw_sprite error: os_dlopen(obs-kinect-freenect->obs-kinect-freenect.so): obs-kinect-freenect.so: cannot open shared object file: No such file or directory error: os_dlopen(obs-kinect-freenect2->obs-kinect-freenect2.so): obs-kinect-freenect2.so: cannot open shared object file: No such file or directory error: os_dlopen(./obs-kinect-freenect2->./obs-kinect-freenect2.so): libfreenect2.so.0.2: cannot open shared object file: No such file or directory error: os_dlopen(/app/plugins/lib/obs-plugins/obs-kinect-freenect2->/app/plugins/lib/obs-plugins/obs-kinect-freenect2.so): /app/plugins/lib/obs-plugins/obs-kinect-freenect2.so: cannot open shared object file: No such file or directory error: os_dlopen(obs-kinect-sdk10->obs-kinect-sdk10.so): obs-kinect-sdk10.so: cannot open shared object file: No such file or directory error: os_dlopen(./obs-kinect-sdk10->./obs-kinect-sdk10.so): ./obs-kinect-sdk10.so: cannot open shared object file: No such file or directory error: os_dlopen(/app/plugins/lib/obs-plugins/obs-kinect-sdk10->/app/plugins/lib/obs-plugins/obs-kinect-sdk10.so): /app/plugins/lib/obs-plugins/obs-kinect-sdk10.so: cannot open shared object file: No such file or directory error: os_dlopen(obs-kinect-sdk20->obs-kinect-sdk20.so): obs-kinect-sdk20.so: cannot open shared object file: No such file or directory error: os_dlopen(./obs-kinect-sdk20->./obs-kinect-sdk20.so): ./obs-kinect-sdk20.so: cannot open shared object file: No such file or directory error: os_dlopen(/app/plugins/lib/obs-plugins/obs-kinect-sdk20->/app/plugins/lib/obs-plugins/obs-kinect-sdk20.so): /app/plugins/lib/obs-plugins/obs-kinect-sdk20.so: cannot open shared object file: No such file or directory info: --------------------------------- info: Loaded Modules: info: obs-kinect.so info: text-freetype2.so info: rtmp-services.so info: obs-x264.so info: obs-vst.so info: obs-transitions.so info: obs-outputs.so info: obs-libfdk.so info: obs-filters.so info: obs-ffmpeg.so info: linux-v4l2.so info: linux-pulseaudio.so info: linux-pipewire.so info: linux-jack.so info: linux-capture.so info: linux-alsa.so info: image-source.so info: frontend-tools.so info: decklink-output-ui.so info: decklink-captions.so info: --------------------------------- info: ==== Startup complete =============================================== info: All scene data cleared info: ------------------------------------------------ info: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.63) 15.0.0' info: pulse-input: Audio format: s32le, 48000 Hz, 2 channels info: pulse-input: Started recording from 'alsa_output.pci-0000_03_00.6.analog-stereo.monitor' (default) info: [Loaded global audio device]: 'Desktop Audio' info: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.63) 15.0.0' info: pulse-input: Audio format: s32le, 48000 Hz, 2 channels info: pulse-input: Started recording from 'alsa_input.pci-0000_03_00.6.analog-stereo' (default) info: [Loaded global audio device]: 'Mic/Aux' info: Switched to scene 'Scene' info: ------------------------------------------------ info: Loaded scenes: info: - scene 'Scene': info: - source: 'Kinect' (kinect_source) info: ------------------------------------------------ info: [obs-kinect] [freenect] freenect info: [Stream 80] Negotiated packet size 1920 Attempted path: share/obs/obs-studio/images/overflow.png Attempted path: /usr/share/obs/obs-studio/images/overflow.png info: [obs-kinect] [freenect] freenect info: [Stream 70] Negotiated packet size 1920 info: adding 21 milliseconds of audio buffering, total audio buffering is now 21 milliseconds (source: Desktop Audio) obs: symbol lookup error: ./obs-kinect-freenect.so: undefined symbol: freenect_convert_packed_to_16bit ```

Thanks for your assistance !

SirLynix commented 1 year ago

Hi,

This is because the lib currently need a custom version of libfreenect which adds the missing function.

You can find it here: https://github.com/SirLynix/libfreenect

With same build instructions as the default lib. You can either install it on your system or put it next to obs-kinect-freenect.so (should work without touching LD_LIBRARY_PATH)