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.


Log in to reply