[发明专利]一种视频解码进程保护方法及装置有效
申请号: | 201710929541.6 | 申请日: | 2017-10-09 |
公开(公告)号: | CN107566843B | 公开(公告)日: | 2019-07-09 |
发明(设计)人: | 杨亮;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | H04N19/44 | 分类号: | H04N19/44;H04N19/42;H04N21/8547;H04N21/443;H04N21/44;H04N21/439 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 视频 解码 进程 保护 方法 装置 | ||
本发明公开了一种视频解码进程保护方法及装置,该方法包括:在主控进程创建用于与所述主控进程协同对同一视频资源进行解码并播放的解码进程时,从任务管理器中获取SSDT系统服务描述符表中的目标服务函数;对SSDT表的内存去写保护;通过钩挂操作将目标服务函数替换为与目标服务函数不同的新服务函数;在获得用于获取当前进程的进程句柄值的命令时,通过新服务函数判断当前进程是否为所述解码进程,如果是,返回拒绝获取当前进程的句柄值的消息至任务管理器,否则通过目标服务函数返回当前进程的句柄值至任务管理器。从而本发明解决了通过任务管理器容易将一个或多个解码进程误杀的技术问题。
技术领域
本发明涉及视频解码领域,尤其涉及一种视频解码进程保护方法及装置。
背景技术
现有技术中都是采用在一个进程中进行音视频解码,然后将解码后音视频进行播放。这种方案比较简单、快速。
但是如果要实现播放器多开(播放器多开就是在一个播放器中能够同时打开多个视频资源,比如:视频文件或者网络视频流)。随着多开视频的个数越来越多,那么该进程需要的系统资源,如CPU占用、内存消耗也就会越来越多。达到该进程的性能瓶颈时会使播放效果越来越差,画面越来越卡顿,甚至会造成播放器的崩溃。为了防止这种情况,则由一个独立的进程来解码视频流,以避免了画面效果差和卡顿的问题。
但是,随着视频多开就会出现多个解码进程,通过任务管理器容易将其中一个或多个解码进程误杀,进而导致播放器主程序的视频播放停止。
发明内容
本发明实施例通过提供一种视频解码进程保护方法及装置,解决了通过任务管理器容易将一个或多个解码进程误杀的技术问题。
第一方面,本发明实施例提供了一种视频解码进程保护方法,包括:
在主控进程创建用于与所述主控进程协同对同一视频资源进行解码并播放的解码进程时,从任务管理器中获取SSDT系统服务描述符表中的目标服务函数,其中,所述目标服务函数用于获取当前进程的进程句柄值;
对所述SSDT表的内存去写保护;
通过钩挂操作将所述目标服务函数替换为与所述目标服务函数不同的新服务函数;
在获得用于获取当前进程的进程句柄值的命令时,通过所述新服务函数判断当前进程是否为所述解码进程,如果是,返回拒绝获取当前进程的句柄值的消息至所述任务管理器,否则通过所述目标服务函数返回当前进程的句柄值至所述任务管理器。
可选的,所述从任务管理器中获取SSDT系统服务描述符表中的目标服务函数,包括:
通过所述目标服务函数的服务号定位出所述目标服务函数所在的地址;
根据所述目标服务函数所在的地址获取所述目标服务函数。
可选的,所述对所述SSDT表的内存去写保护,包括:
创建与所述解码进程对应的新虚拟内存;
将所述SSDT表所在的原始虚拟内存映射至所述新虚拟内存,使得所述新虚拟内存与所述SSDT表所在的虚拟内存对应同一物理内存;
锁定所述新虚拟内存的内存描述符。
可选的,所述通过钩挂操作将所述目标服务函数替换为与所述目标服务函数不同的新服务函数,包括:
根据锁定的所述新虚拟内存的内存描述符和所述目标服务函数的服务号,从所述新虚拟内存中识别出所述目标服务函数并替换为所述新服务函数。
可选的,在所述主控进程创建所述解码进程之后,所述方法还包括:
在所述主控进程与所述解码进程协同对同一视频资源进行解码并播放的过程中,监测所述主控进程与所述解码进程之间的RPC通信连接是否断开;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710929541.6/2.html,转载请声明来源钻瓜专利网。