一種支持多個節目同時解擾的方法及系統與流程
2024-04-03 15:53:05 3
本發明涉及機頂盒
技術領域:
:,尤其涉及一種支持多個節目同時解擾的方法及系統。
背景技術:
::現如今數字機頂盒已經遍布家家戶戶,成為大眾獲取實時資訊,休閒娛樂的平臺,人們對於機頂盒的業務和節目質量要求越來越高,加擾節目的出現,增加了運營商的收益,用戶只有在購買授權之後才可以觀看加擾節目,使用戶在購買授權之後能夠觀看加擾節目是機頂盒基本功能之一。目前幾乎所有的機頂盒廠商與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