[发明专利]媒体插件加载方法、电子设备及计算机可读存储介质在审
申请号: | 202010894297.6 | 申请日: | 2020-08-31 |
公开(公告)号: | CN114116038A | 公开(公告)日: | 2022-03-01 |
发明(设计)人: | 王阳涛;兰文涛;窦泽飞 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 深圳市赛恩倍吉知识产权代理有限公司 44334 | 代理人: | 饶智彬 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 媒体 插件 加载 方法 电子设备 计算机 可读 存储 介质 | ||
本申请实施例提供了一种媒体插件加载方法,涉及电子设备领域。在原有的Gstreamer框架下针对每个媒体插件增设用于描述插件信息的插件描述文件,在响应媒体播放任务时,通过遍历各插件描述文件来得到每个媒体插件的描述信息,再根据每个媒体插件的描述信息及该媒体播放任务需求确定需加载的媒体插件,以执行插件加载与媒体播放管道构建,避免将所有媒体插件加载到内存。本申请实施例还提供了一种电子设备及计算机可读存储介质。本申请对于不同的媒体播放任务,仅加载所需要的媒体插件,可避免造成内存资源浪费。
技术领域
本申请涉及多媒体领域,尤其涉及一种媒体插件加载方法、电子设备及计算机可读存储介质。
背景技术
GStreamer框架是一种在GNOME桌面环境下用来构建流媒体应用的多媒体框架。GStreamer框架可以被划分成两个部分:Gstreamer核心框架和Gstreamer插件。Gstreamer核心框架是基础,Gstreamer插件是基于Gstreamer核心框架实现的具体功能,不同设备可以根据设备形态选择打包不同的插件构建特定的媒体服务能力。Gstreamer核心框架根据输入的媒体数据格式,查询插件注册表信息,创建能够处理这些媒体数据的插件对象,组合成一条媒体播放管道(pipeline管道),每个插件负责媒体数据播放的其中一个环节,整个媒体播放管道形成了媒体播放的功能。
如图1所示,Gstreamer框架在第一次启动进行初始化时,会依次遍历并加载所有的Gstreamer插件,从中读取每个Gstreamer插件的描述信息,并记录到注册表缓存文件中。由于需要dlopen所有Gstreamer插件,导致在执行媒体播放任务时,不需要真正使用的Gstreamer插件亦被加载到内存中,造成内存资源浪费。如图2所示,Gstreamer框架为了完成一项媒体播放任务,基于加载到内存中的Gstreamer插件创建插件对象,形成媒体播放管道。当媒体播放任务完成时,无法自动卸载Gstreamer插件,导致媒体服务进程的常驻内存过大,造成内存资源紧缺。
发明内容
有鉴于此,有必要提供一种媒体插件加载方法,其可克服上述问题,识别不同的媒体播放任务所需要的媒体插件,以实现合理加载媒体插件。
本申请实施例第一方面公开了一种媒体插件加载方法,应用于多媒体播放组件。多媒体播放组件包括多个媒体插件及与每个媒体插件对应的插件描述文件,插件描述文件记载对应的媒体插件的描述信息。所述方法包括:响应于获取到的对媒体数据的处理需求,读取每个插件描述文件并得到相应的媒体插件的描述信息;基于每个媒体插件的描述信息及媒体数据的处理需求,从多个媒体插件中确定需加载的目标媒体插件;加载目标媒体插件至指定存储区,并基于加载的目标媒体插件创建插件对象;基于创建的插件对象构建媒体播放管道,并利用媒体播放管道对媒体数据进行处理。
通过采用该技术方案,可实现合理加载媒体插件,对于不同的媒体播放任务,仅加载所需要的媒体插件,使得媒体服务占用内存最小化。
在一种可能的实现方式中,基于每个媒体插件的描述信息及媒体数据的处理需求,从多个媒体插件中确定需加载的目标媒体插件,包括:基于每个媒体插件的描述信息及媒体数据的处理需求,判断多媒体播放组件是否具备处理所述媒体数据的能力;若多媒体播放组件具备处理媒体数据的能力,从多个媒体插件中确定需加载的目标媒体插件;或若多媒体播放组件不具备处理媒体数据的能力,返回插件加载异常的提示信息。通过采用该技术方案,可以在确定媒体播放任务所需要的媒体插件前,先判断多媒体播放组件是否具备执行该媒体播放任务的能力。
在一种可能的实现方式中,所述多个媒体插件预先存储在不同于指定存储区的第一存储区,所述加载目标媒体插件至指定存储区包括:从第一存储区读取所述目标媒体插件并将目标媒体插件加载至指定存储区。通过采用该技术方案,可以实现仅将媒体播放任务所需要的媒体插件加载至指定存储区。
在一种可能的实现方式中,第一存储区为硬盘的存储区,指定存储区为内存的存储区。通过采用该技术方案,可以实现仅将媒体播放任务所需要的媒体插件加载至内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010894297.6/2.html,转载请声明来源钻瓜专利网。