技术特征:
1.一种基于linux桌面显卡的安卓视频解码硬件加速方法,其特征在于,应用在linux系统兼容安卓容器的环境中,基于linux内核及linux桌面的支持vaapi的显卡设备,所述方法具体包括以下步骤:s1、加载安卓容器的视频解码服务并初始化视频解码器;s2、所述视频解码器初始化视频解码硬件加速接口;s3、所述视频解码器将视频数据包发送至所述视频解码硬件加速接口;s4、所述视频解码硬件加速接口将数据包传入linux内核并由显卡设备将所述数据包解码为视频帧;s5、所述视频解码器通过所述视频解码硬件加速接口取回已解码的视频帧;s6、所述视频解码服务将所述视频帧发送到视频程序进行显示。2.根据权利要求1所述的基于linux桌面显卡的安卓视频解码硬件加速方法,其特征在于,在步骤s1之前还包括以下具体步骤:s01、将安卓系统和linux系统安装于同一linux平台上;s02、将所述安卓系统和所述linux系统共享同一linux内核,linux系统的容器中运行安卓系统以构成安卓容器;s03、在linux平台上安装支持vaapi的显卡设备,将支持vaapi的显卡设备的设备节点映射到安卓容器中;s04、将linux系统的ffmpeg对接到安卓中,并实现为安卓的视频解码器插件库。3.根据权利要求2所述的基于linux桌面显卡的安卓视频解码硬件加速方法,其特征在于,步骤s2具体包括以下步骤:s21、将linux的libva库对接到安卓容器中;s22、将符合vaapi的显卡插件库对接到安卓容器中;s23、所述ffmpeg视频解码器插件库开启vaapi功能;s24、所述ffmpeg视频解码器初始化自身的上下文配置,并初始化视频解码硬件加速接口的上下文。4.根据权利要求2所述的基于linux桌面显卡的安卓视频解码硬件加速方法,其特征在于,步骤s3具体包括以下步骤:s31、所述安卓容器中的视频应用产生视频数据包;s32、所述安卓容器中的视频解码服务获取视频数据包;s33、所述视频解码器从视频解码服务的输入数据流中获取视频数据包;s34、所述视频解码器使用ffmpeg接口将数据发送给libva库及显卡相关vaapi实现程序。5.根据权利要求1所述的基于linux桌面显卡的安卓视频解码硬件加速方法,其特征在于,步骤s5具体包括以下步骤:s51、所述显卡设备完成视频数据解码生成视频帧;s52、所述视频解码器从所述显卡设备中取回所述视频帧的数据;s53、所述视频解码器对视频帧的数据进项缩放。6.根据权利要求1所述的基于linux桌面显卡的安卓视频解码硬件加速方法,其特征在于,步骤s6具体包括以下步骤:
s61、所述视频解码服务将视频帧的数据发送给调用安卓视频解码接口的客户端的视频程序;s62、所述客户端对视频帧的数据进行像素格式转换和显示范围裁剪;s63、所述客户端将处理过的视频帧的数据进行显示。
技术总结
本发明公开了一种基于Linux桌面显卡的安卓视频解码硬件加速方法,应用在Linux系统兼容安卓容器的环境中,包括:S1、加载安卓容器的视频解码服务并初始化视频解码器;S2、视频解码器初始化视频解码硬件加速接口;S3、视频解码器将视频数据包发送至视频解码硬件加速接口;S4、视频解码硬件加速接口将数据包传入Linux内核并由显卡设备将数据包解码为视频帧;S5、视频解码器通过视频解码硬件加速接口取回已解码的视频帧;S6、视频解码服务将视频帧发送到视频程序进行显示,本发明减少使用CPU进行视频解码带来的性能损失,提高了Android视频解码的效率。Android视频解码的效率。Android视频解码的效率。
技术研发人员:马超 黄彩龙 李翔 黄晟 杨硕 彭韬 游远 赵坤 谢辉军 杨陈博寰
受保护的技术使用者:麒麟软件有限公司
技术研发日:2022.01.26
技术公布日:2022/3/1