WhyCan Forum(哇酷开发者社区)

我们习惯了"有问题百度一下", 感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

#1 2019-10-19 09:00:21

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

驱动代码: 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: https://ua3nbw.ru/
参考链接2: https://lkml.org/lkml/2019/8/22/1425

离线

#2 2019-10-19 10:22:49

sy373466062
会员
注册时间: 2018-11-12
累计积分: 52

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

这个意思是全志那一票的芯片在Linux下的H264硬解应该是可以了?

离线

#3 2019-10-19 10:50:40

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

应该是的  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 */ }
};

离线

#4 2019-10-20 10:44:16

迪卡
会员
所在地: 河北
注册时间: 2018-11-02
累计积分: 630
个人网站

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

牛逼啊,看来F1C200S也可以了

离线

#5 2019-10-20 17:58:00

迪卡
会员
所在地: 河北
注册时间: 2018-11-02
累计积分: 630
个人网站

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

晕哥你觉得,F1C200S这个片子,
做核心板销量好,
还是MP4手持机开发板销量好。

离线

#6 2019-10-20 19:18:27

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

做成锂电,TF插座/USB插座,旋转编码器,带按键,电容触摸屏,有外壳(或者亚克力)的准成品应该比较好卖。

离线

#7 2019-10-20 19:37:07

checkout
会员
注册时间: 2018-11-09
累计积分: 148

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

牛逼,赶紧试试

离线

#8 2019-10-20 19:47:04

迪卡
会员
所在地: 河北
注册时间: 2018-11-02
累计积分: 630
个人网站

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

晕哥 说:

做成锂电,TF插座/USB插座,旋转编码器,带按键,电容触摸屏,有外壳(或者亚克力)的准成品应该比较好卖。

MP4是锂电的,为了通用用诺基亚电池。
TF卡槽有,和sd nand共存,sd nand 存app。
大口USB座有1个,
旋转编码器是啥东西??求教。
按键这东西,就是lradc了,做个音量+-,还有电源啥的。
是电容屏,3寸480*800,视网膜电容屏。
有外壳,3D打印+亮面喷漆。


相当于成品。

离线

#9 2019-10-20 19:47:50

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

离线

#10 2019-10-20 20:02:07

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

旋转编码器挺多地方使用,车上的收音机, HIFI播放器用得比较多,可以顺时针/逆时针旋转,有些可以按下。


https://detail.tmall.com/item.htm?id=577549877220
QQ截图20191020204141.jpg

离线

#11 2019-10-20 20:41:22

迪卡
会员
所在地: 河北
注册时间: 2018-11-02
累计积分: 630
个人网站

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

旋转编码器需要3个io。编码器处理还比较复杂。

离线

#12 2019-10-20 20:44:38

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

软件没问题, Linux自带了驱动: https://whycan.cn/t_2393.html#p18277

只是看有没有多余的能中断的GPIO

离线

#13 2019-10-21 09:45:15

shaoxi2010
会员
注册时间: 2019-06-13
累计积分: 151

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

照着H3改过v3s的,但是sram的初始化不对,工作不起来

离线

#14 2019-10-21 10:01:13

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

shaoxi2010 说:

照着H3改过v3s的,但是sram的初始化不对,工作不起来

SRAM? 为什么要改SRAM?SRAM不是 boot0才用的吗?

离线

#15 2019-10-21 10:16:56

nothing
会员
注册时间: 2019-09-11
累计积分: 13

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

测试过官方的库在V3S的BSP内核,初始化成功,但是编码出错,由于官方只提供库,测试的现象是一读取编码结果就死机,追踪到的结果是编码获取地址没有映射成功,但是又没有源码排查,只能乖乖用camdroid

离线

#16 2019-10-21 11:49:38

shaoxi2010
会员
注册时间: 2019-06-13
累计积分: 151

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

晕哥 说:
shaoxi2010 说:

照着H3改过v3s的,但是sram的初始化不对,工作不起来

SRAM? 为什么要改SRAM?SRAM不是 boot0才用的吗?

主线的代码在初始化的时候要将SRAM特殊初始化给VE使用,H3的SRAM布局和V3S的不一样,然后就卡死在上面了。没记错的话USB和eMAC都在用SRAM

离线

#17 2019-10-21 11:54:36

shaoxi2010
会员
注册时间: 2019-06-13
累计积分: 151

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

shaoxi2010 说:
晕哥 说:
shaoxi2010 说:

照着H3改过v3s的,但是sram的初始化不对,工作不起来

SRAM? 为什么要改SRAM?SRAM不是 boot0才用的吗?

主线的代码在初始化的时候要将SRAM特殊初始化给VE使用,H3的SRAM布局和V3S的不一样,然后就卡死在上面了。没记错的话USB和eMAC都在用SRAM

找到了,在这里有提到的。有一段C1的SRAM用于VE,但是V3S在手册没得提到这东西,看看那位大佬可以搞定这个不。
https://linux-sunxi.org/SRAM_Controller_Register_Guide

离线

#18 2019-10-21 12:13:01

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

还有这种操作啊

离线

#19 2019-10-21 13:09:28

dgtg
会员
注册时间: 2017-11-08
累计积分: 164

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

好期待啊

离线

#20 2019-10-21 14:04:19

nothing
会员
注册时间: 2019-09-11
累计积分: 13

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

shaoxi2010 说:
shaoxi2010 说:
晕哥 说:

SRAM? 为什么要改SRAM?SRAM不是 boot0才用的吗?

主线的代码在初始化的时候要将SRAM特殊初始化给VE使用,H3的SRAM布局和V3S的不一样,然后就卡死在上面了。没记错的话USB和eMAC都在用SRAM

找到了,在这里有提到的。有一段C1的SRAM用于VE,但是V3S在手册没得提到这东西,看看那位大佬可以搞定这个不。
https://linux-sunxi.org/SRAM_Controller_Register_Guide

_20191021140119.png
你说的是这个mmap吧,手册59页里面有提到,就给了映射地址,具体详细介绍没有,我之间弄过,初始化成功,编码会死掉,核心库全志没有开放代码,追踪不到死掉的原因

离线

#21 2019-10-21 16:28:37

shaoxi2010
会员
注册时间: 2019-06-13
累计积分: 151

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

nothing 说:
shaoxi2010 说:
shaoxi2010 说:

主线的代码在初始化的时候要将SRAM特殊初始化给VE使用,H3的SRAM布局和V3S的不一样,然后就卡死在上面了。没记错的话USB和eMAC都在用SRAM

找到了,在这里有提到的。有一段C1的SRAM用于VE,但是V3S在手册没得提到这东西,看看那位大佬可以搞定这个不。
https://linux-sunxi.org/SRAM_Controller_Register_Guide

https://whycan.cn/files/members/1974/_20191021140119.png
你说的是这个mmap吧,手册59页里面有提到,就给了映射地址,具体详细介绍没有,我之间弄过,初始化成功,编码会死掉,核心库全志没有开放代码,追踪不到死掉的原因

还不是那个地方吧,因为全志复用ip核的可能性极大,看社区说的是在H3上改过来的,我按着H3修改后驱动报错的位置是在,SRAM contorl里面,然后加了几个打印发现SRAM功能配置失败了,我也就没管了。

离线

#22 2020-04-05 02:40:22

aodzip
会员
注册时间: 2019-10-15
累计积分: 80

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

在S3上跑起来Cedrus了,只可惜好像出BUG了
868C571C-65E9-4B71-9879-EBF4BE382534.jpeg
某些帧还是能看出来有那么几块是处理正确的
E46F0886-3E2F-482C-BE4D-C8F149DA0B50.jpeg

离线

#23 2020-04-05 08:20:54

达克罗德
会员
注册时间: 2018-04-10
累计积分: 892

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

楼上威武!

离线

#24 2020-04-27 15:25:15

aodzip
会员
注册时间: 2019-10-15
累计积分: 80

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

我就挖一铲子,这样通过搜索引擎过来的人也知道传统的CedarX框架也支持主线了
https://whycan.cn/t_4219.html

离线

#25 2020-04-29 09:52:23

qdk0901
会员
注册时间: 2019-04-08
累计积分: 6

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

我们去年7月份就用上这个了,用在a10/a20/h3的片子上,出了大概600k的货,虽然有一些问题(比如B帧P帧的解码马赛克,绿屏等等),但是解决后还是不错的

离线

#26 2020-04-29 09:56:39

有梦的地方
会员
注册时间: 2020-03-17
累计积分: 182

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

qdk0901 说:

我们去年7月份就用上这个了,用在a10/a20/h3的片子上,出了大概600k的货,虽然有一些问题(比如B帧P帧的解码马赛克,绿屏等等),但是解决后还是不错的

牛,方便分享一些使用方法吗?

离线

#27 2020-04-29 10:21:47

qdk0901
会员
注册时间: 2019-04-08
累计积分: 6

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

有梦的地方 说:

牛,方便分享一些使用方法吗?

用户空间用sunxi-cedrus开源项目配套的libva-v4l2-request+ffmpeg,ffmpeg的avcodec_decode_video2里使用vaapi context做硬件加速,解码完之后,用drm接口提交buffer去显示

离线

#28 2020-05-22 15:12:02

twig
会员
注册时间: 2020-01-06
累计积分: 3

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

好消息~~~

离线

#29 2020-05-22 15:17:50

ljw22676739
会员
注册时间: 2020-05-07
累计积分: 2

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

好消息!硬件很重要!全志的系列芯片,驱动是硬伤啊!

离线

#30 2020-05-22 16:57:54

秦皇岛岛主
会员
注册时间: 2020-05-22
累计积分: 19

Re: Linux主线已经支持 VPU H.264 硬解码多时了,有没有哪位测试过?

晕哥要不要出些成品的板子,已经比较有规模了,应该很多人为此做贡献吧

离线

页脚

工信部备案:粤ICP备20025096号-1 Powered by FluxBB