驱动代码: https://github.com/torvalds/linux/tree/master/drivers/staging/media/sunxi/cedrus
make menuconfig 必须选择以下内核配置参数:
CONFIG_MEDIA_SUPPORT
CONFIG_MEDIA_CONTROLLER_REQUEST_API
CONFIG_MEDIA_CONTROLLER
CONFIG_V4L_MEM2MEM_DRIVERS
CONFIG_VIDEO_SUNXI_CEDRUS
Device Drivers ---> Generic Driver Options --->
(256) Size in Mega Bytes
Device Drivers ---> Multimedia support
[*] Cameras/video grabbers support
[*] Media Controller API
[*] Enable Media controller Request API (EXPERIMENTAL)
[*] V4L2 sub-device userspace API
[*] Enable advanced debug functionality on V4L2 drivers
[*] V4L platform devices --->
<M> Allwinner V3s Camera Sensor Interface driver
[*] Memory-to-memory multimedia devices --->
<M> Deinterlace support
<M> SuperH VEU mem2mem video processing driver
[*] Media test drivers --->
<M> Virtual Media Controller Driver (VIMC)
<M> Virtual Video Test Driver
[ ] Enable CEC emulation support (NEW)
(64) Maximum number of devices (NEW)
<M> Virtual Memory-to-Memory Driver
<M> Virtual Codec Driver
Device Drivers ---> Staging drivers ---> Media staging drivers --->
[*] Allwinner sunXi family Video Devices
<M> Allwinner Cedrus VPU driver
解码测试:
ffmpeg -hwaccel drm -hwaccel_device /dev/dri/card0 -i h264.mp4 -pix_fmt bgra -f fbdev /dev/fb0
参考链接1: 已删除
参考链接2: https://lkml.org/lkml/2019/8/22/1425
离线
应该是的 https://github.com/torvalds/linux/blob/master/drivers/staging/media/sunxi/cedrus/cedrus.c
目前直接支持 A10/A13/A20/A33/H3/A64/H5/H6
但是 V3s/S3 使用需要可能还需要修改一点点
static const struct of_device_id cedrus_dt_match[] = {
{
.compatible = "allwinner,sun4i-a10-video-engine",
.data = &sun4i_a10_cedrus_variant,
},
{
.compatible = "allwinner,sun5i-a13-video-engine",
.data = &sun5i_a13_cedrus_variant,
},
{
.compatible = "allwinner,sun7i-a20-video-engine",
.data = &sun7i_a20_cedrus_variant,
},
{
.compatible = "allwinner,sun8i-a33-video-engine",
.data = &sun8i_a33_cedrus_variant,
},
{
.compatible = "allwinner,sun8i-h3-video-engine",
.data = &sun8i_h3_cedrus_variant,
},
{
.compatible = "allwinner,sun50i-a64-video-engine",
.data = &sun50i_a64_cedrus_variant,
},
{
.compatible = "allwinner,sun50i-h5-video-engine",
.data = &sun50i_h5_cedrus_variant,
},
{
.compatible = "allwinner,sun50i-h6-video-engine",
.data = &sun50i_h6_cedrus_variant,
},
{ /* sentinel */ }
};
离线
离线