teltek / gst-plugin-ndi

GStreamer NDI Plugin for Linux
GNU Lesser General Public License v2.1
154 stars 27 forks source link

how to handle plugin error on different kernel/docker host #69

Closed f1-outsourcing closed 2 years ago

f1-outsourcing commented 2 years ago

I have centos8 docker image that builds gstreamer,base,good,bad from source plus the gstreamer-ndi plugin. Strange thing is, that if I run the docker image on a centos7 host with a 3.10 kernel gst-inspect is fine:

[/]# gst-inspect-1.0 /usr/local/lib64/gstreamer-1.0/libgstndi.so
Plugin Details:
  Name                     ndi
  Description              NewTek NDI Plugin
  Filename                 /usr/local/lib64/gstreamer-1.0/libgstndi.so
  Version                  1.0.0-160571e
  License                  LGPL
  Source module            gst-plugin-ndi
  Source release date      2021-08-17
  Binary package           gst-plugin-ndi
  Origin URL               https://github.com/teltek/gst-plugin-ndi

  ndisink: NDI Sink
  ndisinkcombiner: NDI Sink Combiner
  ndiaudiosrc: NewTek NDI Audio Source
  ndivideosrc: NewTek NDI Video Source
  ndideviceprovider: NewTek NDI Device Provider

  5 features:
  +-- 4 elements
  +-- 1 device providers

But when I move the centos8 docker image to a centos8 host, and execute the same I am getting this error

[]# ldconfig
[]# gst-inspect-1.0 /usr/local/lib64/gstreamer-1.0/libgstndi.so
0:00:00.033940037  1886      0x21fa960 ERROR     GST_PLUGIN_LOADING src/lib.rs:71:gstndi::plugin_desc: Failed to register plugin: Cannot initialize NDI
Could not load plugin file: File "/usr/local/lib64/gstreamer-1.0/libgstndi.so" appears to be a GStreamer plugin, but it failed to initialize

How should I debug this?

Rebuilding a new image on the centos8 host does not resolve this. starting the container with --cap-add SYS_ADMIN does not resolve this.

f1-outsourcing commented 2 years ago

Was related to having a vm that was not gettting ssse3 etc from the host environment