实现DVB数据多模块分发的方法及装置.pdf

上传人:li****8 文档编号:4061215 上传时间:2018-08-13 格式:PDF 页数:13 大小:661.50KB
返回 下载 相关 举报
摘要
申请专利号:

CN201410780619.9

申请日:

2014.12.17

公开号:

CN104410895A

公开日:

2015.03.11

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04N21/43申请日:20141217|||公开

IPC分类号:

H04N21/43(2011.01)I; H04N21/435(2011.01)I; H04N21/434(2011.01)I

主分类号:

H04N21/43

申请人:

青岛海信宽带多媒体技术有限公司

发明人:

孟新红

地址:

266100山东省青岛市崂山区株洲路151号

优先权:

专利代理机构:

青岛联智专利商标事务所有限公司37101

代理人:

李升娟

PDF下载: PDF下载
内容摘要

本发明公开了一种实现DVB数据多模块分发的方法及装置,所述方法包括:接收功能模块发送的获取DVB数据的请求;解析所述获取DVB数据的请求,得到所述功能模块所请求的数据类型;创建与所述功能模块对应的、包括有监听参数的数据监听,并将所述数据类型发送给解析数据源的解析模块;所述监听参数至少包括所述功能模块所请求的数据类型;将接收到的所述解析模块发送的所述功能模块请求的DVB数据通过所述数据监听发送给所述功能模块。应用本发明的方法及装置,可以解决现有技术中多个模块请求DVB数据产生冲突而导致数据获取速度延时、甚至获取数据失败的技术问题。

权利要求书

权利要求书1.  一种实现DVB数据多模块分发的方法,其特征在于,所述方法包括:接收功能模块发送的获取DVB数据的请求;解析所述获取DVB数据的请求,得到所述功能模块所请求的数据类型;创建与所述功能模块对应的、包括有监听参数的数据监听,并将所述数据类型发送给解析数据源的解析模块;所述监听参数至少包括所述功能模块所请求的数据类型;将接收到的所述解析模块发送的所述功能模块请求的DVB数据通过所述数据监听发送给所述功能模块。2.  根据权利要求1所述的方法,其特征在于,所述功能模块调用请求函数,发出所述获取DVB数据的请求;所述创建与所述功能模块对应的、包括有监听参数的数据监听之前,还包括: 获取所述请求函数为所述功能模块分配的唯一的标识;所述创建与所述功能模块对应的、包括有监听参数的数据监听具体为:创建包括所述标识以及所述功能模块所请求的数据类型的数据监听,并保存所述标识以及所述数据类型。3.  根据权利要求2所述的方法,其特征在于,所述创建包括所述标识以及所述功能模块所请求的数据类型的数据监听具体包括:将所述标识和所述数据类型组合为一个字符串;所述保存所述标识以及所述数据类型具体为:保存所述字符串。4.  根据权利要求3所述的方法,其特征在于,所述将接收到的所述解析模块发送的所述功能模块请求的DVB数据通过所述数据监听发送给所述功能模块具体为:接收所述解析模块发送的DVB数据,并获取所接收的DVB数据的数据类型;查找所保存的字符串中的标识和数据类型,并比较查找到的数据类型与获取的数据类型是否相同;若相同,则将所述数据类型对应的DVB数据通过所述数据监听发送给所述标识所指示的功能模块。5.  根据权利要求1至4中任一项所述的方法,其特征在于,所述将接收到的所述解析模块发送的、与所述功能模块对应的DVB数据发送给所述功能模块之后还包括:所述功能模块调用取消请求函数,由所述取消请求函数释放所述功能模块对应的数据监听。6.  一种实现DVB数据多模块分发的装置,其特征在于,所述装置包括:DVB数据请求接收模块,用于接收功能模块发送的获取DVB数据的请求;DVB数据请求解析模块,用于解析所述DVB数据请求接收模块接收的所述获取DVB数据的请求,得到所述功能模块所请求的数据类型;数据监听创建及数据类型发送模块,用于创建与所述功能模块对应的、包括有监听参数的数据监听,并将所述数据类型发送给DVB数据解析及发送模块;所述监听参数至少包括所述功能模块所请求的数据类型;DVB数据解析及发送模块,根据所述数据监听创建及数据类型发送模块发送的所述数据类型解析数据源,获得DVB数据并发送;DVB数据分发模块,用于将所述DVB数据解析及发送模块发送的DVB数据通过数据监听发送给所述功能模块。7.  根据权利要求6所述的装置,其特征在于,所述装置还包括:请求函数调用模块,用于供所述功能模块调用请求函数,并通过所述请求函数发出所述获取DVB数据的请求;标识分配模块,用于为所述功能模块分配唯一的标识;存储模块,用于保存所述标识及所述数据类型。8.  根据权利要求7所述的装置,其特征在于,所述装置还包括:字符串生成模块,用于将所述标识及所述数据类型组合成为字符串;所述存储模块以保存所述字符串的形式保存所述标识及所述数据类型。9.  根据权利要求8所述的装置,其特征在于,所述DVB数据分发模块包括:DVB数据接收及数据类型获取单元,用于接收所述DVB数据解析及发送模块发送的DVB数据,并获取所接收的DVB数据的数据类型;字符串判定单元,用于查找所述存储模块中保存的字符串中的标识和数据类型,并比较判断查找到的数据类型与获取的数据类型是否相同;DVB数据分发单元,用于在字符串判定单元判定查找到的数据类型与解析出的数据类型相同时将所述数据类型对应的DVB数据通过数据监听发送给所述标识所指示的功能模块。10.  根据权利要求6至9中任一项所述的装置,其特征在于,所述装置还包括:取消请求函数调用模块,用于供所述功能模块调用取消请求函数,并由所述取消请求函数释放所述功能模块对应的数据监听。

说明书

说明书实现DVB数据多模块分发的方法及装置
技术领域
本发明属于通信技术领域,具体地说,是涉及一种DVB数据处理技术,更具体地说,是涉及一种实现DVB数据多模块分发的方法及装置。
背景技术
MPEG-2标准于1994年被运动图像专家组制定出来,分成系统层、视频压缩层和音频压缩层。其中,系统层主要用来描述音视频的数据复用和音视频的同步方式。在系统层定义了传输流TS(Transport Stream)形式的码流。TS传输流在电视节目传输领域得到广泛的应用。
要完成电视节目的搜索、播放、显示电子节目菜单EPG(Electronic Program Guide)、可隐藏的字幕CC(Closed Caption)、图文电视(TeleText)等业务功能,需要从TS传输流中分析出Section、分组基本码流PES(Packetized Elementary Stream)、基本码流ES(Elementary Stream)等DVB数据。其中,TS流可以是通过高频头Tuner解调出来的,也可以是网络推送的TS数据文件或是录制的TS码流文件。
现有的机顶盒或一体机设备中,从TS码流中分析相关DVB数据均是采用各功能模块(需要使用DVB数据的业务功能模块)独立处理、获取所需DVB数据的工作模式。如果采用这种工作模式,在多个模块同时请求相同包标识PID(Packet Identifier)的数据时,只能有一个模块的数据请求能够得到响应,而其他模块的数据请求则受到阻塞,从而引起其他模块数据获取延时,甚至会导致获取数据失败。
发明内容
本发明的目是提供一种实现DVB数据多模块分发的方法及装置,以解决现有技术中多个模块请求DVB数据产生冲突而导致数据获取速度延时、甚至获取数据失败的技术问题。
为解决上述技术问题,本发明提供的DVB数据多模块分发的方法采用下述技术方案来实现:
一种实现DVB数据多模块分发的方法,所述方法包括:
接收功能模块发送的获取DVB数据的请求;
解析所述获取DVB数据的请求,得到所述功能模块所请求的数据类型;
创建与所述功能模块对应的、包括有监听参数的数据监听,并将所述数据类型发送给解析数据源的解析模块;所述监听参数至少包括所述功能模块所请求的数据类型;
将接收到的所述解析模块发送的所述功能模块请求的DVB数据通过所述数据监听发送给所述功能模块。
为解决前述技术问题,本发明提供的DVB数据多模块分发的装置采用下述技术方案来实现:
一种实现DVB数据多模块分发的装置,所述装置包括:
DVB数据请求接收模块,用于接收功能模块发送的获取DVB数据的请求;
DVB数据请求解析模块,用于解析所述DVB数据请求接收模块接收的所述获取DVB数据的请求,得到所述功能模块所请求的数据类型;
数据监听创建及数据类型发送模块,用于创建与所述功能模块对应的、包括有监听参数的数据监听,并将所述数据类型发送给DVB数据解析及发送模块;所述监听参数至少包括所述功能模块所请求的数据类型;
DVB数据解析及发送模块,根据所述数据监听创建及数据类型发送模块发送的所述数据类型解析数据源,获得DVB数据并发送;
DVB数据分发模块,用于将所述DVB数据解析及发送模块发送的DVB数据通过数据监听发送给所述功能模块。
与现有技术相比,本发明的优点和积极效果是:
本发明在接收到功能模块发送的获取DVB数据的请求后,通过创建与功能模块对应的数据监听,可以利用数据监听与解析数据源的解析模块交互,将请求的DVB数据的数据类型发送给解析模块,接收到解析模块发送的DVB数据后,将接收到的DVB数据分别发送给请求DVB数据的功能模块。采用本发明的方案,各个功能模块在请求DVB数据时只需与数据监听交互,而数据监听分发数据时也无需关心解析数据的具体过程,只需要根据各个功能模块的请求将接收到的与各个功能模块对应的DVB数据分发给各个功能模块。因此,当多个功能模块同时请求相同的DVB数据时,可以通过创建多个数据监听同时响应多个请求,因而避免了当多个功能模块同时请求相同的DVB数据时,解析模块只能响应一个数据请求而阻塞其他数据请求所带来的获取信息延时甚至获取失败的缺陷。而且,功能模块将所请求的数据类型通过数据监听发送给解析模块,由解析模块根据所请求的数据类型对数据进行解析,如果多个功能模块请求的数据类型相同,则解析模块只需要解析一次相应的数据,然后将解析出的数据发送给数据监听,由数据监听分发给各个功能模块即可,在一定程度上节省了系统资源,提高了系统的运行效率。
结合附图阅读本发明的具体实施方式后,本发明的其他特点和优点将变得更加清楚。
附图说明
图1是本发明实现DVB数据多模块分发的方法一个实施例的流程图;
图2是本发明实现DVB数据多模块分发的方法另一个实施例的流程图;
图3是本发明实现DVB数据多模块分发的装置一个实施例的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下将结合附图和实施例,对本发明作进一步详细说明。
请参见图1,该图所示为本发明实现DVB数据多模块分发的方法一个实施例的流程图。
如图1所示,该实施例实现DVB数据多模块分发的具体过程包括下述步骤:
步骤101:接收功能模块发送的获取DVB数据的请求。
需要使用DVB数据的功能模块,如节目搜索、节目播放、显示电子节目菜单EPG等,要实现相应的功能,会发出获取DVB数据的请求。该步骤所接收的即为这些功能模块所发送的获取DVB数据的请求。
功能模块可以通过各种方式发出获取DVB数据的请求,如通过后续实施例所记载的调用请求函数的方式,或者通过中断的方式,等等。而且,在该实施例中,针对是多个功能模块均同时请求DVB数据的情形。
步骤102:解析获取DVB数据的请求,得到所请求的数据类型。
此处所说的数据类型,是用来表征功能模块所需要的DVB数据的一个参数。其不仅包括功能模块所需要的是TS数据或PES数据或section数据,还包括具体的PID等参数。譬如,如果功能模块请求TS数据或PES数据,数据类型包括有表征所需数据的PID;如果模块请求section数据,数据类型包括有表征所需数据的PID及表征过滤类型的过滤条件,等等。功能模块在请求DVB数据时,在数据请求中附有数据类型;或者,直接发送包含有数据类型的一个请求。因而,在接收到功能模块发送的获取DVB数据的请求时,首先从所接收的DVB数据请求中解析得到所请求的数据类型,以便后续能为功能模块反馈正确的所需DVB数据。
步骤103:创建与功能模块对应的数据监听,将数据类型发送给解析数据源的解析模块。
创建一个与功能模块一一对应、包括有监听参数的数据监听,并将步骤102解析出的数据类型发送给解析模块。功能模块与数据监听的一一对应关系,可以通过多种方式来实现,例如,可以通过后续实施例的标识的方式实现,也可以通过其他能够实现对应关系的方式实现。
具体来说,数据监听是一个能够监听是否反馈了需求的数据、能接收所需的数据并能将数据分发至功能模块的监听器。该数据监听可以通过软件中的任务的形式来实现。监听参数用来表示该数据监听所要监听的数据,也即反应数据监听所需求的反馈数据,且监听参数至少包括该监听对应的功能模块所请求的数据类型。而解析模块是指能够解析数据源、获取DVB数据的模块,其可以是DEMUX模块。此处所说的数据源,可以是TS数据流。而且,TS数据流可以是TS码流文件中的数据流,也可以是Tuner推送的数据流或网络推送的数据流。解析模块获得数据类型,即可从数据源中解析出数据类型所对应的DVB数据。具体解析过程为现有技术,在此不作具体阐述。
步骤104、将接收到的解析模块发送的DVB数据通过数据监听发送至对应的功能模块。
解析模块根据数据类型解析出DVB数据之后,将根据数据监听的监听参数将DVB数据反馈至所需DVB数据的数据监听。由于数据监听与功能模块一一对应,因此,数据监听即可将接收到的DVB数据发送至请求该DVB数据的功能模块。
基于上述步骤实现的DVB数据多用户分发的方法,在接收到功能模块发送的获取DVB数据的请求后,创建了与功能模块对应的数据监听,利用数据监听与解析模块交互,由数据监听将解析模块解析出的DVB数据转发至功能模块。在整个过程中,各个功能模块在请求DVB数据时仅与数据监听交互,不会与解析模块交互,而数据监听也仅是与解析模块互传数据,而无需关心解析模块解析数据的具体过程。因而,当多个功能模块同时请求相同的DVB数据时,可以通过创建多个数据监听同时响应多个请求,避免了当多个功能模块同时请求相同的DVB数据时,解析模块只能响应一个数据请求而阻塞其他数据请求所带来的获取信息延时甚至获取失败的缺陷。而且,功能模块将所请求的数据类型通过数据监听发送给解析模块,由解析模块根据所请求的数据类型对数据进行解析,如果多个功能模块请求的数据类型相同,则解析模块只需要解析一次相应的数据,然后将解析出的数据发送给数据监听,由数据监听分发给各个功能模块即可,在一定程度上节省了系统资源,提高了系统的运行效率。
而且,由于功能模块及数据监听无需关心DVB数据的解析,也无需考虑解析所用硬件资源,因而,功能模块的数量不会因硬件资源的限制而受限。此外,由于无需考虑为模块分配解析用硬件资源,作为数据源的TS流不仅仅局限为来自硬件的TS流,如来自Tuner推送的数据流,可为脱离硬件平台的所有可能TS流,如已经录制好的TS码流文件中的数据流,或者网络推送的数据流等,解决了数据源受限制的问题。
参见图2,该图示出了本发明实现DVB数据多模块分发的方法另一个实施例的流程图。
如图2所示,该实施例实现DVB数据多模块分发的具体过程包括下述步骤:
步骤201:功能模块调用请求函数,发出获取DVB数据的请求。
通过函数调用方式发出请求,能够为不同的功能模块设置统一的调用接口,便于对多个功能模块的统一管理。
步骤202:接收功能模块发送的获取DVB数据的请求,利用请求函数为功能模块分配标识。
在接收功能模块发送的获取DVB数据的请求的同时,利用请求函数为功能模块分配唯一的一个标识,用于表征该功能模块。标识的分配可以采取随机的方式,或者其他约定的方式,只要保证每个功能模块具有唯一的标识即可。
步骤203:解析获取DVB数据的请求,得到所请求数据类型。
该步骤可参考图1实施例步骤102的描述。
步骤204:将功能模块的标识及请求的数据类型组合为字符串并保存。
将步骤202为功能模块分配的标识及步骤203所解析出的功能模块所请求是数据类型组合为一个字符串,并保存该字符串。
举个例子,假设多个功能模块,比如节目搜索模块、节目更新模块等功能模块都请求PID为0000的数据时,为各个功能模块分配唯一的标识,记为uuid,并加上数据类型section,则形成的字符串为:
1、PID=0000(0)   
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 uuid=362e1925-f386-4f5d-bf5d-ad7bee1327de
字符串:362e1925-f386-4f5d-bf5d-ad7bee1327de-section
2、PID=0000(0)   
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 uuid=76f5b6d1-6ca7-400c-b56d-d50c03b20d7d 
字符串:76f5b6d1-6ca7-400c-b56d-d50c03b20d7d-section
3、PID=0000(0)   
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 uuid=af8288db-c8e8-453f-9125-33af0862924d 
字符串:af8288db-c8e8-453f-9125-33af0862924d-section
4、PID=0000(0)   
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 uuid=be1a77e9-e750-444e-8c99-5eb0272853e0
字符串:be1a77e9-e750-444e-8c99-5eb0272853e0-section
5、PID=0000(0) 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 uuid=d7d37d10-099e-476b-852d-23b2020a1e2a
字符串:d7d37d10-099e-476b-852d-23b2020a1e2a-section
采用字符串的形式来表征标识和数据类型,方便使用。具体来说,如果同一个功能模块请求的数据类型发生变化,例如不是section类型的数据,而是PES或TS数据,那么,只需要将字符串中的后面数据类型部分,即“section”替换为“PES”或”TS”即可,无需再更改功能模块的标识,一定程度上提高了功能模块区分的效率。
步骤205:创建与功能模块对应的数据监听,将数据类型发送给解析模块。
该步骤更具体的描述参见图1实施例步骤103的记载。
步骤206:接收解析模块发送的DVB数据,获取该DVB数据的数据类型。
解析模块根据数据类型解析出DVB数据之后,将根据数据监听的监听参数将DVB数据反馈至所需DVB数据的数据监听。而且,所解析出的DVB数据中会包含有该DVB数据的数据类型,从中读取出该数据类型。
步骤207:从保存的字符串中查找与获取的DVB数据的数据类型相同的数据类型的字符串,将DVB数据通过数据监听发送给查找到的字符串中的标识所指示的功能模块。
在步骤204中,数据监听保存了功能模块的标识及其请求的数据类型所组和而成的字符串。在接收到解析模块发来的DVB数据时,可以从保存的字符串中查找具有接收到的DVB数据的数据类型的字符串。在查找到相同的数据类型时,再根据字符串中该数据类型所对应的标识,将DVB数据发送给该标识所指示的功能模块。由于功能模块的标识是唯一的,数据类型是功能模块请求中携带的,因而,功能模块不会获取到错误的数据。
而且,由于解析模块仅关心数据类型,相同数据类型仅作一次解析,当存在有多个请求同数据类型的功能模块时,会根据解析模块解析出的DVB数据的数据类型查找到多个具有相同数据类型的字符串,但由于每个字符串的标识不同,该DVB数据会同时发送给多个标识不同的功能模块,不会产生不同功能模块获取同一数据类型时存在阻塞的情况。
步骤208:功能模块获取到DVB数据,调用取消请求函数,由取消请求函数释放该功能模块的数据监听。
功能模块获得了所需的DVB数据之后,调用取消请求函数,从而释放其所对应的数据监听,以便及时地过滤掉没有用的数据监听,节省系统资源。而且,通过函数调用方式释放数据监听,能够为不同的功能模块设置统一的调用接口,便于对多个功能模块的统一管理。
请参见图3,该图示出了本发明实现DVB数据多模块分发的装置一个实施例的结构框图。
如图3所示,该实施例的装置采用具有下述各模块的结构来实现:
DVB数据请求接收模块325,用于接收功能模块31发送的获取DVB数据的请求。其中,功能模块31并非仅指一个功能模块,也用来表示多个功能模块,尤其是指多个功能模块。
DVB数据请求解析模块326,用于解析DVB数据请求接收模块325接收的获取DVB数据的请求,得到功能模块31所请求的数据类型。
数据监听创建及数据类型发送模块327,用于创建与功能模块31对应的、包括有监听参数的数据监听,并将数据类型发送给DVB数据解析及发送模块33;其中,监听参数至少包括功能模块31所请求的数据类型。
DVB数据解析及发送模块33,根据数据监听创建及数据类型发送模块327发送的数据类型解析数据源34,获得DVB数据并发送。
DVB数据分发模块328,用于将DVB数据解析及发送模块33发送的DVB数据通过数据监听发送给功能模块31。
此外,该实施例的装置还可以包括:
请求函数调用模块321,用于供功能模块31调用请求函数,并通过请求函数发出获取DVB数据的请求。
标识分配模块322,用于为功能模块31分配唯一的标识。
字符串生成模块323,用于将标识及数据类型组合成为字符串。
存储模块324,用于保存标识及数据类型。具体来说,可以是以保存字符串的形式保存标识及数据类型。
取消请求函数调用模块329,用于供功能模块31调用取消请求函数,并由取消请求函数释放功能模块31对应的数据监听。
另外,DVB数据分发模块328可采用下述各单元结构来实现。DVB数据分发模块328包括:
DVB数据接收及数据类型获取单元3281,用于接收DVB数据解析及发送模块33发送的DVB数据,并获取所接收的DVB数据的数据类型。
字符串判定单元3282,用于查找存储模块324中保存的字符串中的标识和数据类型,并比较判断查找到的数据类型与获取的数据类型是否相同。
DVB数据分发单元3283,用于在字符串判定单元3282判定查找到的数据类型与解析出的数据类型相同时将数据类型对应的DVB数据通过数据监听发送给字符串中的标识所指示的功能模块31。
上述各模块协同工作,按照图1及图2方法实施例的流程运行相应软件,实现基于数据监听创建及数据类型发送模块327所创建的数据监听模块对多模块DVB数据的分发。各模块更详细的工作原理、过程及产生的效果,参见图1及图2实施例的详述。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实施例对本发明进行了详细的说明,对于本领域的普通技术人员来说,依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明所要求保护的技术方案的精神和范围。

实现DVB数据多模块分发的方法及装置.pdf_第1页
第1页 / 共13页
实现DVB数据多模块分发的方法及装置.pdf_第2页
第2页 / 共13页
实现DVB数据多模块分发的方法及装置.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《实现DVB数据多模块分发的方法及装置.pdf》由会员分享,可在线阅读,更多相关《实现DVB数据多模块分发的方法及装置.pdf(13页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201410780619.9(22)申请日 2014.12.17H04N 21/43(2011.01)H04N 21/435(2011.01)H04N 21/434(2011.01)(71)申请人青岛海信宽带多媒体技术有限公司地址 266100 山东省青岛市崂山区株洲路151号(72)发明人孟新红(74)专利代理机构青岛联智专利商标事务所有限公司 37101代理人李升娟(54) 发明名称实现DVB数据多模块分发的方法及装置(57) 摘要本发明公开了一种实现DVB数据多模块分发的方法及装置,所述方法包括:接收功能模块发送的获取DVB数据的请。

2、求;解析所述获取DVB数据的请求,得到所述功能模块所请求的数据类型;创建与所述功能模块对应的、包括有监听参数的数据监听,并将所述数据类型发送给解析数据源的解析模块;所述监听参数至少包括所述功能模块所请求的数据类型;将接收到的所述解析模块发送的所述功能模块请求的DVB数据通过所述数据监听发送给所述功能模块。应用本发明的方法及装置,可以解决现有技术中多个模块请求DVB数据产生冲突而导致数据获取速度延时、甚至获取数据失败的技术问题。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书7页 附图3页(10)申请公布号 CN 104410895 A(43)。

3、申请公布日 2015.03.11CN 104410895 A1/2页21.一种实现DVB数据多模块分发的方法,其特征在于,所述方法包括:接收功能模块发送的获取DVB数据的请求;解析所述获取DVB数据的请求,得到所述功能模块所请求的数据类型;创建与所述功能模块对应的、包括有监听参数的数据监听,并将所述数据类型发送给解析数据源的解析模块;所述监听参数至少包括所述功能模块所请求的数据类型;将接收到的所述解析模块发送的所述功能模块请求的DVB数据通过所述数据监听发送给所述功能模块。2.根据权利要求1所述的方法,其特征在于,所述功能模块调用请求函数,发出所述获取DVB数据的请求;所述创建与所述功能模块对。

4、应的、包括有监听参数的数据监听之前,还包括:获取所述请求函数为所述功能模块分配的唯一的标识;所述创建与所述功能模块对应的、包括有监听参数的数据监听具体为:创建包括所述标识以及所述功能模块所请求的数据类型的数据监听,并保存所述标识以及所述数据类型。3.根据权利要求2所述的方法,其特征在于,所述创建包括所述标识以及所述功能模块所请求的数据类型的数据监听具体包括:将所述标识和所述数据类型组合为一个字符串;所述保存所述标识以及所述数据类型具体为:保存所述字符串。4.根据权利要求3所述的方法,其特征在于,所述将接收到的所述解析模块发送的所述功能模块请求的DVB数据通过所述数据监听发送给所述功能模块具体为。

5、:接收所述解析模块发送的DVB数据,并获取所接收的DVB数据的数据类型;查找所保存的字符串中的标识和数据类型,并比较查找到的数据类型与获取的数据类型是否相同;若相同,则将所述数据类型对应的DVB数据通过所述数据监听发送给所述标识所指示的功能模块。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述将接收到的所述解析模块发送的、与所述功能模块对应的DVB数据发送给所述功能模块之后还包括:所述功能模块调用取消请求函数,由所述取消请求函数释放所述功能模块对应的数据监听。6.一种实现DVB数据多模块分发的装置,其特征在于,所述装置包括:DVB数据请求接收模块,用于接收功能模块发送的获取DVB数据。

6、的请求;DVB数据请求解析模块,用于解析所述DVB数据请求接收模块接收的所述获取DVB数据的请求,得到所述功能模块所请求的数据类型;数据监听创建及数据类型发送模块,用于创建与所述功能模块对应的、包括有监听参数的数据监听,并将所述数据类型发送给DVB数据解析及发送模块;所述监听参数至少包括所述功能模块所请求的数据类型;DVB数据解析及发送模块,根据所述数据监听创建及数据类型发送模块发送的所述数据类型解析数据源,获得DVB数据并发送;权 利 要 求 书CN 104410895 A2/2页3DVB数据分发模块,用于将所述DVB数据解析及发送模块发送的DVB数据通过数据监听发送给所述功能模块。7.根据。

7、权利要求6所述的装置,其特征在于,所述装置还包括:请求函数调用模块,用于供所述功能模块调用请求函数,并通过所述请求函数发出所述获取DVB数据的请求;标识分配模块,用于为所述功能模块分配唯一的标识;存储模块,用于保存所述标识及所述数据类型。8.根据权利要求7所述的装置,其特征在于,所述装置还包括:字符串生成模块,用于将所述标识及所述数据类型组合成为字符串;所述存储模块以保存所述字符串的形式保存所述标识及所述数据类型。9.根据权利要求8所述的装置,其特征在于,所述DVB数据分发模块包括:DVB数据接收及数据类型获取单元,用于接收所述DVB数据解析及发送模块发送的DVB数据,并获取所接收的DVB数据。

8、的数据类型;字符串判定单元,用于查找所述存储模块中保存的字符串中的标识和数据类型,并比较判断查找到的数据类型与获取的数据类型是否相同;DVB数据分发单元,用于在字符串判定单元判定查找到的数据类型与解析出的数据类型相同时将所述数据类型对应的DVB数据通过数据监听发送给所述标识所指示的功能模块。10.根据权利要求6至9中任一项所述的装置,其特征在于,所述装置还包括:取消请求函数调用模块,用于供所述功能模块调用取消请求函数,并由所述取消请求函数释放所述功能模块对应的数据监听。权 利 要 求 书CN 104410895 A1/7页4实现 DVB 数据多模块分发的方法及装置技术领域0001 本发明属于通。

9、信技术领域,具体地说,是涉及一种DVB数据处理技术,更具体地说,是涉及一种实现DVB数据多模块分发的方法及装置。背景技术0002 MPEG-2标准于1994年被运动图像专家组制定出来,分成系统层、视频压缩层和音频压缩层。其中,系统层主要用来描述音视频的数据复用和音视频的同步方式。在系统层定义了传输流TS(Transport Stream)形式的码流。TS传输流在电视节目传输领域得到广泛的应用。0003 要完成电视节目的搜索、播放、显示电子节目菜单EPG(Electronic Program Guide)、可隐藏的字幕CC(Closed Caption)、图文电视(TeleText)等业务功能,。

10、需要从TS传输流中分析出Section、分组基本码流PES(Packetized Element ary Stream)、基本码流ES(Elementary Stream)等DVB数据。其中,TS流可以是通过高频头Tuner解调出来的,也可以是网络推送的TS数据文件或是录制的TS码流文件。0004 现有的机顶盒或一体机设备中,从TS码流中分析相关DVB数据均是采用各功能模块(需要使用DVB数据的业务功能模块)独立处理、获取所需DVB数据的工作模式。如果采用这种工作模式,在多个模块同时请求相同包标识PID(Packet Identier)的数据时,只能有一个模块的数据请求能够得到响应,而其他模块。

11、的数据请求则受到阻塞,从而引起其他模块数据获取延时,甚至会导致获取数据失败。发明内容0005 本发明的目是提供一种实现DVB数据多模块分发的方法及装置,以解决现有技术中多个模块请求DVB数据产生冲突而导致数据获取速度延时、甚至获取数据失败的技术问题。0006 为解决上述技术问题,本发明提供的DVB数据多模块分发的方法采用下述技术方案来实现:一种实现DVB数据多模块分发的方法,所述方法包括:接收功能模块发送的获取DVB数据的请求;解析所述获取DVB数据的请求,得到所述功能模块所请求的数据类型;创建与所述功能模块对应的、包括有监听参数的数据监听,并将所述数据类型发送给解析数据源的解析模块;所述监听。

12、参数至少包括所述功能模块所请求的数据类型;将接收到的所述解析模块发送的所述功能模块请求的DVB数据通过所述数据监听发送给所述功能模块。0007 为解决前述技术问题,本发明提供的DVB数据多模块分发的装置采用下述技术方案来实现:一种实现DVB数据多模块分发的装置,所述装置包括:说 明 书CN 104410895 A2/7页5DVB数据请求接收模块,用于接收功能模块发送的获取DVB数据的请求;DVB数据请求解析模块,用于解析所述DVB数据请求接收模块接收的所述获取DVB数据的请求,得到所述功能模块所请求的数据类型;数据监听创建及数据类型发送模块,用于创建与所述功能模块对应的、包括有监听参数的数据监。

13、听,并将所述数据类型发送给DVB数据解析及发送模块;所述监听参数至少包括所述功能模块所请求的数据类型;DVB数据解析及发送模块,根据所述数据监听创建及数据类型发送模块发送的所述数据类型解析数据源,获得DVB数据并发送;DVB数据分发模块,用于将所述DVB数据解析及发送模块发送的DVB数据通过数据监听发送给所述功能模块。0008 与现有技术相比,本发明的优点和积极效果是:本发明在接收到功能模块发送的获取DVB数据的请求后,通过创建与功能模块对应的数据监听,可以利用数据监听与解析数据源的解析模块交互,将请求的DVB数据的数据类型发送给解析模块,接收到解析模块发送的DVB数据后,将接收到的DVB数据。

14、分别发送给请求DVB数据的功能模块。采用本发明的方案,各个功能模块在请求DVB数据时只需与数据监听交互,而数据监听分发数据时也无需关心解析数据的具体过程,只需要根据各个功能模块的请求将接收到的与各个功能模块对应的DVB数据分发给各个功能模块。因此,当多个功能模块同时请求相同的DVB数据时,可以通过创建多个数据监听同时响应多个请求,因而避免了当多个功能模块同时请求相同的DVB数据时,解析模块只能响应一个数据请求而阻塞其他数据请求所带来的获取信息延时甚至获取失败的缺陷。而且,功能模块将所请求的数据类型通过数据监听发送给解析模块,由解析模块根据所请求的数据类型对数据进行解析,如果多个功能模块请求的数。

15、据类型相同,则解析模块只需要解析一次相应的数据,然后将解析出的数据发送给数据监听,由数据监听分发给各个功能模块即可,在一定程度上节省了系统资源,提高了系统的运行效率。0009 结合附图阅读本发明的具体实施方式后,本发明的其他特点和优点将变得更加清楚。附图说明0010 图1是本发明实现DVB数据多模块分发的方法一个实施例的流程图;图2是本发明实现DVB数据多模块分发的方法另一个实施例的流程图;图3是本发明实现DVB数据多模块分发的装置一个实施例的结构框图。具体实施方式0011 为了使本发明的目的、技术方案及优点更加清楚明白,以下将结合附图和实施例,对本发明作进一步详细说明。0012 请参见图1,。

16、该图所示为本发明实现DVB数据多模块分发的方法一个实施例的流程图。0013 如图1所示,该实施例实现DVB数据多模块分发的具体过程包括下述步骤:步骤101:接收功能模块发送的获取DVB数据的请求。说 明 书CN 104410895 A3/7页60014 需要使用DVB数据的功能模块,如节目搜索、节目播放、显示电子节目菜单EPG等,要实现相应的功能,会发出获取DVB数据的请求。该步骤所接收的即为这些功能模块所发送的获取DVB数据的请求。0015 功能模块可以通过各种方式发出获取DVB数据的请求,如通过后续实施例所记载的调用请求函数的方式,或者通过中断的方式,等等。而且,在该实施例中,针对是多个功。

17、能模块均同时请求DVB数据的情形。0016 步骤102:解析获取DVB数据的请求,得到所请求的数据类型。0017 此处所说的数据类型,是用来表征功能模块所需要的DVB数据的一个参数。其不仅包括功能模块所需要的是TS数据或PES数据或section数据,还包括具体的PID等参数。譬如,如果功能模块请求TS数据或PES数据,数据类型包括有表征所需数据的PID;如果模块请求section数据,数据类型包括有表征所需数据的PID及表征过滤类型的过滤条件,等等。功能模块在请求DVB数据时,在数据请求中附有数据类型;或者,直接发送包含有数据类型的一个请求。因而,在接收到功能模块发送的获取DVB数据的请求时。

18、,首先从所接收的DVB数据请求中解析得到所请求的数据类型,以便后续能为功能模块反馈正确的所需DVB数据。0018 步骤103:创建与功能模块对应的数据监听,将数据类型发送给解析数据源的解析模块。0019 创建一个与功能模块一一对应、包括有监听参数的数据监听,并将步骤102解析出的数据类型发送给解析模块。功能模块与数据监听的一一对应关系,可以通过多种方式来实现,例如,可以通过后续实施例的标识的方式实现,也可以通过其他能够实现对应关系的方式实现。0020 具体来说,数据监听是一个能够监听是否反馈了需求的数据、能接收所需的数据并能将数据分发至功能模块的监听器。该数据监听可以通过软件中的任务的形式来实。

19、现。监听参数用来表示该数据监听所要监听的数据,也即反应数据监听所需求的反馈数据,且监听参数至少包括该监听对应的功能模块所请求的数据类型。而解析模块是指能够解析数据源、获取DVB数据的模块,其可以是DEMUX模块。此处所说的数据源,可以是TS数据流。而且,TS数据流可以是TS码流文件中的数据流,也可以是Tuner推送的数据流或网络推送的数据流。解析模块获得数据类型,即可从数据源中解析出数据类型所对应的DVB数据。具体解析过程为现有技术,在此不作具体阐述。0021 步骤104、将接收到的解析模块发送的DVB数据通过数据监听发送至对应的功能模块。0022 解析模块根据数据类型解析出DVB数据之后,将。

20、根据数据监听的监听参数将DVB数据反馈至所需DVB数据的数据监听。由于数据监听与功能模块一一对应,因此,数据监听即可将接收到的DVB数据发送至请求该DVB数据的功能模块。0023 基于上述步骤实现的DVB数据多用户分发的方法,在接收到功能模块发送的获取DVB数据的请求后,创建了与功能模块对应的数据监听,利用数据监听与解析模块交互,由数据监听将解析模块解析出的DVB数据转发至功能模块。在整个过程中,各个功能模块在请求DVB数据时仅与数据监听交互,不会与解析模块交互,而数据监听也仅是与解析模块互传数据,而无需关心解析模块解析数据的具体过程。因而,当多个功能模块同时请求相同说 明 书CN 10441。

21、0895 A4/7页7的DVB数据时,可以通过创建多个数据监听同时响应多个请求,避免了当多个功能模块同时请求相同的DVB数据时,解析模块只能响应一个数据请求而阻塞其他数据请求所带来的获取信息延时甚至获取失败的缺陷。而且,功能模块将所请求的数据类型通过数据监听发送给解析模块,由解析模块根据所请求的数据类型对数据进行解析,如果多个功能模块请求的数据类型相同,则解析模块只需要解析一次相应的数据,然后将解析出的数据发送给数据监听,由数据监听分发给各个功能模块即可,在一定程度上节省了系统资源,提高了系统的运行效率。0024 而且,由于功能模块及数据监听无需关心DVB数据的解析,也无需考虑解析所用硬件资源。

22、,因而,功能模块的数量不会因硬件资源的限制而受限。此外,由于无需考虑为模块分配解析用硬件资源,作为数据源的TS流不仅仅局限为来自硬件的TS流,如来自Tuner推送的数据流,可为脱离硬件平台的所有可能TS流,如已经录制好的TS码流文件中的数据流,或者网络推送的数据流等,解决了数据源受限制的问题。0025 参见图2,该图示出了本发明实现DVB数据多模块分发的方法另一个实施例的流程图。0026 如图2所示,该实施例实现DVB数据多模块分发的具体过程包括下述步骤:步骤201:功能模块调用请求函数,发出获取DVB数据的请求。0027 通过函数调用方式发出请求,能够为不同的功能模块设置统一的调用接口,便于。

23、对多个功能模块的统一管理。0028 步骤202:接收功能模块发送的获取DVB数据的请求,利用请求函数为功能模块分配标识。0029 在接收功能模块发送的获取DVB数据的请求的同时,利用请求函数为功能模块分配唯一的一个标识,用于表征该功能模块。标识的分配可以采取随机的方式,或者其他约定的方式,只要保证每个功能模块具有唯一的标识即可。0030 步骤203:解析获取DVB数据的请求,得到所请求数据类型。0031 该步骤可参考图1实施例步骤102的描述。0032 步骤204:将功能模块的标识及请求的数据类型组合为字符串并保存。0033 将步骤202为功能模块分配的标识及步骤203所解析出的功能模块所请求。

24、是数据类型组合为一个字符串,并保存该字符串。0034 举个例子,假设多个功能模块,比如节目搜索模块、节目更新模块等功能模块都请求PID为0000的数据时,为各个功能模块分配唯一的标识,记为uuid,并加上数据类型section,则形成的字符串为:1、PID=0000(0)00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 uuid=362e1925-f386-4f5d-bf5d-ad7bee1327de字符串:362e1925-f386-4f5d-bf5d。

25、-ad7bee1327de-section2、PID=0000(0)00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 uuid=76f5b6d1-6ca7-400c-b56d-d50c03b20d7d字符串:76f5b6d1-6ca7-400c-b56d-d50c03b20d7d-section说 明 书CN 104410895 A5/7页83、PID=0000(0)00 00 00 00 00 00 00 00 00 00 00 00 00 00 00。

26、 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 uuid=af8288db-c8e8-453f-9125-33af0862924d字符串:af8288db-c8e8-453f-9125-33af0862924d-section4、PID=0000(0)00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 uuid=be1a77e9-e750-444e-8c99-5eb0272853e0字符串:be1a7。

27、7e9-e750-444e-8c99-5eb0272853e0-section5、PID=0000(0)00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00uuid=d7d37d10-099e-476b-852d-23b2020a1e2a字符串:d7d37d10-099e-476b-852d-23b2020a1e2a-section采用字符串的形式来表征标识和数据类型,方便使用。具体来说,如果同一个功能模块请求的数据类型发生变化,例如不是section类型的数。

28、据,而是PES或TS数据,那么,只需要将字符串中的后面数据类型部分,即“section”替换为“PES”或” TS”即可,无需再更改功能模块的标识,一定程度上提高了功能模块区分的效率。0035 步骤205:创建与功能模块对应的数据监听,将数据类型发送给解析模块。0036 该步骤更具体的描述参见图1实施例步骤103的记载。0037 步骤206:接收解析模块发送的DVB数据,获取该DVB数据的数据类型。0038 解析模块根据数据类型解析出DVB数据之后,将根据数据监听的监听参数将DVB数据反馈至所需DVB数据的数据监听。而且,所解析出的DVB数据中会包含有该DVB数据的数据类型,从中读取出该数据类。

29、型。0039 步骤207:从保存的字符串中查找与获取的DVB数据的数据类型相同的数据类型的字符串,将DVB数据通过数据监听发送给查找到的字符串中的标识所指示的功能模块。0040 在步骤204中,数据监听保存了功能模块的标识及其请求的数据类型所组和而成的字符串。在接收到解析模块发来的DVB数据时,可以从保存的字符串中查找具有接收到的DVB数据的数据类型的字符串。在查找到相同的数据类型时,再根据字符串中该数据类型所对应的标识,将DVB数据发送给该标识所指示的功能模块。由于功能模块的标识是唯一的,数据类型是功能模块请求中携带的,因而,功能模块不会获取到错误的数据。0041 而且,由于解析模块仅关心数。

30、据类型,相同数据类型仅作一次解析,当存在有多个请求同数据类型的功能模块时,会根据解析模块解析出的DVB数据的数据类型查找到多个具有相同数据类型的字符串,但由于每个字符串的标识不同,该DVB数据会同时发送给多个标识不同的功能模块,不会产生不同功能模块获取同一数据类型时存在阻塞的情况。0042 步骤208:功能模块获取到DVB数据,调用取消请求函数,由取消请求函数释放该功能模块的数据监听。0043 功能模块获得了所需的DVB数据之后,调用取消请求函数,从而释放其所对应的数据监听,以便及时地过滤掉没有用的数据监听,节省系统资源。而且,通过函数调用方式释放数据监听,能够为不同的功能模块设置统一的调用接。

31、口,便于对多个功能模块的统一说 明 书CN 104410895 A6/7页9管理。0044 请参见图3,该图示出了本发明实现DVB数据多模块分发的装置一个实施例的结构框图。0045 如图3所示,该实施例的装置采用具有下述各模块的结构来实现:DVB数据请求接收模块325,用于接收功能模块31发送的获取DVB数据的请求。其中,功能模块31并非仅指一个功能模块,也用来表示多个功能模块,尤其是指多个功能模块。0046 DVB数据请求解析模块326,用于解析DVB数据请求接收模块325接收的获取DVB数据的请求,得到功能模块31所请求的数据类型。0047 数据监听创建及数据类型发送模块327,用于创建与。

32、功能模块31对应的、包括有监听参数的数据监听,并将数据类型发送给DVB数据解析及发送模块33;其中,监听参数至少包括功能模块31所请求的数据类型。0048 DVB数据解析及发送模块33,根据数据监听创建及数据类型发送模块327发送的数据类型解析数据源34,获得DVB数据并发送。0049 DVB数据分发模块328,用于将DVB数据解析及发送模块33发送的DVB数据通过数据监听发送给功能模块31。0050 此外,该实施例的装置还可以包括:请求函数调用模块321,用于供功能模块31调用请求函数,并通过请求函数发出获取DVB数据的请求。0051 标识分配模块322,用于为功能模块31分配唯一的标识。0。

33、052 字符串生成模块323,用于将标识及数据类型组合成为字符串。0053 存储模块324,用于保存标识及数据类型。具体来说,可以是以保存字符串的形式保存标识及数据类型。0054 取消请求函数调用模块329,用于供功能模块31调用取消请求函数,并由取消请求函数释放功能模块31对应的数据监听。0055 另外,DVB数据分发模块328可采用下述各单元结构来实现。DVB数据分发模块328包括:DVB数据接收及数据类型获取单元3281,用于接收DVB数据解析及发送模块33发送的DVB数据,并获取所接收的DVB数据的数据类型。0056 字符串判定单元3282,用于查找存储模块324中保存的字符串中的标识。

34、和数据类型,并比较判断查找到的数据类型与获取的数据类型是否相同。0057 DVB数据分发单元3283,用于在字符串判定单元3282判定查找到的数据类型与解析出的数据类型相同时将数据类型对应的DVB数据通过数据监听发送给字符串中的标识所指示的功能模块31。0058 上述各模块协同工作,按照图1及图2方法实施例的流程运行相应软件,实现基于数据监听创建及数据类型发送模块327所创建的数据监听模块对多模块DVB数据的分发。各模块更详细的工作原理、过程及产生的效果,参见图1及图2实施例的详述。0059 以上实施例仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实施例对本发明进行了详细的说明,对于本领域的普通技术人员来说,依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替说 明 书CN 104410895 A7/7页10换,并不使相应技术方案的本质脱离本发明所要求保护的技术方案的精神和范围。说 明 书CN 104410895 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1