专利名称:一种数字电视终端及其数据解扰方法和装置的制作方法
技术领域:
本发明属于数字电视技术领域,尤其涉及一种数字电视终端及其数据解扰方法和装置。
背景技术:
随着国家三网融合政策的大力推行,机顶盒等数字电视终端的增值业务的市场需求为整个社会发展带来了巨大的商机,致力于数字电视业务开发的中间件公司也逐渐增多,中间件的种类日趋多样化。浏览器、数据广播、股票系统、交互式多媒体视频点播(Video On Demand, VOD)点播系统,互动游戏、以及涵盖数字电视各类应用的纯中间件系统等多种增值业务在机顶盒终端得到了广泛移植和应用。在实际应用过程中,运营商为了控制节目和业务的播控权,通常对节目流和数据流都进行加密。当中间件系统所涉及的音视频节目和其他业务同时加密时,中间件的移植就会变得较为繁琐。考虑到入网机顶盒在CA认证方面的工作量和经费问题,目前中间件加密节目和业务解扰功能的实现大都由机顶盒厂家完成,中间件通过定义音视频播放接口和数据接收接口与机顶盒终端进行对接,通过这两类接口完成节目的播放和业务的浏览。其中,中间件通过定义音视频播放接口和数据接收接口与机顶盒进行交互,在上述两类接口内,由中间件适配层通过向盒端CA模块传递节目和数据的节目映射表 (Program Map Table, PMT)启动解扰,完成加密节目的播放和加密数据的接收。当用户在中间件中选择加密节目进行播放时,中间件通过调用自身定义的节目播放接口函数请求机顶盒终端进行响应,中间件适配层根据中间件调用节目播放接口时传递过来的节目参数信息,从当前传送流中过滤出当前节目对应的PMT,将PMT通过数字证书认证(Certificate Authority, CA)模块定义的接口函数传递给CA模块启动解扰功能,并将音视频标志码传输包(Packet IDdentifier, PID)设置到音视频解码器,启动音视频解码器,从而完成了加密节目的播放。当用户在中间件里头选择某个业务进行浏览时,中间件通过调用自身定义的数据通道操作接口函数请求机顶盒终端进行响应,中间件适配层在数据操作接口内根据中间件请求数据时传递过来的待过滤的数据PID,创建解复用通道,将PID设置到解复用通道,从当前传送流中过滤出中间件当前请求的数据PID所在的PMT,并将PMT通过CA模块定义的接口函数传递给CA模块启动解扰功能,同时启动解复用通道。中间件适配层从解复用通道读取到数据后,通过中间件注册的数据接收回调函数将收到的数据传递给中间件,从而完成了加密数据的接收。由于机顶盒终端解扰通道的物理资源有限,一般最多同时可分配8个解扰通道用于解扰,为了合理利用这些解扰通道,当中间件请求播放一个加密节目时,盒端现有的CA 解扰实现方法,通常都是实时监测用户传递过来的音、视频节目PMT的内容,当发现有新版本的PMT传送过来时,首先释放上一个PMT所对应节目的解扰通道,然后为当前PMT所对应的节目重新分配解扰通道。当中间件请求过滤一种加密数据时,中间件适配层同样也会传递一个PMT给CA解扰模块,现有的CA解扰实现方法,并没有区分提供PMT的来源是谁,全部根据最新收到的PMT内容按照解扰流程进行处理,所以,只要检测到PMT发生变化,就会对解扰通道进行释放和再分配动作。显然,当中间件适配层在处理加密节目和加密业务同时存在时的这种适配方法, 就存在如下缺点第一、当用户切换业务时,由于加密数据的接收使得音视频的解扰通道被迫释放, 从而造成正在播放的加密节目发生停播;第二、当用户切换节目时,也会使得由于加扰音视频节目的播放迫使正在接收的加密数据的解扰通道被释放,造成中间件的加密业务无法正常浏览。 综上所述,如何有效的解决中间件与机顶盒中的CA模块在适配过程中,不能很好的兼容中间件系统内节目和数据同时加扰的问题,是数字电视技术领域研究的方向之一。
发明内容
本发明实施例的目的在于提供一种数字电视终端及其数据解扰方法和装置,旨在解决中间件与机顶盒中的CA模块在适配过程中,不能很好的兼容中间件系统内节目和数据同时加扰的问题。本发明实施例是这样实现的,一种数字电视终端的数据解扰方法,所述方法包括下述步骤获取当前播放节目所属的第一节目映射表;获取业务数据所属的第二节目映射表,其中,所述业务数据包括正在被请求的业务数据以及已被请求且处于接收状态的业务数据;将所述第一节目映射表和所述第二节目映射表合成,生成一混合节目映射表;将所述混合节目映射表传递至数字电视终端CA模块进行解扰。根据本发明一优选实施例,获取当前播放节目所属的第一节目映射表的步骤具体包括通过节目播放接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存。根据本发明一优选实施例,获取业务数据所属的第二节目映射表的步骤具体包括查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到所有处于启动状态的解复用通道正在过虑的数据PID,将所述数据PID作为匹配目标,获取与所有处于启动状态的解复用通道正在过虑的数据PID所对应的第二节目映射表,根据本发明一优选实施例,获取当前播放节目所属的第一节目映射表的步骤具体包括通过解复用通道创建接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存。根据本发明一优选实施例,获取业务数据所属的第二节目映射表的步骤具体包括查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到
5所有处于启动状态的解复用通道正在过虑的数据PID,将该数据PID作为匹配目标,找到所有处于启动状态的解复用通道正在过虑的数据PID所对应的第二节目映射表,并根据当前正在播放节目的音频PID、视频PID,请求节目播放时的记录信息,获取正在播放节目的第一节目映射表。本发明实施例的另一目的在于提供一种数字电视终端的数据解扰装置,所述装置包括节目信息获取模块,用于获取当前播放节目所属的第一节目映射表;业务信息获取模块,用于获取业务数据所属的第二节目映射表,其中,所述业务数据包括正在被请求的业务数据以及已被请求且处于接收状态的业务数据;合成模块,用于将所述第一节目映射表和所述第二节目映射表进行合成,生成一混合节目映射表;发送模块,用于将所述混合节目映射表传递至数字电视终端CA模块进行解扰。根据本发明一优选实施例,所述节目信息获取模块,用于通过节目播放接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存;所述业务信息获取模块,用于查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到所有处于启动状态的解复用通道正在过虑的数据PID,将所述数据PID作为匹配目标,找到与所有处于启动状态的解复用通道正在过虑的数据PID所对应的第二节目映射表,根据本发明一优选实施例,所述节目信息获取模块,用于通过解复用通道创建接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存;所述业务信息获取模块,用于查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到所有处于启动状态的解复用通道正在过虑的数据PID,将这些 PID作为匹配目标,找到所有处于启动状态的解复用通道正在过虑的数据PID所对应的第二节目映射表,并根据当前正在播放节目的音频PID、视频PID,通过查询中间件请求节目播放时的记录信息,找到正在播放节目的第一节目映射表。本发明实施例的还一目的在于提供一种数字电视终端,所述终端包括本发明实施例提供的数字电视终端的数据解扰装置。通过上述实施例,本发明很好的解决中间件与机顶盒中的CA模块在适配过程中, 不能很好的兼容中间件系统内节目和数据同时加扰的问题,利于机顶盒等数字电视终端的推广普及。
图1是本发明实施例提供的数字电视终端的数据解扰方法的流程图;图2是本发明实施例提供的中间件系统的结构图;图3是本发明实施例提供的中间件音、视频播放接口的适配流程图;图4是本发明实施例提供的中间件数据接收接口的适配流程图;图5是本发明实施例提供的将第一节目映射表与第二节目映射表合成混合节目映射表的流程图;图6是本发明实施例提供的数字电视终端的数据解扰装置的结构图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明第一实施例提供了一种数字电视终端的数据解扰方法,所述方法包括下述步骤获取当前播放节目所属的第一节目映射表;获取业务数据所属的第二节目映射表,其中,所述业务数据包括正在被请求的业务数据以及已被请求且处于接收状态的业务数据;将所述第一节目映射表和所述第二节目映射表进行合成,生成一混合节目映射表;将所述混合节目映射表传递至数字电视终端进行解扰。本发明第二实施例提供了一种数字电视终端的数据解扰装置,所述装置包括节目信息获取模块,用于获取当前播放节目所属的第一节目映射表; 业务信息获取模块,用于获取业务数据所属的第二节目映射表,其中,所述业务数据包括正在被请求的业务数据以及已被请求且处于接收状态的业务数据;合成模块,用于将所述第一节目映射表和所述第二节目映射表进行合成,生成一混合节目映射表;发送模块,用于将所述混合节目映射表传递至数字电视终端CA模块进行解扰。本发明第三实施例提供了一种数字电视终端,所述终端包括本发明实施例提供的数字电视终端的数据解扰装置。请参阅图1,图1为本发明第一实施例提供的数字电视终端的数据解扰方法的流程。在步骤SlOl中,获取当前播放节目所属的第一节目映射表。在步骤S102中,获取业务数据所属的第二节目映射表,其中,所述业务数据包括正在被请求的业务数据以及已被请求且处于接收状态的业务数据。在步骤S103中,将所述第一节目映射表和所述第二节目映射表合成,生成一混合节目映射表。在步骤S104中,将所述混合节目映射表传递至数字电视终端CA模块进行解扰。下面分两种情况说明,第一种为中间件音、视频播放接口的适配流程,第二种为中间件数据接收接口的适配流程。请参阅图2,机顶盒等数字电视终端中间件系统的结构,分为适配层,中间件以及 CA模块。请参阅图3,图3示出了本发明实施例中间件音、视频播放接口的适配流程。步骤S301,通过节目播放接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存。
其中,该步骤为对应图1中获取当前播放节目所属的第一节目映射表的步骤。步骤S302,查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到所有处于启动状态的解复用通道正在过虑的数据PID,将所述数据PID作为匹配目标,获取与所有处于启动状态的解复用通道正在过虑的数据PID所对应的第二节目映射表。其中,该步骤对应图1中获取业务数据所属的第二节目映射表的步骤。步骤S303,将第一节目映射表与第二节目映射表合成混合节目映射表,将混合节目映射表通过CA模块提供的接口函数传递给机顶盒端CA模块,请求CA模块启动解扰。步骤S304,设定音频PID、视频PID、PCR PID,并启动音视频解码器。步骤S305,盒端CA模块开始工作,加密节目流被还原成透明流,节目正常播出。请参阅图4,图4示出了本发明实施例中间件数据接收接口的适配流程。步骤S401,通过解复用通道创建接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存。其中,该步骤为对应图1中获取当前播放节目所属的第一节目映射表的步骤。步骤S402,查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到所有处于启动状态的解复用通道正在过虑的数据PID,将该数据PID作为匹配目标,找到所有处于启动状态的解复用通道正在过虑的数据PID所对应的第二节目映射表, 并根据当前正在播放节目的音频PID、视频PID,请求节目播放时的记录信息,获取正在播放节目的第一节目映射表。其中,该步骤对应图1中获取业务数据所属的第二节目映射表的步骤。步骤S403,将第一节目映射表与第二节目映射表合成混合节目映射表。步骤S404,创建一个解复用通道,将中间件通过接口函数传递过来的当前新请求的数据PID设置到该通道中,启动解复用通道。步骤S405,将合成后的混合PMT通过CA模块提供的接口函数传递给盒端CA模块, 请求CA模块启动解扰。步骤S406,盒端CA模块开始工作,中间件适配层读取解复用通道过来的数据,通过中间件注册的数据接收回调函数,将过滤到的数据传递给中间件。请参阅图5,图5示出了将第一节目映射表与第二节目映射表合成混合节目映射表的流程。步骤S501、声明一个类型为unsigned char、长度为10 的数组uMergePmtBuf,并初始化为0x00,用于存放合成后的混合节目映射表内容,声明一个类型为unsigned char* 的指针pMergePmtBuf,同时指向uMergePmtBuf,声明一个类型为unsigned short的变量 nMergeByteCnt,并赋初值为0,声明一个类型为unsigned char*的指针pDataPmtBuf,同时指向中间件适配层传递过来的第二节目映射表的存储地址,声明一个类型为unsigned char*的指针pSrvftntBuf,同时指向中间件适配层传递过来的第一节目映射表的存储地址 2。步骤S502、将uMergePmtBuf的第一个字节填充为0x02 (标准PMT约定的TableID),并将指针uMergeftiitBuf偏移12个字节(标准PMT表头占用节数),将 nMergeByteCnt ±曾力口 12。
步骤S503、由pDataPmtBuf [1]和pDataPmtBuf [2]计算得出的值,加上3 (存储 PMT的TableId占用1个字节、存储PMT内容的长度占用2个字节)得到数据PMT的长度 nDataPmtLen,并将指针pDataPmtBuf偏移12个字节(标准PMT表头占用12个字节),将 nDataPmtLen减少12 (标准PMT表头占用12个字节),将nDataPmtLen大于0作为循环结束的条件,按照标准PMT的组织结构,将指针pDataPmtBuf进行持续偏移,同时将nDataPmtLen 进行不断减少,通过比对CA描述子的标识0x09,寻找数据PMT里头的CA描述子,每发现一个,根据指针pDataPmtBuf的位置计算出CA描述子和所属数据的PID信息共同占用的字节个数nDataDesByte,并将CA描述子和所属数据的PID信息一并复制到pMergeRntBuf中, 同时将 pMergePmtBuf 偏移 nDataDesByte 个字节,nMergeByteCnt ±曾力卩 nDataDesByte 个字节,当循环结束时,转入步骤S504。步骤S504、由 pSrvPmtBuf [1]和 pSrvPmtBuf [2]计算得出的值,加上 3 (存储 PMT 的TableId占用1个字节、存储PMT内容的长度占用2个字节)得到第一节目映射表的长度nSrvftntLen,并将指针pSrvftntBuf偏移12个字节(标准PMT表头占用12个字节)、将 nSrvPmtLen减少12 (标准PMT表头占用12个字节),将nSrvftntLen大于0作为循环结束的条件,按照标准PMT的组织结构,将指针pSrvftiitBuf进行持续偏移,同时将nSrvftntLen进行不断减少,通过比对CA描述子的标识0x09,寻找第一节目映射表里头的CA描述子,每发现一个,根据指针PSrvRntBuf的位置计算出CA描述子和所属音、视频PID信息共同占用的字节个数nSrvDesByte,并将CA描述子和所属音、视频PID信息一并复制到pMergeftiitBuf 中,同时将 pMergePmtBuf 偏移 nSrvDesByte 个字节,nMergeByteCnt ±曾力卩 nSrvDesByte 个字节,当循环结束时,转入步骤S505。步骤S505、将nMergeByteCnt增加4 (PMT末尾CRC校验位占用的字节个数),减少 3 (PMT表头的前三个字节),由此计算得到混合节目映射表的长度,将nMergeByteCnt的高 8位取出赋值给uMergePmtBuf [1],将nByteCnt的低8位取出赋值给uMergePmtBuf [2]。步骤S506、结束返回。请参阅图6,图6为本发明实施例提供的数字电视终端的数据解扰装置的结构。其中,节目信息获取模块61获取当前播放节目所属的第一节目映射表;业务信息获取模块62获取业务数据所属的第二节目映射表,其中,所述业务数据包括正在被请求的业务数据以及已被请求且处于接收状态的业务数据;合成模块63将所述第一节目映射表和所述第二节目映射表合成,生成一混合节目映射表;发送模块64将所述混合节目映射表传递至数字电视终端CA模块进行解扰。在具体实施过程中,通过中间件音、视频播放接口进行适配时,节目信息获取模块 61通过节目播放接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存;业务信息获取模块62查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到所有处于启动状态的解复用通道正在过虑的数据PID,将所述数据 PID作为匹配目标,找到与所有处于启动状态的解复用通道正在过虑的数据PID所对应的
第二节目映射表。在具体实施过程中,通过中间件数据接收接口进行适配时,节目信息获取模块61通过解复用通道创建接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存;业务信息获取模块62查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到所有处于启动状态的解复用通道正在过虑的数据PID,将这些PID作为匹配目标,找到所有处于启动状态的解复用通道正在过虑的数据PID所对应的第二节目映射表。具体的数字电视终端节目的播放装置的工作原理请参阅上文的描述,此处不再赘述。本发明实施例还提供一种数字电视终端,所述终端包括本发明实施例提供的数字电视终端的数据解扰装置,鉴于该装置在上文已有详细的描述,此处不再赘述。本发明提出的中间件加密节目和业务实现解扰的适配方法,通过运用中间件适配层的设计方法、利用适配层节目和数据PMT的合成方法,使得中间件能够以节目和数据的混合PMT与盒端CA模块进行对接,在不修改盒端现有CA解扰模块的前提下,有效解决了中间件系统内数据和节目同时加扰时,数据解扰过程与音、视频解扰过程共存时的相互干扰问题,实现了中间件加密业务和加密节目的解扰,同时降低了盒端CA解扰模块与中间件的耦合性,提高了中间件移植时盒端CA解扰模块的重用性,减少了开发人员维护CA模块的工作量。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数字电视终端的数据解扰方法,其特征在于,所述方法包括下述步骤获取当前播放节目所属的第一节目映射表;获取业务数据所属的第二节目映射表,其中,所述业务数据包括正在被请求的业务数据以及已被请求且处于接收状态的业务数据;将所述第一节目映射表和所述第二节目映射表合成,生成一混合节目映射表;将所述混合节目映射表传递至数字电视终端CA模块进行解扰。
2.如权利要求1所述的数字电视终端的数据解扰方法,其特征在于,获取当前播放节目所属的第一节目映射表的步骤具体包括通过节目播放接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存。
3.如权利要求2所述的数字电视终端的数据解扰方法,其特征在于,获取业务数据所属的第二节目映射表的步骤具体包括查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到所有处于启动状态的解复用通道正在过虑的数据PID,将所述数据PID作为匹配目标,获取与所有处于启动状态的解复用通道正在过虑的数据PID所对应的第二节目映射表,
4.如权利要求1所述的数字电视终端的数据解扰方法,其特征在于,获取当前播放节目所属的第一节目映射表的步骤具体包括通过解复用通道创建接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存。
5.如权利要求4所述的数字电视终端的数据解扰方法,其特征在于,获取业务数据所属的第二节目映射表的步骤具体包括查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到所有处于启动状态的解复用通道正在过虑的数据PID,将该数据PID作为匹配目标,找到所有处于启动状态的解复用通道正在过虑的数据PID所对应的第二节目映射表,并根据当前正在播放节目的音频PID、视频PID,请求节目播放时的记录信息,获取正在播放节目的第一节目映射表。
6.一种数字电视终端的数据解扰装置,其特征在于,所述装置包括节目信息获取模块,用于获取当前播放节目所属的第一节目映射表;业务信息获取模块,用于获取业务数据所属的第二节目映射表,其中,所述业务数据包括正在被请求的业务数据以及已被请求且处于接收状态的业务数据;合成模块,用于将所述第一节目映射表和所述第二节目映射表合成,生成一混合节目映射表;发送模块,用于将所述混合节目映射表传递至数字电视终端CA模块进行解扰。
7.如权利要求6所述的数字电视终端的数据解扰装置,其特征在于,所述节目信息获取模块,用于通过节目播放接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存;所述业务信息获取模块,用于查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到所有处于启动状态的解复用通道正在过虑的数据PID,将所述数据 PID作为匹配目标,找到与所有处于启动状态的解复用通道正在过虑的数据PID所对应的第二节目映射表,
8.如权利要求6所述的数字电视终端的数据解扰装置,其特征在于,所述节目信息获取模块,用于通过解复用通道创建接口函数包含的参数信息,从当前传送流中过滤出当前播放节目所属的第一节目映射表,并将该第一节目映射表进行缓存;所述业务信息获取模块,用于查询在请求过滤数据时已创建的所有为数据类型的解复用通道的记录信息,找到所有处于启动状态的解复用通道正在过虑的数据PID,将这些PID 作为匹配目标,找到所有处于启动状态的解复用通道正在过虑的数据PID所对应的第二节目映射表,并根据当前正在播放节目的音频PID、视频PID,通过查询中间件请求节目播放时的记录信息,找到正在播放节目的第一节目映射表。
9.一种数字电视终端,其特征在于,所述终端包括权利要求6至8任一项所述的数字电视终端的数据解扰装置。
全文摘要
本发明公开了一种数字电视终端及其数据的解扰方法和装置,所述方法包括下述步骤获取当前播放节目所属的第一节目映射表;获取业务数据所属的第二节目映射表,其中,所述业务数据包括正在被请求的业务数据以及已被请求且处于接收状态的业务数据;将所述第一节目映射表和所述第二节目映射表合成,生成一个混合节目映射表;将所述混合节目映射表传递至数字电视终端CA模块进行解扰。本发明很好的解决中间件与机顶盒中的CA模块在适配过程中,不能很好的兼容中间件系统内节目和数据同时加扰的问题,利于机顶盒等数字电视终端的推广普及。
文档编号H04N21/434GK102158752SQ20111002854
公开日2011年8月17日 申请日期2011年1月26日 优先权日2011年1月26日
发明者田超 申请人:深圳创维数字技术股份有限公司