Ts流解复用方法_2

文档序号:9712004阅读:来源:国知局
过滤器。
[0028]为例解决上述问题,本例中提供一种TS流解复用方法,具体包括以下步骤:
[0029]首先,系统根据应用的过滤请求信息,生成数据包过滤器,过滤器包括要过滤数据的PID,过滤的缓冲去,以及缓冲区大小等过滤条件相关的信息,每个过滤器的结构都相同。
[0030]其次,系统为所有过滤器建立一个索引表入口。该索引表元素分别一一对应通常TS流的PID值范围中PID数据包。通常TS流的PID值范围是0到8191,所以本例建立一个8192个元素的数组,数组下标为Μ的元素就是PID为Μ的过滤入口,每个入口都可以指向一个结点,这个步骤在解复用模块初始化时就建立好,初始时每个入口都没有指向有效结点。其中,结点中的信息包括下一个结点的地址,便于组成链表,结点中包括过滤器地址,便于通过结点找到过滤器。也就是说当应用在通过模块接口请求过滤数据包时,根据请求信息等条件创建过滤器,这个过滤可以在一个请求中指定多个PID。过滤器创建好后,需要创建结点连接PID索引表和过滤器,结点可以组成链表,创建结点的目的在于,一个索引表入口中可以放入一个结点组成的链表,来达到多个相同PID的过滤器共用一个入口的目的。其中,结点链表可以由多个不同节点组成,也可以由多个相同节点组成。其中,可以多个不同PID的结点指向一个过滤器,来满足一个过滤请求中可以同时过滤多个PID数据的目的。这样,不同PID的数据可以根据不同的入口结点找到相同的过滤器。尤其在不同软件模块同时过滤相同PID包数据的,而不用担心冲突,保证效率高、速度快。
[0031]如图3所示,该图是本发明方式的过滤图示,图中索引表数组长8192,用PID值做下标。接收到TS包时,根据TS包PID找到索引表入口,从入口中找到结点,从结点中找到过滤器并根据过滤器中的条件进行过滤。
[0032]系统接收到TS包后,数据过滤是通过索引入口找到结点再找到过滤器,接收到任意一个TS包,根据TS包的PID作为下标找到索引表入口,从入口中找到一个结点或者结点组成的链表,再从结点中找到过滤器,并在过滤器中根据条件匹配。如果入口中是一个链表,需要把TS数据传递到对链表中每个结点对应地址指向的过滤器。每个结点对应一个过滤器,每个过滤器可能对应多个结点,如果一个过滤器请求多个PID就会对应多个结点,这些结点指向同一个过滤,每个结点都对应请求中的一个PID值,并根据PID值放在对应的索引表入口中,见附图3中所示的过滤器3同时对应了结点3和结点4。
[0033]同时,每个索引表入口里面可能没有结点,表示没有过滤器需要该PID的TS包,有可能有一个结点,表示有一个过滤器需要该TS包,也可能有多个结点,表示有多个过滤器需要该TS包。具体,见附图3中PID值为0的索引表入口中指向2个过滤器结点,两个过滤器结点分别指向过滤器1和过滤器2。这表示过滤器1和过滤器2都需要PID为0的数据。
[0034]其中,结点是在创建过滤器时创建,请求中需要过滤几个PID的TS包,就创建几个结点。如果一个过滤器要过滤Ν个PID值不同的数据包,则按需要先后顺序,创建Ν个结点。这Ν个结点,指向相同的过滤器地址,但放在不同PID的索引表入口中。具体,见附图3中所示的PID值为2和PID值为8190的入口分别指向结点3和4,这两个结点都指向过滤器3。这表示过滤3同时需要过滤PID值为2和PID值为8190的数据。
[0035]最后,当系统接收到TS包时,从TS包头部提取出PID值,用该值做下标在对应找到索引表中找到该PID值的结点链表,循环链表中各个结点,从每个结点的过滤器地址找到过滤器,用过滤器的过滤条件匹配TS包,如果满足过滤条件,处理数据并放置到过滤器的缓冲区中。也可以根据需求,不把数据存储到缓冲区,而是实时回调并把数据传给调用者。由于相同PID值同时多处请求的情况一般不多,所以索引表入口中的链表一般很短,其实通常只有一个结点,所以处理很快。当上层请求通过过滤器读取数据时,从过滤器的缓冲区中读走数据就行。
[0036]最后,当删除过滤器的接口被调用时,从过滤器中找到有关联哪几个PID,从PID对应的索引入口链表中删除相应结点,再删除过滤器。
[0037]综上所述,本发明通过在一个索引表入口放入一个结点链表,达到多个相同PID的过滤器共用一个入口的目的;同时可以多个不同PID的结点指向一个过滤器,来满足一个过滤请求中可以同时过滤多个PID数据的目的;这样,不同PID的数据可以根据不同的入口结点找到相同的过滤器,从而达到自由过滤各种不同PID包和相同PID包中不同的数据;尤其在不同软件模块同时过滤相同PID包数据的,而不用担心冲突。并且效率高、速度快。
【主权项】
1.TS流解复用方法,其特征在于,包括以下步骤: 步骤1、系统接收过滤请求信息,根据过滤请求信息生成过滤器; 步骤2、系统建立过滤器的索引表入口,索引表入口中的每个入口都分别对应一个结占.步骤3、系统创建每个结点与过滤器地址的映射关系; 步骤4、系统根据过滤请求信息及映射关系调用过滤器完成信息过滤。2.根据权利要求1所述的TS流解复用方法,其特征在于,所述步骤1中,过滤器至少包括要过滤数据的PID、过滤缓冲区及过滤缓冲区的大小。3.根据权利要求1所述的TS流解复用方法,其特征在于,所述步骤2中,索引表中包括8192个过滤入口,每个过滤入口对应一个PID值。4.根据权利要求1所述的TS流解复用方法,其特征在于,所述步骤2中,索引表入口中的每个入口都分别对应一个结点可以通过一个索引表入口对应一个结点链表的形式完成。5.根据权利要求4所述的TS流解复用方法,其特征在于,所述结点链表由多个不同节点组成。6.根据权利要求4所述的TS流解复用方法,其特征在于,所述结点链表由多个相同节点组成。7.根据权利要求1所述的TS流解复用方法,其特征在于,所述步骤3中,不同结点可以对应同一个过滤器地址。
【专利摘要】本发明涉及解复用方法。本发明针对现有技术中解复用模块提供的接口存在调用限制的问题,提供一种TS流解复用方法,首先,系统接收过滤请求信息,根据过滤请求信息生成过滤器;其次,系统建立过滤器的索引表入口,索引表入口中的每个入口都分别对应一个结点;然后,系统创建每个结点与过滤器地址的映射关系;最后,系统根据过滤请求信息及映射关系调用过滤器完成信息过滤。从而达到自由过滤各种不同PID包和相同PID包中不同的数据;尤其在不同软件模块同时过滤相同PID包数据的,而不用担心冲突。并且效率高、速度快。适用于TS流解复用方法。
【IPC分类】H04N21/434
【公开号】CN105472445
【申请号】CN201510802567
【发明人】常吕伦, 张刚, 吴纯彬, 张雷鸣, 周志武
【申请人】四川长虹电器股份有限公司
【公开日】2016年4月6日
【申请日】2015年11月19日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1