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

文档序号:9892084阅读:来源:国知局
90] 步骤C12,将所述位图通过位图加载函数SelectObject加载至设备描述表中;
[0191] 在创建位图后,将位图通过位图加载函数SelectObject加载至设备描述表中(DC) 中。
[0192] 其中,设备描述表(Device Context,DC)是一个信息结构体,包含物理输出设备及 其驱动程序。在Windows平台下,所有的的图形操作都是通过它完成。
[0193] 位图加载函数SelectObject,该函数选择一对象到指定的设备上下文环境中(也 即一个DC中),该新对象替换先前的相同类型的对象。
[0194] SelectObject函数原型:HGDI0BJ SelectObject化DC hdc,HGDI0BJ hgdiobj);其 中,参数hdc:设备上下文环境的句柄,hgdiobj:被选择的对象的句型。
[01%]步骤C13,基于所述修改参数,在所述设备描述表中修改所述位图;
[0196] 在本步骤中,优选的,基于所述修改参数,在所述设备描述表中修改所述位图包 括:
[0197] 当所述修改参数为文字信息时,调用化awText函数在所述位图中函数添加文字信 息。
[0198] 即用户输入的修改参数为文字信息时,则可直接调用化awText函数在所述位图中 函数添加文字信息。
[0199] 其中,DrawText函数在指定的矩形里写入格式化的正文,根据指定的方法对正文 格式化(扩展的制表符,字符对齐、折行等)。该函数原型为:
[0200]
[0201]
[0202] 当用户输入的为图片信息时,则根据将图片覆盖在位图之中即可。在本发明实施 例中,对于图片处理时,需要在步骤cm中选择指定位置和大小的数据,即在原视频流数据 中选择一块区域用于显示用户选择的个性化图片。
[0203] 优选的,基于所述修改参数,在所述设备描述表中修改所述位图包括:
[0204] 当所述修改参数为图片时,在所述设备描述表中修改所述位图包括:
[0205] 当所述修改参数为静态图片时,直接将所述静态图片覆盖在所述位图中。
[0206] 当所述修改参数为动态图片时,选择组成动态图片的各帖图片中的一帖图片覆盖 在所述位图中。
[0207] 比如对于GIF格式(Graphics Interchange F'ormat,"图像互换格式")动态图,其 是由多帖数据组合而成,相应的只需要选择其中一帖数据覆盖在所述位图之中即可。
[0208] 当所述修改参数为流式网络图形格式图片时,选择组成所述流式网络图形图片的 各幅图中的一幅图片覆盖在所述位图中。
[0209] 流式网络图形格式(Portable Network Gra曲ic化rmat,流式网络图形)图片,其 是由多幅图片组合而成,相应的选择其中一幅图片覆盖在所述位图中即可。
[0210] 步骤C14,从设备描述表中提取修改完的对应位图的RGB格式数据,基于所述视频 流参数信息将所述RGB格式数据转换为原视频流数据的格式。
[0211] 当对所述位图修改完成后,从设备描述表中提取修改完的对应位图的RGB格式数 据,然后基于原视频流数据的视频流参数信息(比如视频流数据的宽、高等),将所述RGB格 式数据转换为原视频流数据的格式。
[0212] 另外,当选择指定位置和大小的数据时,将由所述RGB格式数据转换得到的原视频 流格式的数据替换之前从指定位置提取的数据。
[0213 ]如此,即可得到对应用户的个性化视频流数据。
[0214] 在特效处理模块处理得到所述个性化视频流数据后,还包括:
[0215] 将所述个性化视频流数据发送至视频流过滤驱动。
[0216] 优选的,将所述个性化视频流数据发送至视频流过滤驱动包括:
[0217] 步骤S143,由特效处理模块通过发送视频流数据发送消息,将所述个性化视频流 数据至视频流过滤驱动。
[021引视频流数据发送消息(比如指定的C0NTR0L_FRAMERECV消息)中包括了个性化视频 流数据,和其对应的工作结构体的标识。
[0219] 步骤150,将所述个性化视频流数据填入所述第一 I/O请求包,通知所述第一 I/O请 求包结束等待,并返回所述第一 I/O请求包至应用程序的进程。
[0220] 当视频流过滤驱动获得所述修改完成的个性化视频流数据后,则将该个性化数据 填入相应的第一 I/O请求包,通知所述I/O请求包完成并返回所述第一 I/O请求包至应用程 序的进程。
[0221] 优选的所述将所述个性化视频流数据填入所述第一 I/O请求包,通知所述第一 I/O 请求包结束等待包括:
[0222] 步骤S151,根据所述结构体与第一 I/O请求包的一一对应关系,将所述个性化数据 填入第一 I/O请求包的第一缓存空间地址,通知所述第一 I/O请求包结束等待。
[0223] 在本发明实施例中,当视频流过滤驱动获得所述修改完成的个性化视频流数据 后,其是通过等待处理队列和获取数据队列的对应关系进行的对应,那么所述视频流过滤 驱动接收到所述个性化视频后,根据对应关系将等待处理队列队首的工作结构体的第一缓 存空间地址中的内容用所述个性化视频流数据替换,而第一 I/O请求包与所述工作结构体 均采用所述第一缓存空间地址保存视频流数据,那么此时通知第一 I/O请求包完成,然后将 完成的第一 I/O请求包至应用程序的进程,即可实现用户个性化视频数据的显示和传输。
[0224] 如此,即可将用户的个性化参数添加至视频流数据中,进行显示和传输。
[0225] 本实施例中,如前所述视频流过滤驱动中创建了针对视频设备的物理驱动模块, 而本发明实施例的对第一 I/O请求包的拦截过程,第二I/O请求包的重构过程,第一 I/O请求 包的完成过程均可由物理驱动模块进行,控制模块可负责物理驱动模块与特效处理模块之 间的信息传递。
[0226] 在本实施例中,首先,应用程序的进程的第一I/O请求包有视频流过滤驱动拦截, 并让其在视频流过滤驱动中等待,使应用程序的进程的第一 I/O请求包不再之间下发至视 频设备;其次,视频流过滤驱动基于第一 I/O请求包中的参数信息重构第二I/O请求包,并由 视频流过滤驱动下发至视频设备,获取视频流数据返回至视频流过滤驱动;再次,由特效模 块从视频流过滤驱动中获取视频流数据进行个性化的修改,然后将修改后的个性化视频流 数据返回至视频流过滤驱动;最后,视频流过滤驱动将所述个性化视频流数据填入至前面 等待的第一 I/O请求包,使其返回应用程序的进程。不用强行的暴力的阻断应用程序的进程 和视频设备之间的通讯,也不会破坏应用程序的进程与视频设备之间正常交互的协议,可 安全准确的将用户的个性化信息加入视频流数据中进行显示。在本发明中,特效处理模块 的特效处理除了添加文字、添加图片,还可包括添加边框等。
[0227] 参照图3,其示出了本申请一种计算机视频流处理装置,包括:
[0228] 视频流过滤驱动200和特效处理模块300,
[0229] 所述视频流过滤驱动200包括:
[0230] 第一I/O请求包拦截模块210,用于拦截应用程序的进程发送至视频设备的第一 1/ 0请求包,并使所述第一 I/O请求包进入等待过程;
[0231] 第二I/O请求包重构模块220,用于基于所述第一I/O请求包中的参数信息重新构 造第二I/O请求包;
[0232] 第二I/O请求包发送模块230,用于将所述第二I/O请求包下发至视频设备,获取视 频流数据;
[0233] 第一I/O请求包完成模块240,用于将所述个性化视频流数据填入所述第一I/O请 求包,通知所述第一 I/O请求包结束等待,并返回所述第一 I/O请求包至应用程序的进程;
[0234] 所述特效处理模块300包括:
[0235] 数据修改模块310,用于根据用户的个性化参数,将所述视频流数据修改为所述用 户的个性化视频流数据。
[0236] 其中,所述第一I/O请求包拦截模块用于:
[0237] 将由 IRP_MJ_DEVICE_C0NTR0L函数处理的,且控制码loControlCode为I0CTL_KS_ READ_STREAM的第一 I/O请求包进行拦截。
[0238] 其中,参照图4,所述第二I/O请求包重构模块包括:
[0239] 第一I/O请求包参数获取模块A21,用于获取包括第一I/O请求包中的用户空间指 针;W及所述用户空间指针指向的结构体中包括的,用于标识存储视频流数据的第一缓存 空间地址;W及应用程序的进程和视频设备通讯的句柄的参数信息;
[0240] 工作结构体创建模块A22,用于基于包括所述用户空间指针、所述第一缓存空间地 址,和所述句柄的参数信息,创建工作结构体;
[0241] 第二I/O请求包重构子模块A23,用于重新构造第二I/O请求包;其中所述第二I/O 请求包、工作结构体、第一 I/O请求包均采用所述第一缓存空间地址保存视频流数据。。
[0242] 其中,所述第二I/O请求包发送模块包括:
[0243] 第二I/O请求包下发模块,用于通过视频流过滤驱动将所述第二I/O请求包下发至 视频设备,获取视频流数据,将所述视频流数据填入所述第一缓存空间地址;
[0244] 视频流数据队列管理模块,用于当所述第二I/O请求包从视频设备获取视频流数 据填入工作结构体的第一缓存空间地址,并返回至视频流过滤驱动后,将所述公用第一缓 存空间地址的工作结构体插入等待处理处理队列队尾。
[0245] 其中,所述数据修改模块包括:
[0246] 视频流数据获取模块,用于从视频流过滤驱动中获取视频流数据;
[0247] 第一修改模块,用于在特效处理模块中,根据接收的由用户输入的个性化参数,和 由视频流过滤驱动从视频设备获取并发送的视频流参数信息,将所述视频流数据修改为所 述用户的个性化视频流数据。
[0248] 在所述将所述公用第一缓存空间地址的工作结构体插入等待处理处理队列队尾 之前还包括:
[0249] 打开指令判断模块,用于判断是否存在特效处理模块发送的特效处理打开指令, 如果存在,则将所述公用第一缓存空间地址的工作结构体插入等待处理处理队列队尾;如 果不存在,则通知所述第一 I/O请求包结束等待,返回应用程序的进程;
[0250] 和/或,关闭指令判断模块,用于判断是否存在特效处理模块发送的特效处理关闭 指令,如果存在,则通知所述第一 I/O请求包结束等待,返回应用程序的进程。
[0251 ]其中,所述视频流数据获取模块包括:
[0252] 视频数据提取模块,用于通过视频流过滤驱动提取等待处理队列队首的工作结构 体的第一缓存空间地址中的视频流数据;
[0253] 视频数据转存模块,用于将所述视频流数据填入获取数据队列队首的视频流数据 获取I/O请求包的第二缓存空间地址;
[0254] 视频数据返回模块,用于将所述得到视频流数据的视频流数据获取I/O请求包返 回至特效处理模块;
[0255] 其中,视频流过滤驱动接收特效处理模块通过视频流数据获取消息发送的视频流 数据获取I/O请求包,并将视频流数据获取I/O请求包所述按序插入获取数据队列队尾。
[0巧6] 其中,还包括:
[0257] 监控过滤器注册模块,用于所述视频流过滤驱动收特效处理模块的监控指令,根 据所述监控指令在视频流过滤驱动的控制模块中注册监控过滤器;所述监控过滤监控应用 程序的进程是否打开视频设备;当应用程序的进程打开
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1