imxplayer is a binary component in the imx-qtapplications recipe in the latest Yocto BSP 5.4.70_2.3.0 and I have been unsuccessful in tracking down the source code. Could you please point me to the source code?
I'm trying debug a video playback performance issue when using xwayland on the imx6qsabresd. QMediaPlayer performance is around 3 fps when using xwayland on imx6qsabresd. Using gplay, gst-play-1.0, and imxplayer all work correctly at 30 fps. I would be interested to see what imxplayer is doing behind the scenes to get better performance through QT.
Interestly, objdump on imxplayer seems to indicate that it is not using QMediaPlayer, but I would like to take a look at the source code to confirm.
Thank you for the reply Joan. I checked that one and it looks like it uses GTK directly instead of QT, so there confusingly appears to be two imxplayer test applications.
The source I am looking for is for the QT imxplayer which is part of the imx-qtapplications recipe and is installed at the path /usr/share/qt5/examples/multimedia/imxplayer/imxplayer. The build path is imx-qtapplications-1.2.2-aarch32/usr/share/qt5/examples/multimedia/imxplayer/imxplayer.
Here is the contents of the SCR:
imx-qtapplications/1.2.2-aarch32-r0/imx-qtapplications-1.2.2-aarch32$ cat SCR-imx-qtapplications.txt NXP Software Content Register -------------------------------------------- Package: imx-qtapplications-*.bin Outgoing License: LA_OPT_BASE_LICENSE License File: COPYING Package Category: Multimedia Type of content: Binaries Description and comments: i.MX QT multimedia player application Release Location: i.MX Yocto Project mirror Origin: NXP (proprietary) Freescale Semiconductor, Inc. (proprietary) --------------------------------------------
do you mind sending the imxplayer picture to me? let me check what imxplayer you mean look like?
in fact you can find ../git/doc/design, which shows the imxplayer uses qt as GUI, if you need the source code of qtmultimedia, you can find /tmp/work/cortexa53-crypto-poky-linux/qtmultimedia, it seems this imxplayer you add by yourself, right? how did you get the imxplayer? add it in the local.conf, then build the bsp? if yes, maybe you can try to find the path of /tmp/work/cortexa53-crypto-poky-linux/qtmultimedia
The imxplayer utility just plays video full-screen, so a screen shot will just show a frame of the test video.
imxplayer is enabled by the layer sources/meta-imx/meta-sdk/dynamic-layers/qt5-layer/recipes-qt/qt5/imx-qtapplications_1.2.2-aarch32.bb and downloaded by sources/meta-imx/meta-sdk/dynamic-layers/qt5-layer/recipes-qt/qt5/imx-qtapplications_1.2.2-aarch32.bb.
It appears to only be compatible with iMX6 and iMX7ULP which could be why there is some confusion.
imx_yocto-bsp-5.4.70_2.3.0/imx-yocto-bsp $ grep MACHINE sources/meta-imx/meta-sdk/dynamic-layers/qt5-layer/recipes-qt/qt5/imx-qtapplications_1.2.2-aarch32.bb COMPATIBLE_MACHINE = "(mx6|mx7ulp)"
The Yocto environment has been created by:
repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m imx-5.4.70-2.3.0.xml repo sync DISTRO=fsl-imx-xwayland MACHINE=imx6qsabresd source imx-setup-release.sh -b build-xwayland
ok, I didn't build imx6, maybe that's the reason I couldn't find it, you can try to find the folder /tmp/work/cortexa53-crypto-poky-linux/qtmultimedia as I mentioned before, if you still couldn't find it, pls tell me, let me build the bsp for you, but which cost me couple days, and refer to the bb file:
# For now, imxcamera & imxplayer can only be supported on x11 backend for SoC with VPU only (including i.MX6Q & i.MX6DL)
FYI /tmp/work/cortexa53-crypto-poky-linux/qtmultimedia is for the iMX8 and I'm using iMX6.
If you refer back to my previous post (https://community.nxp.com/t5/i-MX-Processors/imxplayer-imx-qtapplications-source-code/m-p/1257812/hi...), the problem is that the package is binary only, so even when I looked at the binary really hard and with intense focus, I couldn't get the source code to appear.
For now, imxcamera & imxplayer can only be supported on x11 backend for SoC with VPU only (including i.MX6Q & i.MX6DL)
So are you saying that XWayland does not currently support the VPU on iMX6 or are you just stating that the precompiled example applications do not have that support?
Looks like there is yet another BSP release from the 31st of March, so I've started the build of that to retest the performance.
Ultimately, I am trying to get video playback through QT (QMediaPlayer) running on XWayland for the iMX6. So far, my testing on 5.4.70_2.3.0 it looks like hardware acceleration for video playback isn't supported for QT + XWayland. Will see how 5.10.9_1.0.0 works.
how did you get this? just build the bsp, download the images to the board, then you can get imxplayer under /usr/lib/... or you need add something in the local.conf? yes, the path I sent to you is for imx8 because I didn't build imx6 yet, but the path should be similar
It is part of the standard Yocto distribution when building for MACHINE=imx6qsabresd and building the full image:
You should have the imx-qtapplications in the recipe sources/meta-imx/meta-sdk/dynamic-layers/qt5-layer/recipes-qt/qt5/imx-qtapplications_1.2.2-aarch32.bb.
I didn't see the download URL in the logs when building and figured this would be a quick question, but looks like it is as baffling to you as it is to me!
Correct, it seems to be binary only and using objdump shows that it likely doesn't use QMediaPlayer.
I did end up getting XWayland to support video playback on iMX6 with some video sink changes to QT. See the thread https://community.nxp.com/t5/i-MX-Graphics/i-MX6-XWayland-QT-Slow-Video-Playback/m-p/1301858