一种计算机视频流处理方法和装置的制造方法

文档序号:9892084阅读:561来源:国知局
一种计算机视频流处理方法和装置的制造方法
【技术领域】
[0001] 本发明设及计算机技术领域,特别是设及一种计算机视频流处理方法和装置。
【背景技术】
[0002] 随着互联网技术的发展,在互联网中用户可W通过视频设备(比如摄像头)与其他 用户进行视频交互。
[0003] 现有技术中,在用户通过视频进行交互时,用户端的调用视频设备的应用程序的 进程直接把IRPQ/0请求包)发送至视频设备,IRP从视频设备获取到视频流数据后,直接返 回应用程序的进程。因此用户端发送给交互对象的视频只能显示视频设备当前录制的实际 的图像,图像单调,无法根据用户的需求在视频中显示用户需求的个性化的信息。

【发明内容】

[0004] 本发明所要解决的技术问题是提供一种计算机视频流处理方法和装置,用于根据 用户需求的参数在视频流数据中显示用户个性化的信息。
[000引为了解决上述问题,本发明开了 一种计算机视频流处理方法,包括:
[0006] 拦截应用程序的进程发送至视频设备的第一 I/O请求包,并使所述第一 I/O请求包 进入等待过程;
[0007] 基于所述第一 I/O请求包中的参数信息重新构造第二I/O请求包;
[000引将所述第二I/O请求包下发至视频设备,获取视频流数据;
[0009] 根据用户的个性化参数,将所述视频流数据修改为所述用户的个性化视频流数 据;
[0010] 将所述个性化视频流数据填入所述第一 I/O请求包,通知所述第一 I/O请求包结束 等待,并返回所述第一 I/O请求包至应用程序的进程。
[0011] 优选的,拦截应用程序的进程发送至视频设备的第一 I/O请求包,包括:
[0012] 将由IRP_MJ_DEVICE_C0NTR0L函数处理的,,且控制码loCon化olCode为I0CTL_KS_ READ_STREAM的第一 I/O请求包进行拦截。
[0013] 优选的,所述基于所述第一I/O请求包中的参数信息重新构造第二I/O请求包,包 括:
[0014] 获取包括第一I/O请求包中的用户空间指针,W及所述用户空间指针指向的结构 体中包括的用于存储视频流数据的第一缓存空间地址,W及应用程序的进程和视频设备通 讯的句柄的参数信息;
[0015] 基于包括所述用户空间指针、所述第一缓存空间地址,和所述句柄的参数信息,仓U 建工作结构体;
[0016] 基于所述工作结构体中的参数信息,重新构造第二I/O请求包;其中所述第二I/O 请求包、工作结构体、第一 I/O请求包均采用所述第一缓存空间地址保存视频流数据。
[0017] 优选的,所述将所述第二I/O请求包下发至视频设备,获取视频流数据,包括:
[0018] 通过视频流过滤驱动将所述第二I/O请求包下发至视频设备,获取视频流数据,将 所述视频流数据填入所述第一缓存空间地址;
[0019] 当所述第二I/O请求包从视频设备获取视频流数据填入第一缓存空间地址,并返 回至视频流过滤驱动后,将所述公用第一缓存空间地址的工作结构体插入等待处理处理队 列队尾。
[0020] 优选的,所述将所述公用第一缓存空间地址的工作结构体插入等待处理处理队列 队尾之前还包括:
[0021] 判断是否存在特效处理模块发送的特效处理打开指令,如果存在,则将所述公用 第一缓存空间地址的工作结构体插入等待处理处理队列队尾;如果不存在,则通知所述第 一 I/O请求包结束等待,返回应用程序的进程;
[0022] 和/或,判断是否存在特效处理模块发送的特效处理关闭指令,如果存在,则通知 所述第一 I/O请求包结束等待,返回应用程序的进程。
[0023] 优选的,所述根据用户的个性化参数,将所述视频流数据修改为所述用户的个性 化视频流数据包括:
[0024] 通过特效处理模块从视频流过滤驱动中获取视频流数据;
[0025] 特效处理模块根据接收的由用户输入的个性化参数,和由视频流过滤驱动从视频 设备获取并发送的视频流参数信息,将所述视频流数据修改为所述用户的个性化视频流数 据。
[0026] 优选的,所述通过特效处理模块从视频流过滤驱动中获取视频流数据包括:
[0027] 视频流过滤驱动提取等待处理队列队首的工作结构体的第一缓存空间地址中的 视频流数据;
[0028] 将所述视频流数据填入获取数据队列队首的视频流数据获取I/O请求包的第二缓 存空间地址;
[0029] 将所述得到视频流数据的视频流数据获取I/O请求包返回至特效处理模块;
[0030] 其中,视频流过滤驱动接收特效处理模块通过视频流数据获取消息发送的视频流 数据获取I/O请求包,并将视频流数据获取I/O请求包所述按序插入获取数据队列队尾。
[0031] 优选的,特效处理模块根据接收由视频流过滤驱动从视频设备获取并发送的视频 流参数信息之前包括:
[0032] 所述视频流过滤驱动收特效处理模块的监控指令,根据所述监控指令在视频流过 滤驱动的控制模块中注册监控过滤器;所述监控过滤监控应用程序的进程是否打开视频设 备;当应用程序的进程打开视频设备,则获取到所述视频设备的视频流参数信息并发送至 特效处理模块。
[0033] 优选的,所述特效处理模块根据接收的由用户输入的个性化参数,和由视频流过 滤驱动从视频设备获取并发送的视频流参数信息,将所述视频流数据修改为所述用户的个 性化视频流数据,包括:
[0034] 将所述视频流数据转换为RGB格式数据,并基于所述RGB格式数据创建位图;
[0035] 将所述位图通过位图加载函数SelectObject加载至设备描述表中;
[0036] 基于所述修改参数,在所述设备描述表中修改所述位图;
[0037] 从设备描述表中提取修改完的对应位图的RGB格式数据,基于所述视频流参数信 息将所述RGB格式数据转换为原视频流数据的格式。
[0038] 优选的,将所述视频流数据转换为RGB格式数据包括:
[0039] 从视频流数据中选取指定位置和大小的数据,并转换为RGB格式;所述指定位置和 大小根据所述视频流参数信息设置。
[0040] 优选的,还包括:
[0041] 由特效处理模块通过发送视频流数据发送消息将所述个性化视频流数据至视频 流过滤驱动。
[0042] 优选的,所述将所述个性化视频流数据填入所述第一I/O请求包,通知所述第一 1/ 0请求包结束等待包括:
[0043] 根据所述结构体与第一 I/O请求包的一一对应关系,将所述个性化数据填入第一 I/O请求包的第一缓存空间地址,通知所述第一 I/O请求包结束等待。
[0044] 优选的,其特征在于,
[0045] 所述视频设备只绑定一个特效处理模块。
[0046] 相应的,还公开了一种计算机视频流处理装置,包括:
[0047] 视频流过滤驱动和特效处理模块,
[004引所述视频流过滤驱动包括:
[0049] 第一I/O请求包拦截模块,用于拦截应用程序的进程发送至视频设备的第一I/O请 求包,并使所述第一 I/O请求包进入等待过程;
[0050] 第二I/O请求包重构模块,用于基于所述第一 I/O请求包中的参数信息重新构造第 二I/O请求包;
[0051 ]第二I/O请求包发送模块,用于将所述第二I/O请求包下发至视频设备,获取视频 流数据;
[0052] 第一 I/O请求包完成模块,用于将所述个性化视频流数据填入所述第一 I/O请求 包,通知所述第一 I/O请求包结束等待,并返回所述第一 I/O请求包至应用程序的进程;
[0053] 所述特效处理模块包括:
[0054] 数据修改模块,用于根据用户的个性化参数,将所述视频流数据修改为所述用户 的个性化视频流数据。
[0055] 优选的,所述第一I/O请求包拦截模块用于:
[0化6]将由 IRP_MJ_DEVICE_C0NTR0L函数处理的,且控制码loControlCode为I0CTL_KS_ READ_STREAM的第一 I/O请求包进行拦截。
[0057] 优选的,所述第二I/O请求包重构模块包括:
[0058] 第一 I/O请求包参数获取模块,用于获取包括第一 I/O请求包中的用户空间指针; W及所述用户空间指针指向的结构体中包括的,用于标识存储视频流数据的第一缓存空间 地址;W及应用程序的进程和视频设备通讯的句柄的参数信息;
[0059] 工作结构体创建模块,用于基于包括所述用户空间指针、所述第一缓存空间地址, 和所述句柄的参数信息,创建工作结构体;
[0060] 第二I/O请求包重构子模块,用于重新构造第二I/O请求包;其中所述第二I/O请求 包、工作结构体、第一 I/O请求包均采用所述第一缓存空间地址保存视频流数据。
[0061 ]优选的,所述第二I/O请求包发送模块包括:
[0062] 第二I/O请求包下发模块,用于通过视频流过滤驱动将所述第二I/O请求包下发至 视频设备,获取视频流数据,将所述视频流数据填入所述第一缓存空间地址;
[0063] 视频流数据队列管理模块,用于当所述第二I/O请求包从视频设备获取视频流数 据填入第一缓存空间地址,并返回至视频流过滤驱动后,将所述公用第一缓存空间地址的 工作结构体插入等待处理处理队列队尾。
[0064] 优选的,所述将所述公用第一缓存空间地址的工作结构体插入等待处理处理队列 队尾之前还包括:
[0065] 打开指令判断模块,用于判断是否存在特效处理模块发送的特效处理打开指令, 如果存在,则将所述公用第一缓存空间地址的工作结构体插入等待处理处理队列队尾;如 果不存在,则通知所述第一 I/O请求包结束等待,返回应用程序的进程;
[0066] 和/或,关闭指令判断模块,用于判断是否存在特效处理模块发送的特效处理关闭 指令,如果存在,则通知所述第一 I/O请求包结束等待,返回应用程序的进程。
[0067] 优选的,所述数据修改模块包括:
[0068] 视频流数据获取模块,用于从视频流过滤驱动中获取视频流数据;
[0069] 第一修改模块,用于在特效处理模块中,根据接收的由用户输入的个性化参数,和 由视频流过滤驱动从视频设备获取并发送的视频流参数信息,将所述视频流数据修改为所 述用户的个性化视频流数据。
[0070] 优选的,所述视频流数据获取模块包括:
[0071] 视频数据提取模块,用于通过视频流过滤驱动提取等待处理队列队首的工作结构 体的第一缓存空间地址中的视频流数据;
[0072] 视频数据转存模块,用于将所述视频流数据填入获取数据队列队首的视频流数据 获取I/O请求包的第二缓存空间地址;
[0073] 视频数据返回模块,用于将所述得到视频流数据的视频流数据获取I/O请求包返 回至特效处理模块;
[0074] 其中,视频流过滤驱动接收特效处理模块通过视频流数据获取消息发送的视频流 数据获取I/O请求包,并将视频流数据获取I/O请求包所述按序插入获取数据队列队尾。
[00巧]优选的,还包括:
[0076] 监控过滤器注册模块,用于所述视频流过滤驱动收特效处理模块的监控指令,根 据所述监控指令在视频流过滤驱动的控制模块中注册监控过滤器;所述监控过滤监控应用 程序的进程是否打开视频设备;当应用程序的进程打开视频设备,则获取到所述视频设备 的视频流参数信息并发送至特效处理模块。
[0077] 优选的,所述第一修改模块包
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1