Skip to main content

Tech

I get crash in ndir:audio function of libndi.so on Ubuntu Linux

I get crash in ndir:audio function of libndi.so on Ubuntu Linux

by Arda Tekin - Number of replies: 2

Hello,

I've built a simple NDI receiver application on Linux (Ubuntu 22.04).

The ndi library (version 6.1.1) is linked to my QT MainWindow application. NDI library inits and discovers the 1 NDI source where NDI video+audio streaming sent from "NDI HX Camera" Andoid application.

However the application crashes when NDIlib_recv_capture_v3 is called second time. (First call had returned NDIlib_frame_type_status_change event)   

The crash comes from ndir:audio function of libndi.so when I check the stack trace. I'm not able to move forward because of this issue. Can anybody help me please.

Please let me know if you need additional information.

Regards,
Arda

In reply to Arda Tekin

Re: I get crash in ndir:audio function of libndi.so on Ubuntu Linux

by Arda Tekin -
Some other details about the issue,

There seems to be no problem with loading dependencies (especially libavahi-common.so.3 and libavahi-client.so.3 as mentioned in SDK documentation )

NDIViewer/build$ ldd ndiViewer
linux-vdso.so.1 (0x00007c50913b7000)
libQt6Widgets.so.6 => /home/arda/Qt/6.8.2/gcc_64/lib/libQt6Widgets.so.6 (0x00007c5090a00000)
libndi.so.6 => /home/arda/PROJECTS/NDIViewer/NDI/lib/x86_64-linux-gnu/libndi.so.6 (0x00007c508ec00000)
libQt6Core.so.6 => /home/arda/Qt/6.8.2/gcc_64/lib/libQt6Core.so.6 (0x00007c508e400000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007c508e000000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007c5091366000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007c508dc00000)
libQt6Gui.so.6 => /home/arda/Qt/6.8.2/gcc_64/lib/libQt6Gui.so.6 (0x00007c508d000000)
libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007c50912dd000)
libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007c5091294000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007c509128f000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007c5090917000)
libavahi-common.so.3 => /lib/x86_64-linux-gnu/libavahi-common.so.3 (0x00007c509127f000)
libavahi-client.so.3 => /lib/x86_64-linux-gnu/libavahi-client.so.3 (0x00007c509126c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007c5091267000)
/lib64/ld-linux-x86-64.so.2 (0x00007c50913b9000)
libicui18n.so.73 => /home/arda/Qt/6.8.2/gcc_64/lib/libicui18n.so.73 (0x00007c508cc00000)
libicuuc.so.73 => /home/arda/Qt/6.8.2/gcc_64/lib/libicuuc.so.73 (0x00007c508c800000)
libicudata.so.73 => /home/arda/Qt/6.8.2/gcc_64/lib/libicudata.so.73 (0x00007c508a800000)
libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007c508eb46000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007c508e2b7000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007c5091249000)
libgthread-2.0.so.0 => /lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007c5091244000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007c509123f000)
libEGL.so.1 => /lib/x86_64-linux-gnu/libEGL.so.1 (0x00007c509122b000)
libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007c50911da000)
libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007c508dec3000)
libQt6DBus.so.6 => /home/arda/Qt/6.8.2/gcc_64/lib/libQt6DBus.so.6 (0x00007c508db2e000)
libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007c508cb34000)
libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007c508ca7c000)
libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007c50908e4000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007c508eaf7000)
libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007c508de29000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007c50911ad000)
libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007c50908b9000)
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007c50908a5000)
libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007c508e27f000)
libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007c508eae9000)
libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007c508c720000)
libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007c508eae3000)
libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007c508de21000)
libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007c508db0b000)
libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007c508de14000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007c508a6b8000)
liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007c508dae9000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007c508dab7000)
libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007c508daa1000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007c508cfdb000)
libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007c508cfcc000)


Client is sending video in UDP mode.
generic-segmentation-offload: on
kernel version: 6.11.0-17-generic
$ gcc --version: gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
g++ --version: g++ (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0

Any help appreciated.
In reply to Arda Tekin

Re: I get crash in ndir:audio function of libndi.so on Ubuntu Linux

by Arda Tekin -
I decided to compile and run NDILib_Recv example application of the SDK for the same scenario. It is also crashing in the ndir:audio function of libndi.so.

Interestingly, noticed that if I stream the data from VLC, I don't encounter any crash issue neither on SDK example code or my application (actually they are calling same functions according to sample application.. )

This means it is clear that there is a bug in libndi.so 6.1.1 version, when receiving NDI streaming data of "NDI HX Camera" Android application. The crash needs to be fixed by SDK linux developers.

Arda