一种支持多个节目同时解扰的方法及系统与流程

文档序号:12554432阅读:224来源:国知局
本发明涉及机顶盒
技术领域
:,尤其涉及一种支持多个节目同时解扰的方法及系统。
背景技术
::现如今数字机顶盒已经遍布家家户户,成为大众获取实时资讯,休闲娱乐的平台,人们对于机顶盒的业务和节目质量要求越来越高,加扰节目的出现,增加了运营商的收益,用户只有在购买授权之后才可以观看加扰节目,使用户在购买授权之后能够观看加扰节目是机顶盒基本功能之一。目前几乎所有的机顶盒厂商与CA(条件接收,ConditionalAccess)厂商合作之后,都能够做到使终端用户观看解扰节目。但是只支持处理一路数据,即直播视频。不管是应用还是CA中间件(middleware)都只处理一路数据,或者按照默认的数据通道来处理信息。很大的局限了应用的扩展,使应用的很多功能在开发的时候需要中间件配合修改软件。而且,随着用户要求的录制回放(PVR)、画中画(PIP)、无黑屏的快速切台(FCC)等功能的出现,机顶盒厂家需要实现多路解扰和多路消息的管理,使用户能同时观看多个节目或者切台的过程不需要等待,切台后直接观看,这也将成为机顶盒的一大卖点。因此,现有技术还有待于改进和发展。技术实现要素:本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种支持多个节目同时解扰的方法及系统,本发明的目的在于解决现有的CA只处理直播一路的消息以及只控制直播的节目状态的短板,局限应用扩展功能的问题。本发明解决技术问题所采用的技术方案如下:一种支持多个节目同时解扰的方法,包括步骤:当用户开启一节目时,通过底层数据通道同时从底层驱动处获取包括该节目及其他节目的多个节目分别对应的条件接收表和节目映射表以及与所述多个节目分别相关的应用、CA中间件、底层数据通道之间的对应关系,并通知给CA中间件;其中,所述对应关系包括底层数据通道ID、数据源句柄;CA中间件开辟资源保存接收到的所述条件接收表、节目映射表以及所述对应关系,将所述多个节目各自的底层数据通道ID和数据源句柄分别保存在对应的数组元素中,然后将所述数组元素的下标变量作为索引,并将所述多个节目对应的所述条件接收表、节目映射表以及所述对应关系分别都关联对应的所述索引;CA中间件将所述索引作为调用CA内核开资源接口的参数,开启内核资源,获取CA内核创建所述多个节目的节目句柄;同时将所述条件接收表、节目映射表发送CA内核,并将所述多个节目的节目句柄分别关联对应的所述索引;CA内核处理所述条件接收表和节目映射表的数据,通知CA中间件开解扰所需的接收授权管理信息和授权控制信息的数据通道;CA中间件根据所述多个节目各自对应的索引找到对应的底层数据通道ID,在对应的底层数据通道上开辟所述多个节目各自解扰所需的接收授权管理信息和授权控制信息的数据通道、以及设置音视频控制字的解扰通道;CA内核根据所述条件接收表和节目映射表的数据,通过所述接收授权管理信息和授权控制信息的数据通道,从底层驱动处获取授权管理信息和授权控制信息,并通过所述多个节目各自的所述解扰通道分别对所述多个节目进行解扰后,通知CA中间件所述多个节目的状态;CA中间件根据所述索引通知应用做出相应的状态处理。所述的支持多个节目同时解扰的方法,其中,所述与所述多个节目分别相关的应用、CA中间件、底层数据通道之间的对应关系包括:应用与CA中间以及底层数据通道的对应关系,成员为数据源句柄、底层数据通道ID、正在使用的标识;CA中间件与应用的对应关系,成员为正在使用的标识、播放器句柄、数据源类型、错误码、音频状态、视频状态。所述的支持多个节目同时解扰的方法,其中,CA中间件开辟资源保存接收到的所述条件接收表、节目映射表以及所述对应关系,将所述多个节目各自的底层数据通道ID和数据源句柄分别保存在对应的数组元素中,然后将所述数组元素的下标变量作为索引,并将所述多个节目对应的所述条件接收表、节目映射表以及所述对应关系都分别关联对应的所述索引的步骤具体包括步骤:CA中间件接收到所述条件接收表、节目映射表以及所述对应关系后,分别判断所述多个节目各自的底层数据通道ID和数据源句柄是否已保存在CA中间件的数组元素中;当所述多个节目各自的所述底层数据通道ID、数据源句柄没有在CA中间件的数组元素中存在时,将所述多个节目各自的所述底层数据通道ID、数据源句柄分别保存在未使用的数组元素中,然后将所述数组元素的下标变量作为索引,并将所述多个节目对应的所述条件接收表、节目映射表以及所述对应关系都分别关联对应的所述索引。所述的支持多个节目同时解扰的方法,其中,当所述多个节目各自的所述底层数据通道ID、数据源句柄没有在CA中间件的数组元素中存在时,将所述多个节目各自的所述底层数据通道ID、数据源句柄分别保存在未使用的数组元素中,然后将所述数组元素的下标变量作为索引,并将所述多个节目对应的所述条件接收表、节目映射表以及所述对应关系都分别关联对应的所述索引的步骤具体包括步骤:当所述多个节目各自的所述底层数据通道ID、数据源句柄没有在CA中间件的数组元素中存在时,将所述多个节目各自的所述底层数据通道ID、数据源句柄分别保存在未使用的数组元素中,然后将所述数组元素的下标变量作为索引;将所述索引作为保存应用发送给CA中间件的数据源类型、播放器句柄以及设置正在使用的标识的数组的下标变量;将所述索引作为保存所述条件接收表、节目映射表的数组的下标变量。所述的支持多个节目同时解扰的方法,其中,CA中间件将所述索引作为调用CA内核开资源接口的参数,开启内核资源,获取CA内核创建所述多个节目的节目句柄;同时将所述条件接收表、节目映射表发送CA内核,并将所述多个节目的节目句柄分别关联对应的所述索引的步骤具体包括步骤:CA中间件分别判断所述多个节目对应的索引关联的条件接收表、节目映射表是否与上次接收到的条件接收表、节目映射表相同;当所述多个节目对应的所述索引关联的条件接收表、节目映射表与上次接收到的条件接收表表、节目映射表不同时,CA中间件将所述索引作为调用CA内核开资源接口的参数,开启内核资源,获取CA内核创建所述多个节目的节目句柄;同时将所述条件接收表、节目映射表发送CA内核,并将所述多个节目的节目句柄分别关联对应的所述索引。一种支持多个节目同时解扰的系统,包括:数据获取模块,用于当用户开启一节目时,通过底层数据通道同时从底层驱动处获取包括该节目及其他节目的多个节目分别对应的条件接收表和节目映射表以及与所述多个节目分别相关的应用、CA中间件、底层数据通道之间的对应关系,并通知给CA中间件;其中,所述对应关系包括底层数据通道ID、数据源句柄;索引关联模块,用于CA中间件开辟资源保存接收到的所述条件接收表、节目映射表以及所述对应关系,将所述多个节目各自的底层数据通道ID和数据源句柄分别保存在对应的数组元素中,然后将所述数组元素的下标变量作为索引,并将所述多个节目对应的所述条件接收表、节目映射表以及所述对应关系分别都关联对应的所述索引;内核资源开启模块,用于CA中间件将所述索引作为调用CA内核开资源接口的参数,开启内核资源,获取CA内核创建所述多个节目的节目句柄;同时将所述条件接收表、节目映射表发送CA内核,并将所述多个节目的节目句柄分别关联对应的所述索引;通道开辟模块,用于CA内核处理所述条件接收表和节目映射表的数据,通知CA中间件开解扰所需的接收授权管理信息和授权控制信息的数据通道;CA中间件根据所述多个节目各自对应的索引找到对应的底层数据通道ID,在对应的底层数据通道上开辟所述多个节目各自解扰所需的接收授权管理信息和授权控制信息的数据通道、以及设置音视频控制字的解扰通道;解扰模块,用于CA内核根据所述条件接收表和节目映射表的数据,通过所述接收授权管理信息和授权控制信息的数据通道,从底层驱动处获取授权管理信息和授权控制信息,并通过所述多个节目各自的所述解扰通道分别对所述多个节目进行解扰后,通知CA中间件所述多个节目的状态;CA中间件根据所述索引通知应用做出相应的状态处理。所述的支持多个节目同时解扰的系统,其中,所述与所述多个节目分别相关的应用、CA中间件、底层数据通道之间的对应关系包括:应用与CA中间以及底层数据通道的对应关系,成员为数据源句柄、底层数据通道ID、正在使用的标识;CA中间件与应用的对应关系,成员为正在使用的标识、播放器句柄、数据源类型、错误码、音频状态、视频状态。所述的支持多个节目同时解扰的系统,其中,所述索引关联模块具体包括:第一判断单元,用于CA中间件接收到所述条件接收表、节目映射表以及所述对应关系后,分别判断所述多个节目各自的底层数据通道ID和数据源句柄是否已保存在CA中间件的数组元素中;索引关联单元,用于当所述多个节目各自的所述底层数据通道ID、数据源句柄没有在CA中间件的数组元素中存在时,将所述多个节目各自的所述底层数据通道ID、数据源句柄分别保存在未使用的数组元素中,然后将所述数组元素的下标变量作为索引,并将所述多个节目对应的所述条件接收表、节目映射表以及所述对应关系都分别关联对应的所述索引。所述的支持多个节目同时解扰的系统,其中,所述索引关联单元具体包括:索引生成单元,用于当所述多个节目各自的所述底层数据通道ID、数据源句柄没有在CA中间件的数组元素中存在时,将所述多个节目各自的所述底层数据通道ID、数据源句柄分别保存在未使用的数组元素中,然后将所述数组元素的下标变量作为索引;第一关联单元,用于将所述索引作为保存应用发送给CA中间件的数据源类型、播放器句柄以及设置正在使用的标识的数组的下标变量;第二关联单元,用于将所述索引作为保存所述条件接收表、节目映射表的数组的下标变量。所述的支持多个节目同时解扰的方法,其中,所述内核资源开启模块具体包括:第二判断单元,用于CA中间件分别判断所述多个节目对应的索引关联的条件接收表、节目映射表是否与上次接收到的条件接收表、节目映射表相同;内核资源开启单元,用于当所述多个节目对应的所述索引关联的条件接收表、节目映射表与上次接收到的条件接收表表、节目映射表不同时,CA中间件将所述索引作为调用CA内核开资源接口的参数,开启内核资源,获取CA内核创建所述多个节目的节目句柄;同时将所述条件接收表、节目映射表发送CA内核,并将所述多个节目的节目句柄分别关联对应的所述索引。综上所述,本发明提供了一种支持多个节目同时解扰的方法及系统,本发明所述方法能够使CA更好的支持应用扩展,且应用扩展时对CA中间件部分的修改影响很小,能够更迅速的集成涉及到多路数据处理的功能,兼容性更强;本发明可以使现有的CA不再限制应用的扩展,能同时处理多个节目及多个节目消息同时管理,可以应用于多种场景。附图说明图1是本发明支持多个节目同时解扰的方法较佳实施例的流程图。图2是本发明支持多个节目同时解扰的方法的简要流程图。图3是本发明支持多个节目同时解扰的方法具体应用实施例的流程图。图4是本发明支持多个节目同时解扰的系统较佳实施例的原理框图。具体实施方式为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。请参见图1,图1是本发明支持多个节目同时解扰的方法较佳实施例的流程图。图1所示的支持多个节目同时解扰的方法,包括:步骤S100、当用户开启一节目时,通过底层数据通道同时从底层驱动处获取包括该节目及其他节目的多个节目分别对应的条件接收表和节目映射表以及与所述多个节目分别相关的应用、CA中间件、底层数据通道之间的对应关系,并通知给CA中间件;其中,所述对应关系包括底层数据通道ID、数据源句柄;步骤S200、CA中间件开辟资源保存接收到的所述条件接收表、节目映射表以及所述对应关系,将所述多个节目各自的底层数据通道ID和数据源句柄分别保存在对应的数组元素中,然后将所述数组元素的下标变量作为索引,并将所述多个节目对应的所述条件接收表、节目映射表以及所述对应关系分别都关联对应的所述索引;步骤S300、CA中间件将所述索引作为调用CA内核开资源接口的参数,开启内核资源,获取CA内核创建所述多个节目的节目句柄;同时将所述条件接收表、节目映射表发送CA内核,并将所述多个节目的节目句柄分别关联对应的所述索引;步骤S400、CA内核处理所述条件接收表和节目映射表的数据,通知CA中间件开解扰所需的接收授权管理信息和授权控制信息的数据通道;CA中间件根据所述多个节目各自对应的索引找到对应的底层数据通道ID,在对应的底层数据通道上开辟所述多个节目各自解扰所需的接收授权管理信息和授权控制信息的数据通道、以及设置音视频控制字的解扰通道;步骤S500、CA内核根据所述条件接收表和节目映射表的数据,通过所述接收授权管理信息和授权控制信息的数据通道,从底层驱动处获取授权管理信息和授权控制信息,并通过所述多个节目各自的所述解扰通道分别对所述多个节目进行解扰后,通知CA中间件所述多个节目的状态;CA中间件根据所述索引通知应用做出相应的状态处理。本发明所述方法是基于多路数据分配器(DMUX)或者数据分配器复用的背景提出的,其关键在于多路数据之间的管理不会互相干扰,且与上层或者底层创建的资源能够很好的衔接和处理。本发明提供的支持多个节目同时解扰的方法,可以使应用随意增加与多路解扰相关的功能,如录制回放(PVR)、画中画(PIP)、无黑屏的快速切台(FCC)等。简单的说,本发明是实现当用户开启一节目时,不仅仅收到该节目的条件接收表和节目映射表及所述对应关系,还同时会收到其他节目的条件接收表和节目映射表及所述对应关系,将包括该节目和其他节目的多个节目的条件接收表和节目映射表同时发送给CA中间件,同时开各节目对应的解扰通道进行同时解扰,从而能够实现录制回放(PVR)、画中画(PIP)、无黑屏的快速切台(FCC)等功能。其中,画中画即可以同时观看两个节目,而无黑屏的快速切台则是由于当开启一节目时同时也对其他节目进行了解扰,当切换台时直接调用已解扰的数据即可,因此不会出现黑屏。需要说明的是,所述其他节目指的是机顶盒支持的除用户当前开启的节目之外的节目,其可以是该节目相邻的上下几个节目,也可以是用户开启一节目时同时开启的其他节目,还可以是与用户开启的节目预先关联的其他节目。本实施例中,所述应用为人机界面,也即是UI交互界面,参照图2所示,在所述步骤S100中,当用户开启一节目时,通过底层数据通道同时从底层驱动处获取包括该节目及其他节目的多个节目分别对应的条件接收表和节目映射表以及与所述多个节目分别相关的应用、CA中间件、底层数据通道之间的对应关系,并通知给CA中间件;其中,所述对应关系包括底层数据通道ID、数据源句柄;也就是说,当用户开启一节目时,例如直播,人机界面端不仅通过底层数据通道从底层驱动处获取该节目对应的条件接收表(conditionalaccesstable,CAT)和节目映射表(ProgramMapTable,PMT)以及与该节目相关的应用、CA中间件、底层数据通道之间的对应关系(对应于图2的中步骤①),并通知给CA中间件(对应于图2中的步骤②),而且还同时对其他节目也进行了相同的处理过程。其中,所述底层数据通道为底层驱动(HDI)的数据传输通道。具体实施时,应用开启某一功能的时候,如直播,通知CA中间件表数据(data)的更新,与节目相关的重要的表为PMT和CAT表,应用会通知该表底层数据通道ID、数据源句柄、数据源类型、播放器句柄;同时对其他节目也进行与该节目相同的处理过程。其中,每一个底层数据通道ID和数据源句柄对应一个节目。在本实施例中,所述与所述多个节目分别相关的应用、CA中间件、底层数据通道之间的对应关系包括:1)、应用与CA中间以及底层数据通道的对应关系,成员为数据源句柄、底层数据通道ID(身份标识号码),正在使用的标识;2)、CA中间件与应用的对应关系,成员为正在使用的标识、播放器句柄、数据源类型、错误码(CA错误码)、音频状态、视频状态。其中,所述数据源类型为枚举型数据源类型,例如直播,画中画,无黑屏的快速切台,录制回放等。在所述步骤S200中,CA中间件开辟资源保存接收到的所述条件接收表、节目映射表以及所述对应关系,将所述多个节目各自的底层数据通道ID和数据源句柄分别保存在对应的数组元素中,然后将所述数组元素的下标变量作为索引,并将所述多个节目对应的所述条件接收表、节目映射表以及所述对应关系分别都关联对应的所述索引;也就是说,CA中间件不仅开辟资源保存接收到的该开启节目对应的条件接收表、节目映射表以及底层数据通道ID、数据源句柄、数据源类型、播放器句柄,将底层数据通道ID、数据源句柄保存在一数组元素中,然后将该数组元素的下标变量作为索引(index),并将所述条件接收表、节目映射表以及底层数据通道ID、数据源句柄、数据源类型、播放器句柄都关联所述索引,同时也对所述多个节目中的其他节目同时做相同的处理。所不同的是,各节目关联各自对应的索引。具体实施时,CA中间件为各个节目开辟资源可以通过开辟结构体数组保存应用、CA中间件、CA内核以及底层驱动的重要信息来实现。例如,可以分别为所述多个节目的每个节目开辟5个结构体数组:结构体数组1、结构体数组2、结构体数组3、结构体数组4及结构体数组5;其中,设置结构体数组1为保存应用与CA中间以及底层数据通道的对应关系,成员为数据源句柄,底层数据通道ID,正在使用的标识;设置结构体数组2为保存CA中间件与上层应用对应关系,成员为正在使用的标识(flag),播放器句柄,枚举型数据源类型,CA错误码,音频状态,视频状态;设置结构体数组3为保存CA内核与CA中间件之间的节目消息对应关系,成员为CA内核开资源的ID以及开资源产生的句柄;设置结构体数组4及结构体数组5分别保存PMT表和CAT表。进一步的,所述步骤S200具体包括:步骤S210、CA中间件接收到所述条件接收表、节目映射表以及所述对应关系后,分别判断所述多个节目各自的底层数据通道ID和数据源句柄是否已保存在CA中间件的数组元素中;具体实施时,CA中间件接收到所述底层数据通道ID、数据源句柄时,分别判断所述多个节目各自对应的所述底层数据通道ID、数据源句柄是否已保存在CA中间件的数组元素中,也即是分别判断是否针对所述多个节目中的每个节目对应的底层数据通道ID和数据源句柄开辟过资源。步骤S220、当所述多个节目各自的所述底层数据通道ID、数据源句柄没有在CA中间件的数组元素中存在时,将所述多个节目各自的所述底层数据通道ID、数据源句柄分别保存在未使用的数组元素中,然后将所述数组元素的下标变量作为索引,并将所述多个节目对应的所述条件接收表、节目映射表以及所述对应关系都分别关联对应的所述索引。具体实施时,当所述多个节目中的某一节目对应的底层数据通道ID、数据源句柄没有在CA中间件的数组元素中存在时,则说明之前没有针对所述底层数据通道ID、数据源句柄开辟过资源;此时,CA中间件在结构体数组1中遍历寻找未使用的数组元素,将应用通知的数据源句柄、底层数据通道ID保存在未使用的数组元素中,并且将该数组元素的下标变量作为索引返回;当所述底层数据通道ID、数据源句柄在CA中间件的数组元素中已经存在时,则说明之前已经针对所述底层数据通道ID、数据源句柄开辟过资源,此时,只需直接返回数组的下标变量作为索引。进一步的,所述步骤S220具体包括:步骤S221、当所述多个节目各自的所述底层数据通道ID、数据源句柄没有在CA中间件的数组元素中存在时,将所述多个节目各自的所述底层数据通道ID、数据源句柄分别保存在未使用的数组元素中,然后将所述数组元素的下标变量作为索引。具体实施时,例如,当用户开启的节目是一直播,当该直播的底层数据通道ID、数据源句柄没有在CA中间件的数组元素中存在时,则说明之前没有针对所述底层数据通道ID、数据源句柄开辟过资源;此时,CA中间件在结构体数组1中遍历寻找未使用的数组元素,将应用通知的该直播的数据源句柄以及底层数据通道ID保存在未使用的数组元素中,并且将该数组元素的下标变量作为索引返回。步骤S222、将所述索引作为保存应用发送给CA中间件的数据源类型、播放器句柄以及设置正在使用的标识的数组的下标变量;具体实施时,将所述索引作为结构体数组2的下标变量来保存应用发送给CA中间件的数据源类型、播放器句柄以及设置正在使用的标识。步骤S223、将所述索引作为保存所述条件接收表、节目映射表的数组的下标变量;具体实施时,将所述索引作为结构体数组4、结构体数组5的下标变量来分别保存应用发送给CA中间件的PMT表和CAT表。在步骤S300中,CA中间件将所述索引作为调用CA内核开资源接口的参数,开启内核资源,获取CA内核创建所述多个节目的节目句柄;同时将所述条件接收表、节目映射表发送CA内核(对应于图2中的步骤③),并将所述多个节目的节目句柄分别关联对应的所述索引;所述步骤S300主要是开辟CA内核资源并通过所述索引关联内核资源。具体实施时,CA中间件将所述索引作为调用CA开资源接口的参数,开启内核资源,获取CA内核创建的节目句柄,然后将所述节目句柄保存在结构体数组3中且设置结构体数组3的下标变量为所述索引,同时CA中间件将PMT表和CAT表以及表数据对应的节目句柄传给CA内核。进一步的,所述步骤S300具体包括:步骤S310、CA中间件分别判断所述多个节目对应的索引关联的条件接收表、节目映射表是否与上次接收到的条件接收表、节目映射表相同;具体实施时,CA中间件判断所述索引关联的PMT表和CAT表是否与上次接收到的PMT表和CAT表相同,以此判断当前CA内核中是否存在与所述索引关联的PMT表和CAT表对应的节目的资源,从而决定是否需要新开启内核资源。步骤S320、当所述多个节目对应的所述索引关联的条件接收表、节目映射表与上次接收到的条件接收表表、节目映射表不同时,CA中间件将所述索引作为调用CA内核开资源接口的参数,开启内核资源,获取CA内核创建所述多个节目的节目句柄;同时将所述条件接收表、节目映射表发送CA内核,并将所述多个节目的节目句柄分别关联对应的所述索引。具体实施时,当所述索引关联的条件接收表、节目映射表与上次接收到的条件接收表、节目映射表不同时,则说明当前CA内核中不存在与所述索引关联的PMT表和CAT表对应的节目的资源,此时需要进一步的开启内核资源,创建相应的节目句柄;当所述索引关联的条件接收表表、节目映射表与上次接收到的条件接收表表、节目映射表相同时,则说明当前CA内核中开启过与所述索引关联的PMT表和CAT表对应的节目资源,此时不做任何处理即可。在所述步骤S400中,CA内核处理所述条件接收表和节目映射表的数据,通知CA中间件开解扰所需的接收授权管理信息(EntitlementManagementMessage,EMM)和授权控制信息(EntitlementControlMessage,ECM)的数据通道;CA中间件根据所述多个节目各自对应的索引找到对应的底层数据通道ID,在对应的底层数据通道上开辟所述多个节目各自解扰所需的接收授权管理信息和授权控制信息的数据通道(openchanel)、以及设置音视频控制字(setCW)的解扰通道;具体实施时,CA内核处理PMT表和CAT表的数据,通知CA中间件开接收EMM和ECM数据的通道(对应于图2中的步骤④和⑤);CA中间件会根据CA内核提供的节目句柄或者ID,通过结构体数组3的对应关系找到索引,再根据索引去结构体数组1中找到对应的底层数据通道,然后在对应的底层数据通道上开解扰所需的接收ECM和EMM的数据通道以及设置音视频控制字CW的解扰通道;更具体的,通过索引找到对应的数据分配器(dmux),在数据分配器上开辟数据通道和解扰通道。在所述步骤S500中,CA内核根据所述条件接收表和节目映射表的数据,通过所述接收授权管理信息和授权控制信息的数据通道,,从底层驱动处获取授权管理信息和授权控制信息(对应于图2中的步骤⑥和⑦),并通过所述多个节目各自的解扰通道分别对所述多个节目进行解扰后,通知CA中间件所述多个节目的状态(对应于图2中的步骤⑧和⑨);CA中间件根据所述索引通知应用做出相应的状态处理(对应于图2中的步骤⑩)。具体实施时,CA内核接收到EMM和ECM数据,通知CA中间件节目的状态,CA中间件根据结构体数组3的对应关系找到索引,并通知给CA的应用,应用将节目的状态保存到对应索引的结构体数组2中并调用上层应用的接口做出状态处理,如A/V(Audio/Video,音频或视频)的开关控制或者错误码的显示。需要说明的是,开启解扰通道后的解扰过程为现有技术,不是本发明的发明点,此处不再赘述。本发明所述支持多个节目同时解扰的方法,能够实现CA中间件支持多个节目同时解扰以及多个节目消息同时控制管理,从而能够使现有的CA不再限制应用的扩展,能同时处理多个节目及多个节目消息同时管理,可以应用于多种场景,如PIP,FCC,PVR等。本发明还提供了一种支持多个节目同时解扰的方法具体应用实施例,如图3所示,本发明具体应用实施例的支持多个节目同时解扰的方法包括:步骤S10、观看节目或用户启动某一功能;步骤S11、应用通知包括该节目的多个节目的表数据以及相关的底层数据通道ID、数据源句柄给CA中间件,之后进入步骤S12;步骤S12、判断是否针对各节目对应的底层数据通道ID、数据源句柄开辟过资源;当否时,则进入步骤S13,当是时,则进入步骤S14;步骤S13、CA中间件开辟内部资源管理,获取索引并记录播放器句柄和数据源类型,之后进入步骤S14;步骤S14、CA中间件根据索引保存PMT表和CAT表及相关内容,之后进入步骤S15;步骤S15、判断索引对应的PMT表和CAT表是否与上次接收到的相同,当是时,则进入步骤S16,当否时,则进入步骤S17;步骤S16、不做处理;步骤S17、通知CA内核表数据,开启CA内核资源,之后进入步骤S18;步骤S18、通过索引关联CA内核资源以及CA中间件开辟的资源,之后进入步骤S19;步骤S19、通过索引找到对应数据分配器,在数据分配器上开辟数据通道和解扰通道,并通知应用相关通道的状态,之后进入步骤S20;步骤S20、应用针对通道获取播放器处理对应的状态。本发明还提供了一种支持多个节目同时解扰的系统,如图4所示,包括:数据获取模块100、索引关联模块200、内核资源开启模块300、通道开辟模块400、解扰模块500,其中,数据获取模块100,用于当用户开启一节目时,通过底层数据通道同时从底层驱动处获取包括该节目及其他节目的多个节目分别对应的条件接收表和节目映射表以及与所述多个节目分别相关的应用、CA中间件、底层数据通道之间的对应关系,并通知给CA中间件;其中,所述对应关系包括底层数据通道ID、数据源句柄;具体如上所述。索引关联模块200,用于CA中间件开辟资源保存接收到的所述条件接收表、节目映射表以及所述对应关系,将所述多个节目各自的底层数据通道ID和数据源句柄分别保存在对应的数组元素中,然后将所述数组元素的下标变量作为索引,并将所述多个节目对应的所述条件接收表、节目映射表以及所述对应关系分别都关联对应的所述索引;具体如上所述。内核资源开启模块300,用于CA中间件将所述索引作为调用CA内核开资源接口的参数,开启内核资源,获取CA内核创建所述多个节目的节目句柄;同时将所述条件接收表、节目映射表发送CA内核,并将所述多个节目的节目句柄分别关联对应的所述索引;具体如上所述。通道开辟模块400,用于CA内核处理所述条件接收表和节目映射表的数据,通知CA中间件开解扰所需的接收授权管理信息和授权控制信息的数据通道;CA中间件根据所述多个节目各自对应的索引找到对应的底层数据通道ID,在对应的底层数据通道上开辟所述多个节目各自解扰所需的接收授权管理信息和授权控制信息的数据通道、以及设置音视频控制字的解扰通道;具体如上所述。解扰模块500,用于CA内核根据所述条件接收表和节目映射表的数据,通过所述接收授权管理信息和授权控制信息的数据通道,从底层驱动处获取授权管理信息和授权控制信息,并通过所述多个节目各自的所述解扰通道分别对所述多个节目进行解扰后,通知CA中间件所述多个节目的状态;CA中间件根据所述索引通知应用做出相应的状态处理;具体如上所述。进一步的,所述与所述多个节目分别相关的应用、CA中间件、底层数据通道之间的对应关系包括:应用与CA中间以及底层数据通道的对应关系,成员为数据源句柄、底层数据通道ID、正在使用的标识;CA中间件与应用的对应关系,成员为正在使用的标识、播放器句柄、数据源类型、错误码、音频状态、视频状态。进一步的,所述索引关联模块200具体包括:第一判断单元,用于CA中间件接收到所述条件接收表、节目映射表以及所述对应关系后,分别判断所述多个节目各自的底层数据通道ID和数据源句柄是否已保存在CA中间件的数组元素中;具体如上所述。索引关联单元,用于当所述多个节目各自的所述底层数据通道ID、数据源句柄没有在CA中间件的数组元素中存在时,将所述多个节目各自的所述底层数据通道ID、数据源句柄分别保存在未使用的数组元素中,然后将所述数组元素的下标变量作为索引,并将所述多个节目对应的所述条件接收表、节目映射表以及所述对应关系都分别关联对应的所述索引;具体如上所述。进一步的,所述索引关联单元具体包括:索引生成单元,用于当所述多个节目各自的所述底层数据通道ID、数据源句柄没有在CA中间件的数组元素中存在时,将所述多个节目各自的所述底层数据通道ID、数据源句柄分别保存在未使用的数组元素中,然后将所述数组元素的下标变量作为索引;具体如上所述。第一关联单元,用于将所述索引作为保存应用发送给CA中间件的数据源类型、播放器句柄以及设置正在使用的标识的数组的下标变量;具体如上所述。第二关联单元,用于将所述索引作为保存所述条件接收表、节目映射表的数组的下标变量;具体如上所述。进一步的,所述内核资源开启模块300具体包括:第二判断单元,用于CA中间件分别判断所述多个节目对应的索引关联的条件接收表、节目映射表是否与上次接收到的条件接收表、节目映射表相同;具体如上所述。内核资源开启单元,用于当所述多个节目对应的所述索引关联的条件接收表、节目映射表与上次接收到的条件接收表表、节目映射表不同时,CA中间件将所述索引作为调用CA内核开资源接口的参数,开启内核资源,获取CA内核创建所述多个节目的节目句柄;同时将所述条件接收表、节目映射表发送CA内核,并将所述多个节目的节目句柄分别关联对应的所述索引;具体如上所述。综上所述,本发明提供了一种支持多个节目同时解扰的方法及系统,本发明所述支持多个节目同时解扰的方法,能够使CA更好的支持应用扩展,且应用扩展时对CA中间件部分的修改影响很小,能够更迅速的集成涉及到多路数据处理的功能,兼容性更强;本发明可以使现有的CA不再限制应用的扩展,能同时处理多个节目及多个节目消息同时管理,可以应用于多种场景。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1