Arm-linux play media fail



  • The project show " defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer" "
    In ..../qt5/plugin/mediaservice/ there is only a libqtmedia_audioengine.so.
    what should I do.


  • Lifetime Qt Champion

    Hi,

    Did you build Qt yourself ?



  • @sgaist HI.
    Yes,I build Qt by myself


  • Lifetime Qt Champion

    Did you install all of gstreamer development packages ?



  • @sgaist I don't know, could you tell me how to check it out.
    should I download gstreamer from https://gstreamer.freedesktop.org/src/qt-gstreamer/?


  • Lifetime Qt Champion

    Use your distribution package manager for that or rather the one from your target device if you are cross-compiling.



  • @sgaist I don't quite understand.
    I use uart terminal to control the board.
    It just show me about the gst-

    root@imx6qsabresd:~# gst-
    gst-device-monitor-1.0  gst-launch-1.0          gst-typefind-1.0
    gst-discoverer-1.0      gst-play-1.0            
    gst-inspect-1.0         gst-stats-1.0           
    

    also I find gstreamer-1.0 in /usr/share/
    Could you please tell me how to do in detail?



  • @sgaist BTW, I can play the mp3 file by mplayer


  • Lifetime Qt Champion

    What distribution are you using on your device ?



  • @sgaist
    Sorry, I'm new to the embedded, I'm not sure what the distribution means. Is the core board on the device? It's NXP ARM 7 cortex-A9. Or the system version? It's Arm-linux kernel 4.1.15.


  • Lifetime Qt Champion

    I mean what Linux distribution are you running on the device ?



  • @SGaist
    Linux distribution refers to Ubuntu or CentOS? If yes, I just know I'm using Ubuntu 12.04 on VMWare on PC. Is NXP also a Linux distribution?
    I got this message by uname -a :

    root@imx6qsabresd:~# uname -a
    Linux imx6qsabresd 4.1.15 #9 SMP PREEMPT Fri Aug 23 10:07:29 CST 2019 armv7l armv7l armv7l GNU/Linux
    

    Is this what you need?


  • Lifetime Qt Champion

    No, NXP is not a Linux distribution, it's a semiconductor manufacturer.

    Do you have somewhere in the documentation provided some information about the software stack running on your device ?



  • @sgaist
    As far as I know, we can get the Linux distribution from /etc/issue.net or /proc/version. But the content is

    cat /etc/issue.net 
    Freescale i.MX Release Distro 4.1.15-2.1.0 %h
    
    cat /proc/version
    Linux version 4.1.15 (vmuser@Linux-host) (gcc version 5.3.0 (GCC) ) #9 SMP PREEMPT Fri Aug 23 10:07:29 CST 2019
    

    I think they had been changed by Freescale, so I can't know the original distribution. Or maybe I can get it from customer service or their forum.



  • @sgaist Now I want to cross-compile again, and I got a new ubuntu to do it following Building Qt 5 from Git. When configuring, it couldn't checking for GStreamer: GStreamer support cannot be enabled due to functionality tests!. What should I do?

    Maybe I know what Linux distribution the Freescale use, it's Yocto!


  • Lifetime Qt Champion

    You need the GStreamer development packages installed.



  • @sgaist I use QT_DEBUG_PLUGINS to see the output:

    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": 329218
    }
    Got keys from plugin meta data ("audiocapture")
    defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
    

    Does it mean it's running without some plugins?
    Also I ready to compile qt-gstreamer, cus I have installed GStreamer on Ubuntu bysudo apt-get install, but it doesn't work:

    checking for GStreamer 1.0... 
    Project WARNING: pkg-config disabled, can't check package existence
    Project ERROR: gstreamer-1.0 development package not found
    GStreamer 1.0 disabled.
    checking for GStreamer 0.10... 
    Project WARNING: pkg-config disabled, can't check package existence
    Project ERROR: gstreamer-0.10 development package not found
    GStreamer 0.10 disabled.
    GStreamer support cannot be enabled due to functionality tests!
    

    So I use sudo find / -name *gstreamer*-dev* to find the development packet:

    vmuser@Linux-host:~/qt-everywhere-opensource-src-5.6.2$ sudo find / -name *gstreamer*-dev*
    /var/cache/apt/archives/libgstreamer0.10-cil-dev_0.9.2-4_all.deb
    /var/cache/apt/archives/libgstreamer0.10-dev_0.10.36-1ubuntu1_amd64.deb
    /var/cache/apt/archives/libgstreamer-plugins-base0.10-dev_0.10.36-1ubuntu0.2_amd64.deb
    /var/cache/apt/archives/libgstreamer-vaapi0.10-dev_0.3.6-0ubuntu2_amd64.deb
    /var/cache/apt/archives/libgstreamer-plugins-bad0.10-dev_0.10.22.3-2ubuntu2.5_amd64.deb
    /var/lib/dpkg/info/libgstreamer0.10-dev.md5sums
    /var/lib/dpkg/info/libgstreamer0.10-dev.list
    /var/lib/dpkg/info/libgstreamer-plugins-bad0.10-dev.md5sums
    /var/lib/dpkg/info/libgstreamer-plugins-base0.10-dev.list
    /var/lib/dpkg/info/libgstreamer0.10-cil-dev.list
    /var/lib/dpkg/info/libgstreamer-vaapi0.10-dev.md5sums
    /var/lib/dpkg/info/libgstreamer-vaapi0.10-dev.list
    /var/lib/dpkg/info/libgstreamer-plugins-bad0.10-dev.list
    /var/lib/dpkg/info/libgstreamer-plugins-base0.10-dev.md5sums
    /var/lib/dpkg/info/libgstreamer0.10-cil-dev.md5sums
    /usr/share/doc/libgstreamer-plugins-bad0.10-dev
    /usr/share/doc/libgstreamer-plugins-base0.10-dev
    /usr/share/doc/libgstreamer0.10-cil-dev
    /usr/share/doc/libgstreamer-vaapi0.10-dev
    /usr/share/doc/libgstreamer0.10-dev
    

    , and I add all these path into $PATH, it also doesn't work
    (Project WARNING: pkg-config disabled, can't check package existence Project ERROR: gstreamer-1.0 development package not found)
    .

    Or should I find the code to cross-compiler the GStreamer and export PKG_CONFIG_PATH for configure?

    Thank you so much for your support~



  • This post is deleted!

  • Lifetime Qt Champion

    QtGStreamer is not an official Qt module and unrelated to QtMultimedia.

    You should rather use GStreamer 1.0.

    Are you sure these are installed and not just downloaded ?



  • @sgaist Ok, a bit messy now, let's tidy up first.
    I only use QMediaPlayer to play a music.
    On Ubuntu(VMWare), it's working without any error message.
    But on Arm-Linux(yocto, provided by NXP, maybe), it doesn't work with error message:
    defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
    If Qt Multimedia doesn't relate to Qt GStreamer but the basic GStreamer, how can I check whether the device support Qt Multimedia or not, cus I can play mp3 by mplayer, I can find the basic GStreamer(gstreamer 1.0 )on the device.
    Or do you have other suggestion to play music with adjusting volume and schedule, cus QSound can not adjust these attributes; QAudioOutput must set any other attributes(sample rate and channel); QSoundEffect can not adjust schedule.
    BTW, could QMediaPlayer play the wav file?
    Also, I ran the example /usr/share/qt5/examples/multimedia/imxplayer/imxplayer,it 's a Qt5 demo media palyer integrated with freescale Gstreamer 1.0 framework for X11 graphics.

    root@imx6qsabresd:~# /usr/share/qt5/examples/multimedia/imxplayer/imxplayer 
    ** Message: GStreamer version 1.8.1
    display(/dev/fb0) resolution is (1280x800).
    ====== OVERLAYSINK: 4.1.6 build on Jun 20 2017 08:56:25. ======
    ** Message: videosink is overlay
    

    It can find the basic GStreamer.


  • Lifetime Qt Champion

    If it's yocto based, then there's likely packages that you can enable in the recipe.


 

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