一种用于解码视频的方法、装置和播放器的制造方法_3

文档序号:8441776阅读:来源:国知局
[0085]所述调用模块402还用于,从预设的绘制图层中选择与所选择的解码方案对应的绘制图层后,将预设的绘制图层中的其他的绘制图层设置为不可见。
[0086]本发明实施例还提出一种播放器,包括上述的用于解码视频的装置。
[0087]在本发明的另一个实施例中,如图5所示,播放器包括适配层501、播放器内核502、多个解码方案503、绘制图层504。
[0088]适配层501即本发明提出的上述用于解码的装置,该模块是整个系统的核心,需要控制和选择不同的硬件解码方案,还可以实现对各种解码方案进行灵活的切换处理。在首次启动播放器时,该模块不选择具体的播放实例,直接调用播放器内核502设置播放地址并且开始Prepare (解码准备)。当播放器内核Prepare结束之后,将通知适配层,此时适配层需要根据播放器所在终端的当前环境(系统版本和CPU内核)选择硬件解码方案,然后调用对应的硬件解码方案503进行初始化,在初始化过程中需要对绘制图层504进行选择,以及调用硬件解码的函数进行初始化设置。选择的硬件解码方案503如果成功,则可以继续播放;如果失败,则发送通知到适配层501,适配层501决定是否切换解码方案还是继续在原来解码方案的基础上重试,如果要切换解码方案,则继续根据当前的环境选择下一个解码方案,一直到最后成功(至少需要保证软件解码的正常运行)。此时,播放器的切换代价仅仅是对不同解码类型进行了初始化,也就是说播放器解码类型的切换基本不耗费时间,所以如果发生了解码类型的切换对于用户来说基本感知不到。
[0089]适配层设计的目的是既可以轻松切换解码类型,还能够兼顾到不同的解码类型的结构,比如在Android系统里使用MediaCodec的硬件解码是使用java层代码实现,这么设计可以很好的支持这种多样性,也方便了后续的扩展。
[0090]播放器内核502主要包含播放器的网络下载模块、播放器的解封装模块、播放器的解码模块、音视频同步模块等。每次播放对于播放内核来说都需要分配一个唯一的id,用来标识当前的播放,后续的操作都必须以该id来控制播放器内核。
[0091]多个解码方案503:对于Android系统而言,例如可以包含!MediaCodec硬件解码、OpenMax硬件解码(简称0ΜΧ)、StageFright硬件解码和软件解码。其中,软件解码可以设置在播放器内核502中,多个解码方案503中包括硬件解码方案。
[0092]绘制图层504:不同的解码方案对应的图像绘制不一样,所以使用图层的进行管理。使用FrameLayout包含各种不同的view,提供选择对应view的接口,在选择其中一个view之后,需要把其他的view设置成不可见。
[0093]需要说明的是:上述实施例提供的用于解码视频的装置仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,BP将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的用于解码视频的装置与用于解码视频的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0094]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0095]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种用于解码视频的方法,其特征在于,包括以下步骤: 当对待解码的视频数据流的解码准备已完成后,根据播放所述视频数据流的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案; 调用选择的解码方案以对所述待解码的视频数据流进行解码。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 当选择的解码方案对解封装后的视频数据流未成功解码时,从预设的解码方案中选择与所述信息相应的另一个解码方案; 调用所述另一个解码方案以从所述视频数据流中未成功解码处开始解码。
3.根据权利要求2所述的方法,其特征在于,所述根据播放该视频的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案,包括: 根据播放该视频的终端的信息,优先从预设的解码方案中的硬件解码方案中选择与所述信息相应的解码方案,最后从预设的解码方案中的软件解码方案中选择与所述信息相应的解码方案。
4.根据权利要求1所述的方法,其特征在于,所述根据播放该视频的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案,包括: 根据播放该视频的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案,以及从预设的绘制图层中选择与所选择的解码方案对应的绘制图层; 所述调用选择的解码方案以对所述待解码的视频数据流进行解码,包括: 调用选择的解码方案以及选择的绘制图层以对所述待解码的视频数据流进行解码。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括: 从预设的绘制图层中选择与所选择的解码方案对应的绘制图层后,将预设的绘制图层中的其他的绘制图层设置为不可见。
6.一种用于解码视频的装置,其特征在于,包括: 选择模块,用于当对待解码的视频数据流的解码准备已完成后,根据播放该视频的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案; 调用模块,用于调用选择的解码方案以对所述待解码的视频数据流进行解码。
7.根据权利要求6所述的装置,其特征在于,所述选择模块还用于, 当选择的解码方案对解封装后的视频数据流未成功解码时,根据播放所述视频数据流的终端的信息,从预设的解码方案中选择与所述信息相应的另一个解码方案; 所述调用模块还用于,调用所述另一个解码方案以从所述视频数据流中未成功解码处开始解码。
8.根据权利要求7所述的装置,其特征在于,所述选择模块还用于, 根据播放该视频的终端的信息,优先从预设的解码方案中的硬件解码方案中选择与所述信息相应的解码方案;最后从预设的解码方案中的软件解码方案中选择与所述信息相应的解码方案。
9.根据权利要求6所述的装置,其特征在于,所述选择模块还用于, 根据播放该视频的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案,以及从预设的绘制图层中选择与所选择的解码方案对应的绘制图层; 所述调用模块还用于,调用选择的解码方案以及选择的绘制图层以对所述待解码的视频数据流进行解码。
10.根据权利要求9所述的装置,其特征在于,所述调用模块还用于, 从预设的绘制图层中选择与所选择的解码方案对应的绘制图层后,将预设的绘制图层中的其他的绘制图层设置为不可见。
11.一种播放器,其特征在于,包括上述权利要求6-10所述的用于解码视频的装置。
【专利摘要】本发明公开了一种用于解码视频的方法、装置和播放器,其中,方法包括以下步骤:当对待解码的视频数据流的解码准备已完成后,根据播放所述视频数据流的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案;调用选择的解码方案以对所述待解码的视频数据流进行解码。通过本发明的方法,可以在播放器中封装各种不同的解码方案,还能够兼顾到不同的解码类型的结构,并且需要更换解码方案时,无需再次缓冲和进行解码准备,可以直接切换解码方案,实现了动态切换,这样的切换对于用户几乎感知不到,提高了用户的使用体验。
【IPC分类】H04N21-44, H04N19-44
【公开号】CN104780378
【申请号】CN201510181638
【发明人】左洪涛
【申请人】腾讯科技(北京)有限公司
【公开日】2015年7月15日
【申请日】2015年4月16日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1