Phonon Plugin: Cound not load phonon backend plugin (undefined symbol: ffi_type_uint32)



  • Hey,

    I ve compield Qt for embedded with -glib -phonon -phonon-backend. My intention was to test the functionality with a small video application. But it dosn't work. With QT_DEBUG_PLUGINS it shows that there are maybe some problems with libffi - undefined symbol: Cannot load library ffi_type_uint32

    @QLibraryPrivate::loadPlugin failed on [...]/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /mnt/usb/D21/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: ([...]/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: undefined symbol: ffi_type_uint32)"
    WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded@

    For the phonon-plugin I crosscompiled:

    • zlib.1.2.6
    • libxml2-2.9.1
    • liboil-0.3.17
    • libffi-3.3.11
    • glib-2.37.5
    • check-0.9.10
    • gstreamer-0.10.36
    • gst-plugin-base-0.10.36

    I also changed ther libffi version but with no better result.

    The links of the libphonon_gstreamer.so (ldd) seems to be fine.

    It would be gread if someone has an idee.
    Thank you



  • Hey does anyone has any idea or hint?
    I don't know what I could do...

    Thanks again
    TRudolph


  • Lifetime Qt Champion

    Hi,

    Did you check that your target has the same library version as the one you cross-compiled ?



  • Hey, thank you,

    But sadly, I'm pretty sure they are the same library versions - cross compiled and on target.

    Tanks and Regards
    TRudolph


  • Lifetime Qt Champion

    You can try replacing the one on the target with the one you used to cross-compile Qt



  • Sorry for answering late, I had an exam yesterday....

    But sadly that didn't solved it. After following your advice ( same error), I also compiled Qt and my project agiain, copied librarys and Qt on my target, but that doesn't solved my problem either.

    Thanks again



  • For the crosscompilation of gstreamer/phonon I compield the libs I mention in the first post (zlib, gstreamer etc) in the folder /opt/phonon/
    I also copied this folder to my target. But if i delete that folder the same error appears.

    Do I need that folder on my target? (I think so)

    If so the error could be a wrong linking between the plugin and the gstream/phonon libs.
    Any idea how to fix that or how to analyse the linking?

    Thanks and regards
    TRudolph



  • sorry for the soliloquy.
    If I execute the plugin manual ./libphonon_gstreamer.so: Segmentation fault
    That shouldn't be right or?

    Thanks and regards
    TRudolph
    .


  • Lifetime Qt Champion

    Run ldd on your target on all your Qt libs/applications to see if there's something unusual



  • everything seems fine - nothing is unusual.
    Question, is the plugin (libphonon_gstreamer.so) executable? is the error Segmentation fault normal when I try to run the plugin ?

    Thanks again
    TRudolph


  • Lifetime Qt Champion

    A plugin is a library not an executable

    What does ldd return on your target ?



  • ok thank you.

    To get an better overview I changed some directory, the error says now: @QLibraryPrivate::loadPlugin failed on "/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so:@

    ldd example program
    @ libphonon.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libphonon.so.4 (0x40029000)
    libQtGui.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtGui.so.4 (0x40078000)
    libQtNetwork.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtNetwork.so.4 (0x409c2000)
    libQtCore.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtCore.so.4 (0x40ab8000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x40e0d000)
    libstdc++.so.6 => /lib/libstdc++.so.6 (0x40e2e000)
    libm.so.6 => /lib/libm.so.6 (0x40f00000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40fa3000)
    libc.so.6 => /lib/libc.so.6 (0x40fcc000)
    libdl.so.2 => /lib/libdl.so.2 (0x41109000)
    librt.so.1 => /lib/librt.so.1 (0x41116000)
    /lib/ld-linux.so.3 (0x40000000)@

    ldd libphonon.so.4
    @ libQtGui.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtGui.so.4 (0x40050000)
    libQtNetwork.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtNetwork.so.4 (0x4099a000)
    libQtCore.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtCore.so.4 (0x40a90000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x40de6000)
    libstdc++.so.6 => /lib/libstdc++.so.6 (0x40e07000)
    libm.so.6 => /lib/libm.so.6 (0x40eda000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40f7d000)
    libc.so.6 => /lib/libc.so.6 (0x40fa6000)
    libdl.so.2 => /lib/libdl.so.2 (0x410e3000)
    librt.so.1 => /lib/librt.so.1 (0x410f0000)
    /lib/ld-linux.so.3 (0x2a000000)@

    The other Qt libs are similar
    Plugin:
    ldd libphonon_gstreamer.so
    @ libphonon.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libphonon.so.4 (0x4036c000)
    libQtGui.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtGui.so.4 (0x403bb000)
    libQtNetwork.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtNetwork.so.4 (0x40d05000)
    libQtCore.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtCore.so.4 (0x40dfb000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x41151000)
    libstdc++.so.6 => /lib/libstdc++.so.6 (0x41173000)
    libm.so.6 => /lib/libm.so.6 (0x41245000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x412e8000)
    libc.so.6 => /lib/libc.so.6 (0x41311000)
    libdl.so.2 => /lib/libdl.so.2 (0x4144e000)
    librt.so.1 => /lib/librt.so.1 (0x4145c000)
    /lib/ld-linux.so.3 (0x2a000000)@

    Sorry for the long answer,
    Thanks and Regards
    TRudolph


  • Lifetime Qt Champion

    No problem, that's what I asked you :)

    Looks like all libraries can be found, can you run your application with the QT_DEBUG_PLUGINS environment variable set to 1 ?



  • The error I posted is already with the enviroment variable set to 1. The hole errors are below . But they are all the same.
    phon is the name of my program.

    @# export QT_DEBUG_PLUGINS=1
    QLibraryPrivate::loadPlugin failed on "/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: (/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: undefined symbol: ffi_type_uint32)"
    WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
    QLibraryPrivate::loadPlugin failed on "/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: (/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: undefined symbol: ffi_type_uint32)"
    WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
    QLibraryPrivate::loadPlugin failed on "/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: (/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: undefined symbol: ffi_type_uint32)"
    WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
    WARNING: Phonon::createPath: Cannot connect Phonon::MediaObject ( no objectName ) to Phonon::VideoWidget ( VideoWidget ).
    QLibraryPrivate::loadPlugin failed on "/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: (/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: undefined symbol: ffi_type_uint32)"
    WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
    @

    Thanks !!

    TRudolph


  • Lifetime Qt Champion

    Strange, let's take it the other way around: use your target's original libffi to cross-compile Qt with



  • i tried a lot of diffrents libs... but nothing became any better :(

    After that I changed the cross compiler, the porgram abort with Segmentation error , the fist time phonon is needed ... don't know if that is any better.
    I think that the phonon plugin is loaded but can not be executed?

    ( During the anyoing testing of different libs, I tried to run the movie example of the qt creator on my target ( no Phonon is needed). But sadly after the gif file is loaded there is a segmentation error, then the movie should start as well. Probably not related with the prolem above.....)

    Thanks and Regards
    TRudolph


  • Lifetime Qt Champion

    Segfault ? Did you run your program with the debugger to see where it's crashing ?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.