播放可变分辨率视频的方法技术

技术编号:20015554 阅读:23 留言:0更新日期:2019-01-05 23:11
本发明专利技术涉及视频播放领域,公开了一种播放可变分辨率视频的方法,解决在视频在播放的过程中分辨率发生变化后,无法正常缩放显示的问题。本发明专利技术通过创建一个用于视频的缩放处理的player线程;并监控正在播放的视频的分辨率的变化情况,当视频分辨率变化后,player线程根据视频新的分辨率、屏幕的分辨率以及用户设置的缩放模式来刷新视频的缩放显示。本发明专利技术适用于智能电视播放可变分辨率视频。

【技术实现步骤摘要】
播放可变分辨率视频的方法
本专利技术涉及视频播放领域,特别涉及播放可变分辨率视频的方法。
技术介绍
采用Android系统的智能电视都具有本地USB播放视频或者网络播放视频,通常视频的分辨率都是固定的,例如视频的分辨率为3840*2160,1920*1080等等;一个3840*2160的视频在3840*2160的UD屏上点对点显示,那么就是全屏显示,如果视频的分辨率是1920*1080,那么在3840*2160的UD屏上点对点显示的就只都中间的一部分,不是全屏显示的。传统处理方法在播放的时候缩放处理方法都是获取视频分辨率,获取屏的分辨率,再根据用户设置的缩放模式做缩放处理。这种缩放处理方法只在视频起播的时候获取一次视频的分辨率,后面不会做处理。在固定分辨率上这种方法是没有问题的。但是在可变分辨率的时候,用这种方法出来就会造成显示不正确或者显示不出来等等问题;原因是因为这个视频在播放的过程中分辨率发生了变化。芯片的Scaler没有做出对应的处理。例如一个视频包含1920*1080和3840*2160的分辨率,显示模式为点对点,在3840*2160的屏上,按照固定分辨率处理,那么视频显示在中间的一部分,但是分辨到3840*2160的时候,芯片处理的参数还是1920*1080的参数,那么缩放显示不正常。
技术实现思路
本专利技术要解决的技术问题是:提供一种播放可变分辨率视频的方法,解决在视频在播放的过程中分辨率发生变化后,无法正常缩放显示的问题。为解决上述问题,本专利技术采用的技术方案是:播放可变分辨率视频的方法,包括如下步骤:创建一个用于视频的缩放处理的player线程;监控正在播放的视频的分辨率的变化情况,当视频分辨率变化后,player线程根据视频新的分辨率、屏幕的分辨率以及用户设置的缩放模式来刷新视频的缩放显示。进一步的,为了便于屏幕的分辨率获取,可以在player线程里面设置函数getPanelTimmingAttr,通过函数getPanelTimmingAttr获取屏幕的分辨率。进一步的,为了便于确定正在播放的视频的分辨率是否变化,可以创建一个检测视频分辨率的回调函数checkVideoTimmingChange,并放在一个Handle线程里面,利用回调函数checkVideoTimmingChange来确定正在播放的视频的分辨率是否变化。进一步的,视频的分辨率的变化情况可以采用m_bSignalChanged模块来记录,当m_bSignalChanged模块为TURE时,表示视频分辨率发生变化,当m_bSignalChanged模块为FASLE时,表示视频分辨率未发生变化。进一步的,为了便于视频新的分辨率获取,可以在player线程里面设置函数getPanelTimmingAttr,通过函数getPanelTimmingAttr获取视频新的分辨率。本专利技术的有益效果是:本专利技术通过创建一个用于视频的缩放处理的player线程,player线程根据视频新的分辨率、屏幕的分辨率以及用户设置的缩放模式来刷新视频的缩放显示,实现了可变分辨率的视频的正常缩放显示,在日益快速的网络环境下,个别网络视频会根据网络情况,推送不同分辨率的视频,本专利技术有效的处理了这种情况,在不同的芯片平台上或者之前机器上升级软件都能实现,给用户更好的体验及生产成本有效的降低。附图说明图1是实施例播放可变分辨率视频的流程图。具体实施方式现在本地的USB播放视频或者网络播放视频时,视频都是固定的分辨率,而电视显示端在视频起播的获取视频分辨率,再根据屏的物理分辨率,通过一定算法处理,显示当前的缩放模式。在视频信号没有变化即播放其他视频的时候是不会再去获取视频的分辨率的,对固定分辨率是没有问题。但如果播放的视频是分辨率可以变化的,那么只在视频信号变化即起播的时候获取视频的分辨率,那么在该视频分辨率变化的时候,芯片缩放处理的参数还是之前的分辨率的,这时候显示就不正常。为了解决这种情况,本专利技术采用如下技术方案:(1).创建一个用于视频的缩放处理的player线程;(2).监控正在播放的视频的分辨率的变化情况,当视频分辨率变化后,系统首先获取视频新的分辨率以及屏幕的分辨率,然后player线程在根据视频新的分辨率、屏幕的分辨率以及用户设置的缩放模式来刷新视频的缩放显示,这样线程palyer就会重新做一次缩放,这次的缩放获取的视频分辨率已经更新过的,所以芯片重新根据新的视频分辨率做了缩放处理,从而显示就正常了。步骤(2)中:获取屏幕的分辨率时,本专利技术可以在player线程里面设置函数getPanelTimmingAttr,通过函数getPanelTimmingAttr获取视频新的分辨率;获取视频新的分辨率时,本专利技术可以在player线程里面设置函数getPanelTimmingAttr,通过函数getPanelTimmingAttr获取屏幕的分辨率;本专利技术可以创建一个检测视频分辨率的回调函数checkVideoTimmingChange,并放在一个Handle线程里面,利用回调函数checkVideoTimmingChange来确定正在播放的视频的分辨率是否变化;视频的分辨率的变化情况可以采用m_bSignalChanged模块来记录,当m_bSignalChanged模块为TURE时,表示视频分辨率发生变化,当m_bSignalChanged模块为FASLE时,表示视频分辨率未发生变化。实施例在Android智能电视机上,都支持本地USB播放和网络视频播放,播放的视频都是固定分辨率的视频的时候刷新一次缩放模式就可以了。如图1所示,实施例提供一种可兼容固定分辨率和可变分辨率的视频的显示方法,当视频是可变分辨率的时候,实施例的缩放可根据分辨率的变化而变化,具体的实施方式如下。S1、创建一个Player线程,这个线程用于视频的缩放处理。增加一个用于记录信号变化的m_bSignalChanged模块,这个m_bSignalChanged模块为TRUE的时候Player线程会刷新一次缩放显示;S2、在S1创建的Player的线程里面,通过函数getPanelTimmingAttr获取屏幕的分辨率参数,屏幕的宽高参数:u32PanelWidth和u32PanelHeight;S3、在S1创建的Player的线程里面,通过函数getVideoTimingInfo获取视频的分辨率等参数即m_u16Width和m_u16Height、m_u16FrameRate等参数;S4、在S1的Player线程里面,根据用户选择的缩放模式,全屏、4:3、点对点等等,及步骤S2、步骤S3获取的屏分辨率和视频分辨率,经过缩放处理算法,显示当前的缩放位置。S5、创建一个检测视频分辨率的回调函数checkVideoTimmingChange,并放在一个Handle线程里面。每次间隔一段时间(例如100MS)在该函数里面获取视频的分辨率,并将该分辨率记录下来,在下次100MS的时候,判断两个分辨率是否发生变化。如果发生变化,将m_bSignalChanged设置为TRUE。S6、当m_bSignalChanged为TRUE时,将会重新进行步骤S2-S4,重新根据新的视频分辨率做缩放处理。本文档来自技高网...

【技术保护点】
1.播放可变分辨率视频的方法,其特征在于,包括如下步骤:创建一个用于视频的缩放处理的player线程;监控正在播放的视频的分辨率的变化情况,当视频分辨率变化后,player线程根据视频新的分辨率、屏幕的分辨率以及用户设置的缩放模式来刷新视频的缩放显示。

【技术特征摘要】
1.播放可变分辨率视频的方法,其特征在于,包括如下步骤:创建一个用于视频的缩放处理的player线程;监控正在播放的视频的分辨率的变化情况,当视频分辨率变化后,player线程根据视频新的分辨率、屏幕的分辨率以及用户设置的缩放模式来刷新视频的缩放显示。2.如权利要求1所述的播放可变分辨率视频的方法,其特征在于,在player线程里面设置有函数getPanelTimmingAttr,通过函数getPanelTimmingAttr获取屏幕的分辨率。3.如权利要求1所述的播放可变分辨率视频的方法,其特征在于,通过创建一个检测视频分辨率的回调函数checkVideoTimmingChange,并放在一个...

【专利技术属性】
技术研发人员:杜延伟
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1