What's the meaning of 'blacklisted' on GStreamer?

后端 未结 4 1092
执念已碎
执念已碎 2021-02-19 19:41

I\'m trying to cross-compile GStreamer. Version is 1.2.3. Host PC\'s OS is x86 linux and Target system\'s OS is MIPSEL linux OS.

I succeeded to compile gstreamer and pl

相关标签:
4条回答
  • 2021-02-19 20:18

    if you want to know for sure why these plugins are blacklisted, you can remove "registry.dat" (run locate to find out its location), then rerun gst-inspect , the plugins will be examined once again and the reason for blacklisting them should be printed.

    There can be several reasons why they are blacklisted, if you do this you should find them out.

    Alternatively, you can also run gst-inspect location_of_the_dynamic_library.so

    0 讨论(0)
  • 2021-02-19 20:24

    I found the reason. It's GLIB, not GStreamer.

    To build GLIB for mipsel, I should set glib_cv_uscore=no. It's up to your embedded device. So please check your target hardware's CPU specification. So I made the build script for GLIB like below.

    #Glib 2.42.1
    wget ftp://ftp.gnome.org/pub/gnome/sources/glib/2.42/$GLIB.tar.xz
    tar xf $GLIB.tar.xz 
    cd $GLIB
    
    #Build for MIPS
    echo "ac_cv_func_posix_getgrgid_r=yes" >  mips.cache
    echo "ac_cv_func_posix_getpwuid_r=yes" >>  mips.cache
    echo "glib_cv_stack_grows=no" >> mips.cache
    echo "glib_cv_uscore=no" >>mips.cache
    ./configure --prefix=$INSTALL_PATH --host=$HOST  --cache-file=mips.cache --build=$BUILD 
    make
    make install 
    cd ..
    

    I got the clue from here.

    0 讨论(0)
  • 2021-02-19 20:28

    For gstreamer 1.8 gst-inspect-1.0 need to be launcged with additional GST_DEBUG=4 env var to view detailed reason (incompatible version in my case):

    GST_DEBUG=4 gst-inspect-1.0  /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgst_some_plugin.so
    
    ...15-20 lines with non-interesting details...
    
    0:00:00.035553207  4287     0x29f93c00 WARN      GST_PLUGIN_LOADING gstplugin.c:485:gst_plugin_register_func: plugin "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgst_some_plugin.so" has incompatible version (plugin: 1.10, gst: 1,8), not loading
    Could not load plugin file: File "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgst_some_plugin.so" appears to be a GStreamer plugin, but it failed to initialize
    
    0 讨论(0)
  • 2021-02-19 20:30

    In my case it was blacklisted as I have built kvssink which have dependencies on other libraries. And GStreamer doesn't found them.

    It was like that:

    gst-inspect-1.0 kvssink
    
    (gst-plugin-scanner:22): GStreamer-WARNING **: 13:07:28.097: Failed to load plugin '/root/bin/producer/libgstkvssink.so': libproducer.so: cannot open shared object file: No such file or directory
    (gst-plugin-scanner:22): GStreamer-WARNING **: 13:07:28.204: Failed to load plugin '/root/bin/producer/libproducer.so': libcproducer.so: cannot open shared object file: No such file or directory
    

    To confirm libraries issue I've used ldd

    ldd libgstkvssink.so
    

    Which will list all dependencies with paths were they may be found in system. my libraries libcproducer.so and libcproducer.so were not found.

    Based on path pritned for other visible libraries

        linux-vdso.so.1 (0x00007ffc3c1a6000)
    libgstreamer-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0 (0x00007f064d24d000)
    

    I just copied missing libraries to /usr/lib/x86_64-linux-gnu/ In my case it was:

    cp libcproducer.so  /usr/lib/x86_64-linux-gnu/
    cp libproducer.so /usr/lib/x86_64-linux-gnu/
    

    And than:

    gst-inspect-1.0 kvssink
    

    prints plugin details.

    I've resolved that thanks to information in this thread: Linking against external libraries in gstreamer plugin using autotools

    0 讨论(0)
提交回复
热议问题