Planned maintenance has been done but it did not solve the problem. So work will continue on this and a new time for trying updates will be announced asap.

QMediaPlayer ERROR defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer



  • Hi @all,

    I have an application create by QT (Qt 5.6.2 version).
    I cross compile this application for a Zynq MPSOC.

    I use this in a filesystem create by Petalinux 2018.2.

    When I invoke QMediaPlayer class I have the "defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer" error and video doest'n work.

    In my rootfs_config I have enabled gstreamer qt-multimedia... and so on...

    But it doesn't work.

    Someone have the list of package needs to watch the video?

    Where am I wrong?

    Thanks for your help

    Luisa



  • setting export QT_DEBUG_PLUGINS=1
    I have the message

    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5/plugins/mediaservice" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/mediaservice/libqtmedia_audioengine.so"
    Found metadata in lib /usr/lib/qt5/plugins/mediaservice/libqtmedia_audioengine.so, metadata=
    {
    "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
    "MetaData": {
    "Keys": [
    "audiocapture"
    ],
    "Services": [
    "org.qt-project.qt.audiosource"
    ]
    },
    "className": "AudioCaptureServicePlugin",
    "debug": false,
    "version": 329988
    }

    Got keys from plugin meta data ("audiocapture")
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/mediaservice" ...
    defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
    ...

    In /usr/lib/qt5/plugins/mediaservice/ I have only this file

    libqtmedia_audioengine.so

    It's correct?

    I think no...


  • Lifetime Qt Champion

    Hi,

    Did you cross-compile your Qt version yourself ?



  • @SGaist

    Yes I configure my QTCreator to cross compile for Zynq. My app work well but not for video.

    At a later time I would like to compile my application whit petalinux 2018.2 but I haven't found updated instructions for the version I use. But this is another problem..

    Thanks for your interest

    Luisa

    PS If you think you could help me compile from petalinux can you tell me the instructions to do it?


  • Lifetime Qt Champion

    Then do you have the GStreamer development libraries for your target ?



  • sorry for my absence ...
    in petalinux what is the exact package to add?


  • Lifetime Qt Champion

    What is petalinux ?



  • Sorry.
    Petalinux is a distribution to creteate kernel boot and so on...

    This is ma config file. Can you check if the 'GStreamer development libraries' is present?

    Thank you very much. I am going through hard times.

    Luisa

    gst-player

    CONFIG_gst-player=y
    CONFIG_gst-player-dev=y

    CONFIG_gst-player-dbg is not set

    gst-plugins-base

    CONFIG_gst-plugins-base=y
    CONFIG_gst-plugins-base-meta=y

    CONFIG_gst-plugins-base-dbg is not set

    CONFIG_gst-plugins-base-dev=y
    CONFIG_gst-plugins-base-apps=y

    gst-plugins-good

    CONFIG_gst-plugins-good=y
    CONFIG_gst-plugins-good-dev=y

    CONFIG_gst-plugins-good-dbg is not set

    CONFIG_gst-plugins-good-meta=y

    gstreamer1.0-meta-base

    CONFIG_gstreamer1.0-meta-base=y
    CONFIG_gstreamer1.0-meta-video=y

    CONFIG_gstreamer1.0-meta-video-dbg is not set

    CONFIG_gstreamer1.0-meta-debug-dev=y
    CONFIG_gstreamer1.0-meta-x11-base-dev=y

    CONFIG_gstreamer1.0-meta-audio-dbg is not set

    CONFIG_gstreamer1.0-meta-audio=y
    CONFIG_gstreamer1.0-meta-x11-base=y
    CONFIG_gstreamer1.0-meta-video-dev=y

    CONFIG_gstreamer1.0-meta-x11-base-dbg is not set

    CONFIG_gstreamer1.0-meta-base-dev=y

    CONFIG_gstreamer1.0-meta-base-dbg is not set

    CONFIG_gstreamer1.0-meta-debug=y
    CONFIG_gstreamer1.0-meta-audio-dev=y

    CONFIG_gstreamer1.0-meta-debug-dbg is not set

    gstreamer1.0-plugins-bad

    CONFIG_gstreamer1.0-plugins-bad=y
    CONFIG_gstreamer1.0-plugins-bad-meta=y
    CONFIG_gstreamer1.0-plugins-bad-dev=y

    CONFIG_gstreamer1.0-plugins-bad-dbg is not set

    gstreamer1.0-plugins-base

    CONFIG_gstreamer1.0-plugins-base=y
    CONFIG_gstreamer1.0-plugins-base-apps=y
    CONFIG_gstreamer1.0-plugins-base-dev=y

    CONFIG_gstreamer1.0-plugins-base-dbg is not set

    CONFIG_gstreamer1.0-plugins-base-meta=y

    gstreamer1.0-plugins-good

    CONFIG_gstreamer1.0-plugins-good=y
    CONFIG_gstreamer1.0-plugins-good-dev=y

    CONFIG_gstreamer1.0-plugins-good-dbg is not set

    CONFIG_gstreamer1.0-plugins-good-meta=y


    gstreamer

    CONFIG_gstreamer=y
    CONFIG_gstreamer-dbg=y
    CONFIG_gstreamer-dev=y

    gstreamer1.0

    CONFIG_gstreamer1.0=y
    CONFIG_gstreamer1.0-dev=y
    CONFIG_gstreamer1.0-bash-completion=y
    CONFIG_gstreamer1.0-dbg=y

    gstreamer1.0-omx

    CONFIG_gstreamer1.0-omx=y
    CONFIG_gstreamer1.0-omx-dbg=y
    CONFIG_gstreamer1.0-omx-dev=y

    gstreamer1.0-rtsp-server

    CONFIG_gstreamer1.0-rtsp-server=y
    CONFIG_gstreamer1.0-rtsp-server-dbg=y
    CONFIG_gstreamer1.0-rtsp-server-dev=y
    CONFIG_gstreamer1.0-rtsp-server-meta=y


    packagegroup-petalinux-gstreamer

    CONFIG_packagegroup-petalinux-gstreamer=y
    CONFIG_packagegroup-petalinux-gstreamer-dev=y

    CONFIG_packagegroup-petalinux-gstreamer-dbg is not set



  • Lifetime Qt Champion

    You should check the Qt configuration logs. There might be something that is not found thus your issue of missing plugins.



  • Where can I find it?


  • Lifetime Qt Champion

    As silly as it may sound, in the folder where Qt was built using your system.



  • Found it

    cat ./build/tmp/work/aarch64-xilinx-linux/qtmultimedia/5.9.4+gitAUTOINC+d83467be15-r0/temp/log.do_configure.1884

    DEBUG: Executing shell function qmake5_base_preconfigure
    DEBUG: Shell function qmake5_base_preconfigure finished
    DEBUG: Executing shell function do_configure
    NOTE: qmake prevar substitution: ' '
    NOTE: qmake configure substitution: ' -alsa -no-feature-openal -pulseaudio -no-gstreamer'
    Info: creating stash file /home/posani/PetaLinux2018.2/NOX/build/tmp/work/aarch64-xilinx-linux/qtmultimedia/5.9.4+gitAUTOINC+d83467be15-r0/build/.qmake.stash
    Info: creating cache file /home/posani/PetaLinux2018.2/NOX/build/tmp/work/aarch64-xilinx-linux/qtmultimedia/5.9.4+gitAUTOINC+d83467be15-r0/build/.qmake.cache

    Running configuration tests...
    Checking for ALSA... yes
    Checking for Vivante GPU... no
    Checking for Video for Linux... yes
    Checking for PulseAudio >= 0.9.10... yes
    Checking for libresourceqt5... no
    Done running configuration tests.

    Configure summary:

    Qt Multimedia:
    ALSA ................................... yes
    GStreamer 1.0 .......................... no
    GStreamer 0.10 ......................... no
    Video for Linux ........................ yes
    OpenAL ................................. no
    PulseAudio ............................. yes
    Resource Policy (libresourceqt5) ....... no
    Windows Audio Services ................. no
    DirectShow ............................. no
    Windows Media Foundation ............... no

    Qt is now configured for building. Just run 'make'.
    Once everything is built, you must run 'make install'.
    Qt will be installed into '/home/posani/PetaLinux2018.2/NOX/build/tmp/work/aarch64-xilinx-linux/qtmultimedia/5.9.4+gitAUTOINC+d83467be15-r0/recipe-sysroot/usr'.

    Prior to reconfiguration, make sure you remove any leftovers from
    the previous build.

    DEBUG: Shell function do_configure finished
    DEBUG: Executing python function do_qa_configure
    DEBUG: Python function do_qa_configure finished
    DEBUG: Executing shell function qmake5_base_postconfigure
    DEBUG: Shell function qmake5_base_postconfigure finished

    In effect my qtmultimedia doesn't see gstreamer..

    where did I go wrong?


  • Lifetime Qt Champion

    Check the test build logs to see what fails with the QtMultimedia module.

    If you add the -v option to your configure call you should see it on the console already.



  • QT multimedia did not configure gstreamer among its packages.
    I have modified the configuration file adding

    @PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}
    ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}
    gstreamer010 " @

    and now it no longer gives me the error.
    If I want to play h264 files instead it gives me the error:

    Warning: "No decoder available for type 'video/x-h264, stream-format=(string)avc, width=(int)640, height=(int)512, parsed=(boolean)true, align....

    and the video doesn't start...

    I'm discouraged..

    I looked for solutions to my problem but nothing seems to work.
    Grazie per il tuo aiuto

    Luisa


  • Lifetime Qt Champion

    Did you install the gstreamer plugins packages ?



  • Yes I install all gstreamer plugins packages.

    I try to install gstreamer 1.0 plugins packages.

    Unfortunately the situation does not change.
    I also installed x264.
    Same story...

    What could I try to do?


  • Lifetime Qt Champion

    Can you play that file from the command line using gstreamer directly ?



  • The solution to my problem was to insert ugly gst plugins, forcing the commercial license.

    Thanks for your help



  • But I have another problem. When I try to view a video I have the following error

    Warning: "Failed to connect: Connection refused"
    GET_DMA_PHY: Invalid argument
    Failed to import fd : 1973231776
    myprogram: base/omx_codec/omx_codec.cpp:1275: void Codec::TreatFillBufferCommand(Task*): Assertion `success' failed.

    and the software crashes.

    Has anyone solved a problem similar to mine?
    Thanks in advance

    Luisa


  • Lifetime Qt Champion

    Again: is it working on the command line with gstreamer directly ?



  • I am working with an embedded system so gstreamer could not throw the output on the screen.
    I use the QMediaPlayer class.
    The instruction that fails is the

    myPlayer-> setMedia (qurl :: fromLocalFile (video2show.at (0)));

    Small and low resolution videos work very badly. Larger videos cause the crash.

    Are there any environment variables to set to allocate more resources to the running program?

    Thanks in advance

    Luisa


  • Lifetime Qt Champion

    I don't see the relation between an embedded system and the fact that streamer output on screen.

    What is that device ?
    What are its specifications ?


Log in to reply