I am curious over what support, if any, there is for hardware accelerated video decoding in Linux on i.MX8 ?
According to i.MX8 reference manual there seems to be only v4l2 capture support, i.e. camera stream but not for decoding video frames. Some googling doesn't actually reveal any Linux support on i.MX8 though Gstreamer has support for Hantro g1/g2. Don't know if that would suffice !!
Can anybody give me some info on what the status and future support is for video decoding with Hantro g1/g2 on i.MX8 is/will be ? will it have v4l2 implementation as in i.MX6 ?
The i.MX 8M Quad and i.MX 8M Dual processors have hardware acceleration for video playback up to 4K, and can drive the video outputs up to 60 fps. In menu configuration enable the following module for the VPU driver:
Device Drivers > MXC support drivers > MXC HANTRO (Video Processing Unit) support
The iMX6 also have support for v4l2.
At this time, there is not upstream kernel support for the Hantro video decoders. It is only the Coda in the i.MX51 and i.MX6 that has upstream kernel support and utilizes the V4L2 interface for decoding.
I liked to know what the landscape looks like when it comes to decoding video on imx8. Will there be v4l2 support, am I to use libimxvpuapi, gstreamer or imx-vpu-hantro ? anything else ?
I've noticed that there has recently been dropped a gstreamer support (v2 branch), see here: https://github.com/Freescale/gstreamer-imx/commit/38859e501a179b2d8e71bb93007b025f434e7d69
Is this maybe the best source for decoding support right now ?
The NXP BSP provides support for decoding video using the embedded Hantro G1/G2 IP cores. This is provided by some NXP provided libraries and gstreamer plugins.
In addition to the NXP provided gstreamer plugins, there is also gstreamer-imx which is provided by a third party. As you noticed, support was just added for the i.MX8M in the last several weeks. I've successfully tried the gstreamer-imx plugins.
Looking further down the road, there is ongoing work (outside of NXP) to develop a clean slate solution for video playback with the Hantro G1/G2 IP cores in the i.MX8M by a group of developers. The Hantro video decoders are not unique to the i.MX8M. They are also in several Rockchip designs and as such a common driver stack is being developed that works regardless of the SoC being used. This stack will likely leverage the V4L2 API. You can see some work down this path at the following URL: