Hi,
I am comparing the IMX6ULL, IMX6SL and IMX6SX (evks) for a video application.
For firmware, I am using the yocto L4.9.11_1.0.0-ga+mx8-alpha BSP.
I can play video through gstreamer on LCD's on all devices, but I'm basically using the imxv4l2videosink on all devices (which seems to be very efficient). But I am still experiencing screen tearing when I do something like "gst-launch-1.0 videotestsrc pattern=ball ! imxv4l2sink"
However, I got seriously confused by Yocto/gstreamer/video – Gateworks and others. As it turns out, the recipe for the BSP uses git://git.freescale.com/imx/gst1.0-plugins-fsl.git, and NOT GitHub - Freescale/gstreamer-imx: GStreamer 1.0 plugins for i.MX platforms . The two repo's are significantly different.
In the first link, there is described how a "use-vsyc" option can be used to force vsync. However, the "relevant" sinks/option are not available in the repo from freescale. (You can simply search a cloned freescale repo for "vsync", it yields nothing)
Hence my question: How can I ensure vsync'ed (no screen tearing) images when using the official BSP and gstreamer?
Thanks for your reply!
Arnout
Wow, this is getting stranger.
On the SoloX, it I am missing the vsync:
V4.9 image X11 SX
imx6sxsabresd login: root
root@imx6sxsabresd:~# gst-inspect-1.0 | grep imx
aiur.imx: webm: webm
aiur.imx: aiurdemux: Aiur universal demuxer
imxvideoconvert.imx: imxvideoconvert_g2d: IMX g2d Video Converter
imxvideoconvert.imx: imxvideoconvert_pxp: IMX pxp Video Converter
imxcompositor.imx: imxcompositor_g2d: IMX g2d Video Compositor
imxcompositor.imx: imxcompositor_pxp: IMX pxp Video Compositor
beep.imx: ac3: ac3
beep.imx: 3ca: ac3
beep.imx: beepdec: Beep universal decoder
imxv4l2.imx: imxv4l2sink: IMX Video (video4linux2) Sink
imxv4l2.imx: imxv4l2src: IMX Video (video4linux2) Source
imxmp3enc.imx: imxmp3enc: imx mp3 audio encoder
overlaysink.imx: overlaysink: IMX Video (video compositor) Sink
BUT on the 6ULL, I have something totally different:
V4.9 image X11 ULL
root@imx6ull14x14evk:/# gst-inspect-1.0 | grep imx
imxpxp: imxpxpvideosink: Freescale PxP video sink
imxpxp: imxpxpvideotransform: Freescale PxP video transform
imxv4l2videosrc: imxv4l2videosrc: V4L2 CSI Video Source
imxaudio: imxuniaudiodec: Freescale i.MX uniaudio decoder
imxaudio: imxmp3audioenc: Freescale i.MX MP3 encoder
The imxpxp DOES have the use_vsync option.
Howcome this is so different for the soloX and ULL? And how can I get vsync to work on the soloX?
To exclude a yocto build for the soloX mistake from my part, I took L4.9.11_1.0.0-ga_images_MX6QPDLSOLOX.tar - fsl-image-qt5-validation-imx-x11-imx6qpdlsolox.sdcard directly from https://www.nxp.com/support/developer-resources/hardware-development-tools/sabre-development-system/...
Funny thing is, this image does not even boot. The bootloader is wrong in the "official" image. When I fix this (by copying the correct bootloader, but keeping the MBR and all partitions as they were in the image), I get confirmation that my build was correct:
imx6qpdlsolox login: random: crng init done
NXP i.MX Release Distro 4.9.11-1.0.0 imx6qpdlsolox ttymxc0
imx6qpdlsolox login: root
root@imx6qpdlsolox:~# gst-inspect-1.0 | grep imx
display(/dev/fb0) resolution is (1024x768).
imxvideoconvert.imx: imxvideoconvert_pxp: IMX pxp Video Converter
imxvideoconvert.imx: imxvideoconvert_g2d: IMX g2d Video Converter
imxcompositor.imx: imxcompositor_pxp: IMX pxp Video Compositor
imxcompositor.imx: imxcompositor_g2d: IMX g2d Video Compositor
beep.imx: beepdec: Beep universal decoder
beep.imx: 3ca: ac3
beep.imx: ac3: ac3
imxmp3enc.imx: imxmp3enc: imx mp3 audio encoder
aiur.imx: aiurdemux: Aiur universal demuxer
aiur.imx: webm: webm
imxv4l2.imx: imxv4l2src: IMX Video (video4linux2) Source
imxv4l2.imx: imxv4l2sink: IMX Video (video4linux2) Sink
overlaysink.imx: overlaysink: IMX Video (video compositor) Sink
Hi Arnout
you are right, both repo are different as there are community gstreamer-imx plugins
and nxp gstreamer plugins and it is explained on
trac.gateworks.com/wiki/Yocto/gstreamer
Please note that IMX6ULL, IMX6SL and IMX6SX do not have vpu (no hardware video support),
it makes sense to test with processors which have vpu, like i.MX6DQ, SDL.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi,
I know that they don't contain a VPU and don't support HW decoding, but the IMX6S and higher don't come in small enough packages for my current application to use Hence the subset I'm testing now aiming at SW decoding.
Regardless, my main question remains:
- How can vsync be achieved on the 4.9 BSP on the SoloX in Gst? (It works on the ULL build, but not on the SoloX..)
Hi Arnout
nxp gstreamer plugins are based on specific i.mx vpu usage.
Seems issues with software (generic) implementation may be posted
on gstreamer mail list
Best regards
igor
Hi,
It's not an issue of gst itself, it's an issue of the BSP yocto build, made by freescale/NXP. It chooses what version of GST to build and what plugins to build. As far as I can see, it only builds the imxpxp plugin for the imx6ull, and not for the other targets.
If I were to mail this to the Gstreamer guys, they would most likely also just refer me back to NXP (since they made the yocto BSP layer that does it)
L4.9.11_1.0.0-ga+mx8-alpha BSP is in development stage, "alpha"
means that not all features are tested. Please try official BSPs described in
i.MX 6 / i.MX 7 Series Software and Development Tool|NXP
use sect.5.1 Build configurations, sect.5.2 Choosing an i.MX Yocto project image
attached Yocto Guide.
The attached guide is also from the same alpha release, and the official latest BSP one can download for e.g. the soloX IS also that 4.9 alpha release.
My only other option is to revert to the 4.1 BSP. Is this what you recommend?
And I understand there are bugs in the alpha release. I just want to point one out, so it can be confirmed and fixed.
Or, if for some good reason it makes no sense to be able to have the imxpxp plugin (to do vsync on the soloX, soloL) I would like to learn it.
attached guide is not from alpha, it is official Linux 4.9.11_1.0.0 BSP
linux-imx.git - i.MX Linux Kernel
opposite to "alpha", it is documented, below
https://www.nxp.com/webapp/Download?colCode=L4.9.11_1.0.0_LINUX_DOCS
In particular Release Notes describes which features were tested, Linux Guide
shows this in more detailed way.
Best regards
igor
First page, top right
What am I missing?
you are missing "+",
that is it is L4.9.11_1.0.0-ga
with addition of i.MX8 software, which is alpha.
Ok, so you agree that the attached guide IS from alpha, with the +mx8 I hope.
Can you please then tell me what the official yocto tag is for the "non-alpha" release..
In the document you attached, it says:
mkdir fsl-release-bsp
$ cd fsl-release-bsp
$ repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-morty
$ repo sync
Use this for the GA release only, but not for i.MX 8 Alpha release. For i.MX 8 Alpha release, follow the Readme instructions
These are the commands I executed. So I would assume I am using the correct version.. Just how are you concluding I am not at the right version?
on git below there is no alpha name it is just GA:
http://git.freescale.com/git/cgit.cgi/imx/linux-imx.git/tree/?h=imx_4.9.11_1.0.0_ga
That's the linux kernel. I am taking about the yocto repository.
git://git.freescale.com/imx/fsl-arm-yocto-bsp.git
(Which is down.. again.)
Latest commit that I used:
commit 1b9d32260104cf7c906b92d5f0dbc07d5df86e97
Author: Jun Zhu <junzhu@nxp.com>
Date: Thu Sep 28 18:19:57 2017 +0800
imx-4.9.11-1.0.0_ga.xml: Update the revision of meta-fsl-bsp-release layer
for processors without hardware video support (without vpu module) nxp imx-gst1.0
plugins do not add improvements compared with generic gstreamer (using software implementation)
so one can post this to meta-fsl-arm mailing list, so that more people could try to assist you.
https://lists.yoctoproject.org/listinfo/meta-freescale
Best regards
igor