The VDEC is a problem on all Amlogic hardware. There is partial support for H264 and VP9 upstream but HEVC is missing (we have patches, but rather rough on newer hardware) and the kernel driver really needs to be reworked and split to better handle the memory needs of older vs. newer Amlogic hardware generations. The developer who was originally working on it had to stop for personal reasons in late 2019, then Google changed funding priorities and work that was already stalled, stopped. Since then nothing happened beyond dusting off some WIP code for HEVC. The upstream H264 and VP9 drivers are technically meeting kernel V4L2 compliance, but more work is needed in ffmpeg (and the drivers) to get the userspace side working well. The Raspberry Pi foundation devs have done some of the work to get H264 working well with ffmpeg v4l2m2m in their codebase, but beyond a point the improvements need to be matched with driver tweaks and Amlogic has nobody to make the tweaks.
This is THE challenge. Most of the Amlogic community developers are either lacking the architectural talent to write modern drivers from scratch and/or are simply content to fiddle around the edges of the vendor kernel which is ugly-arse code but more feature complete. So there isn’t really anyone to do the work, and this is the status-quo for two years now. Unless someone competent just appears out of nowhere willing to make a large personal and pro-bono effort, the most likely route forwards will be organising a group of commercial backers with an interest in upstream Amlogic SoC support to pool funding and pay Baylibre to do the work. To write, test, refine, and upstream drivers and userspace code has been estimated at 5-8 months work for a professional developer, which means it’s a non-trivial sum to raise. Based on the similar effort I’ve first-hand witnessed the Pi Foundation devs make for RPi4 support it’s probably a low-side estimate.
To a lesser extent the audio drivers also need attention to add support for IEC958 pass-through, but that’s partly due to a dependecy on dw-hdmi and the Allwinner/Rockchip community devs will probably tackle that with time.