專利名稱:受保護(hù)的媒體路徑與拒絕響應(yīng)使能器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于建立通過公共基本庫(kù)以受信任方式將內(nèi)容從各個(gè)源的任一個(gè)傳送到各個(gè)信宿(sink)的任一個(gè)的受保護(hù)媒體路徑的一種體系結(jié)構(gòu)和方法。本發(fā)明尤其涉及這樣的一種體系結(jié)構(gòu)和方法,通過它僅在路徑被建成為可靠并滿足對(duì)應(yīng)于內(nèi)容的策略之后才傳遞內(nèi)容。
背景技術(shù):
眾所周知,并參照?qǐng)D1,極需要與諸如數(shù)字音頻、數(shù)字視頻、數(shù)字文本、數(shù)字?jǐn)?shù)據(jù)、數(shù)字多媒體等的數(shù)字內(nèi)容12相關(guān)的權(quán)限管理(RM)和實(shí)施系統(tǒng),其中這樣的數(shù)字內(nèi)容12要發(fā)布給用戶。在由用戶接收之后,用戶在諸如個(gè)人計(jì)算機(jī)14上的媒體播放機(jī)、便攜式回放裝置等的適當(dāng)呈現(xiàn)裝置的幫助下呈現(xiàn)或‘播放’數(shù)字內(nèi)容。
通常,發(fā)布這種數(shù)字內(nèi)容12的內(nèi)容所有者想要限制用戶可對(duì)這種經(jīng)發(fā)布數(shù)字內(nèi)容12進(jìn)行的操作。例如,內(nèi)容所有者可能想要限制用戶復(fù)制這種內(nèi)容12或?qū)⑺侔l(fā)布給第二個(gè)用戶,或者可能想要使發(fā)布數(shù)字內(nèi)容12僅能播放有限次、總共僅能播放一定時(shí)間、僅能在某類機(jī)器上播放、僅能在某類媒體播放機(jī)上播放、僅由某類用戶播放等。
然而,在進(jìn)行發(fā)布之后,對(duì)數(shù)字內(nèi)容12只有非常少的(若有的話)控制。RM系統(tǒng)10允許數(shù)字內(nèi)容12的任意形式的經(jīng)控制呈現(xiàn)或播放,其中這樣的控制是靈活的,并可由這種數(shù)字內(nèi)容的內(nèi)容所有者定義的。通常,內(nèi)容12以包13的形式通過任何適當(dāng)發(fā)布通道發(fā)布給用戶。所發(fā)布的數(shù)字內(nèi)容包13可包括用對(duì)稱加密/解密密鑰(KD)加密的數(shù)字內(nèi)容12(即KD(內(nèi)容))、以及標(biāo)識(shí)該內(nèi)容的其它信息、如何獲取這種內(nèi)容的許可證等。
基于信任的RM系統(tǒng)10使數(shù)字內(nèi)容12的所有者能指定在允許呈現(xiàn)這種數(shù)字內(nèi)容12之前必須滿足的規(guī)則。這種規(guī)則可包括前述和/或其它要求,并可包含于用戶/用戶的計(jì)算裝置14(此后這樣的術(shù)語(yǔ)是可互相交換的,除非環(huán)境另外要求)必須從內(nèi)容所有者或其代理獲取的數(shù)字許可證16內(nèi),或者這種規(guī)則可能已附于內(nèi)容12。這種許可證16可例如包括用于解密數(shù)字內(nèi)容12的解密密鑰(KD),該數(shù)字內(nèi)容12可能是根據(jù)可被用戶的計(jì)算裝置或其它回放裝置解密的另一密鑰加密的。
對(duì)一段數(shù)字內(nèi)容12的內(nèi)容所有者不愿意把內(nèi)容發(fā)布給用戶,除非該所有者能相信用戶將遵守她在許可證16或其它地方中所指定的規(guī)則。然后,最好向用戶的計(jì)算裝置14或其它回放裝置提供除非遵守規(guī)則將不呈現(xiàn)數(shù)字內(nèi)容12的受信任組件或機(jī)制18。
受信任組件18通常具有查看各規(guī)則,并基于被查看規(guī)則確定請(qǐng)求用戶是否有權(quán)利以所尋求的方式呈現(xiàn)所請(qǐng)求的數(shù)字內(nèi)容12等的評(píng)價(jià)器20。應(yīng)理解,評(píng)價(jià)器20在DRM系統(tǒng)10中受到信任,以根據(jù)規(guī)則實(shí)現(xiàn)數(shù)字內(nèi)容12所有者的想法,且用戶應(yīng)不能出于任何目的(惡意的或以其它方式的)簡(jiǎn)單地更改這種受信任組件18和/或評(píng)價(jià)器20。
應(yīng)理解,用于呈現(xiàn)內(nèi)容12的規(guī)則可指定用戶是否有權(quán)利基于若干因素的任一個(gè)來(lái)呈現(xiàn),這些因素包括用戶是誰(shuí)、用戶位于何處、用戶在使用的計(jì)算裝置14或其它回放裝置的類型、調(diào)用RM系統(tǒng)10的呈現(xiàn)應(yīng)用程序、日期、時(shí)間等。此外,規(guī)則可將呈現(xiàn)限制為預(yù)定數(shù)量的播放次數(shù)、或預(yù)定播放時(shí)間等。
規(guī)則可按照任意適當(dāng)語(yǔ)言和語(yǔ)法來(lái)指定。例如,語(yǔ)言可簡(jiǎn)單地指定必須滿足的屬性和值(例如必須晚于X的日期等),或可根據(jù)特定腳本(例如IF日期>X,THEN DO……)要求各功能的性能。
在評(píng)價(jià)器20確定用戶滿足規(guī)則之后,可呈現(xiàn)數(shù)字內(nèi)容12。特別地,為了呈現(xiàn)內(nèi)容12,解密密鑰(KD)從預(yù)定源獲取并應(yīng)用于來(lái)自內(nèi)容包13的(KD(內(nèi)容))以得到真實(shí)內(nèi)容12,然后真正呈現(xiàn)真實(shí)內(nèi)容12。
在RM系統(tǒng)10中,通過加密內(nèi)容12并使一規(guī)則集與該內(nèi)容12相關(guān)聯(lián),內(nèi)容12被打包由用戶使用,從而內(nèi)容12可僅根據(jù)某些規(guī)則呈現(xiàn)。因?yàn)閮?nèi)容12可僅根據(jù)規(guī)則呈現(xiàn),則可自由發(fā)布內(nèi)容12。然而,可以理解,各段內(nèi)容12可根據(jù)多個(gè)RM系統(tǒng)10得到保護(hù),每個(gè)系統(tǒng)都不必與每一個(gè)其它RM系統(tǒng)10兼容。
因此,需要定義用于將內(nèi)容12從多個(gè)系統(tǒng)10的任一個(gè)傳送到多個(gè)目標(biāo)的任一個(gè)的受保護(hù)媒體路徑的體系結(jié)構(gòu)和方法。特別地,需要與這種體系結(jié)構(gòu)相關(guān)的方法,來(lái)定義如何將路徑建成可靠并滿足對(duì)應(yīng)于內(nèi)容12的策略。
發(fā)明內(nèi)容
前述需要至少部分地由本發(fā)明來(lái)滿足,其中提供了用于通過計(jì)算裝置將內(nèi)容從至少一個(gè)源傳送到至少一個(gè)信宿的方法。計(jì)算裝置上的應(yīng)用程序用內(nèi)容、源和信宿的定義調(diào)用計(jì)算裝置上的媒體基本庫(kù),而該媒體基本庫(kù)基于已定義的內(nèi)容、源和信宿建立一受保護(hù)媒體路徑以實(shí)現(xiàn)這種傳送。該已建立的受保護(hù)媒體路徑包括媒體基本庫(kù),與源相關(guān)聯(lián)并相對(duì)應(yīng)、擔(dān)當(dāng)將該源連接到媒體基本庫(kù)的安全加鎖箱、并代表受保護(hù)媒體路徑中源的源可信權(quán)限(SOTA),以及與信宿相關(guān)聯(lián)并相對(duì)應(yīng)、擔(dān)當(dāng)將該信宿連接到媒體基本庫(kù)的安全加鎖箱、代表受保護(hù)媒體路徑中信宿的信宿可信權(quán)限(SITA)。
代表源的SOTA建立對(duì)于受保護(hù)媒體路徑的信任,并在建立對(duì)受保護(hù)媒體路徑的信任之后傳播對(duì)應(yīng)于要傳送到受保護(hù)媒體路徑的內(nèi)容的策略。該SOTA確定要對(duì)通過受保護(hù)媒體路徑傳送的內(nèi)容采取的特定類動(dòng)作,確定對(duì)通過受保護(hù)媒體路徑傳送的內(nèi)容不能采取該特定類動(dòng)作,并通知媒體基本庫(kù)對(duì)采取該動(dòng)作的拒絕。然后媒體基本庫(kù)通知應(yīng)用程序拒絕采取該動(dòng)作。
該SOTA認(rèn)識(shí)到拒絕可通過SOTA可用的特定使能器來(lái)糾正,且該SOTA通過媒體基本庫(kù)向應(yīng)用程序提供特定使能器。被提供的使能器包括應(yīng)用程序獲取響應(yīng)拒絕所需數(shù)據(jù)而必需的信息和方法。應(yīng)用程序通過媒體基本庫(kù)在其界面上接收使能器,而該界面應(yīng)用一常用交互過程來(lái)運(yùn)行使能器以獲取響應(yīng)拒絕所需的數(shù)據(jù)。此后,應(yīng)用程序向媒體基本庫(kù)提供已獲得的數(shù)據(jù),而媒體基本庫(kù)采用所提供的數(shù)據(jù)來(lái)響應(yīng)拒絕。
該SOTA根據(jù)所傳播的策略并至少部分地基于響應(yīng)拒絕決定可對(duì)通過受保護(hù)媒體路徑傳送的內(nèi)容采取特定類動(dòng)作,并通知媒體基本庫(kù)有關(guān)內(nèi)容,而媒體基本庫(kù)通知應(yīng)用程序可采取特定類動(dòng)作。應(yīng)用程序通過命令媒體基本庫(kù)執(zhí)行該類動(dòng)作繼續(xù)。
結(jié)合附圖閱讀前面的發(fā)明內(nèi)容和以下本發(fā)明各實(shí)施例的詳細(xì)描述,能得到更好的理解。為了說(shuō)明本發(fā)明,在附圖中示出當(dāng)前優(yōu)選的各實(shí)施例;然而,應(yīng)理解本發(fā)明并不限于所示的精確排列和裝置。在附圖中圖1是示出基于信任系統(tǒng)的示例的實(shí)施體系結(jié)構(gòu)的框圖;圖2是示出其中可結(jié)合本發(fā)明各方面和/或其各部分的通用計(jì)算機(jī)系統(tǒng)的框圖;圖3是根據(jù)本發(fā)明一實(shí)施例示出在被應(yīng)用程序調(diào)用之后由媒體基本庫(kù)定義的將內(nèi)容從源傳送到信宿的便攜式媒體路徑;圖4是根據(jù)本發(fā)明一實(shí)施例示出由圖3的便攜式媒體路徑在判定是否允許內(nèi)容從源傳送到信宿中執(zhí)行的關(guān)鍵步驟的流程圖;圖5是根據(jù)本發(fā)明一實(shí)施例示出圖3便攜式媒體路徑的一部分的框圖,包括帶有拒絕響應(yīng)使能器的源可信權(quán)限,以及帶有用來(lái)接收和運(yùn)行使能器的拒絕響應(yīng)界面的應(yīng)用程序;以及圖6是根據(jù)本發(fā)明一實(shí)施例示出由圖5元素響應(yīng)于對(duì)執(zhí)行動(dòng)作的拒絕而執(zhí)行的關(guān)鍵步驟的流程圖。
具體實(shí)施例方式
計(jì)算機(jī)環(huán)境圖1和以下討論旨在提供一種本發(fā)明和/或其部分可在其中實(shí)現(xiàn)的適當(dāng)計(jì)算環(huán)境的簡(jiǎn)要一般說(shuō)明。盡管不是必需的,本發(fā)明將在由諸如客戶機(jī)工作站或服務(wù)器的計(jì)算機(jī)執(zhí)行的諸如程序模塊的計(jì)算機(jī)可執(zhí)行指令的一般環(huán)境中進(jìn)行說(shuō)明。通常,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)具體抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。此外,本領(lǐng)域技術(shù)人員將理解,本發(fā)明和/或其部分可在其它計(jì)算機(jī)系統(tǒng)配置中實(shí)踐,包括手持式裝置、多處理器系統(tǒng)、基于微處理器的或可編程的電器消費(fèi)品、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)等等。本發(fā)明還可在任務(wù)由經(jīng)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理裝置執(zhí)行的分布式計(jì)算環(huán)境中實(shí)踐。在分布式計(jì)算環(huán)境中,程序模塊可被置于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
如圖2所示,示例性通用計(jì)算系統(tǒng)包括常規(guī)個(gè)人計(jì)算機(jī)120等,它們包括處理元素121、系統(tǒng)存儲(chǔ)器122以及把包括系統(tǒng)存儲(chǔ)器的各種系統(tǒng)組件耦合到處理元素121的系統(tǒng)總線123。系統(tǒng)總線123可能是若干總線結(jié)構(gòu)類型中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、以及使用多種總線架構(gòu)的任一種的局部總線。系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器(ROM)124和隨機(jī)存儲(chǔ)器(RAM)125。含有幫助如啟動(dòng)期間在個(gè)人計(jì)算機(jī)120中元件之間傳遞信息的基本例程的基本輸入/輸出系統(tǒng)(BIOS)126被存儲(chǔ)在ROM 124中。
個(gè)人計(jì)算機(jī)120還包括讀取和寫入硬盤(未示出)的硬盤驅(qū)動(dòng)器127、讀取或?qū)懭肟梢苿?dòng)磁盤129的磁盤驅(qū)動(dòng)器128、以及讀取或?qū)懭胫T如CD ROM或其它光學(xué)介質(zhì)等可移動(dòng)光盤131的光盤驅(qū)動(dòng)器130。硬盤驅(qū)動(dòng)器127、磁盤驅(qū)動(dòng)器128和光盤驅(qū)動(dòng)器130分別通過硬盤驅(qū)動(dòng)器接口132、磁盤驅(qū)動(dòng)器接口133和光盤驅(qū)動(dòng)器接口134連接至系統(tǒng)總線123。諸驅(qū)動(dòng)器及其相關(guān)聯(lián)計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)120提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性儲(chǔ)存。
盡管在此所述示例性環(huán)境采用了硬盤、可移動(dòng)磁盤129和可移動(dòng)光盤131,但本領(lǐng)域技術(shù)人員應(yīng)理解也可在示例性操作環(huán)境中使用其它類型計(jì)算機(jī)可訪問的能夠存儲(chǔ)數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì)。這樣的其它類型的介質(zhì)包括諸如磁帶盒、閃存卡、數(shù)字視頻盤、Bernoulli卡或磁帶、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等等。
包括操作系統(tǒng)135、一個(gè)或多個(gè)應(yīng)用程序136、其它程序模塊137和程序數(shù)據(jù)138的眾多程序模塊,可存儲(chǔ)在硬盤、磁盤129、光盤131、ROM 124或RAM 125中。用戶可通過諸如鍵盤140和定位裝置142的輸入裝置把指令和信息輸入個(gè)人計(jì)算機(jī)120。其它輸入裝置(未示出)可包括諸如話筒、操縱桿、游戲墊、衛(wèi)星接收器、掃描儀等等。這些和其它輸入裝置常常通過與系統(tǒng)總線相耦合的串行端口接口146連接到處理元素121,但是它也可通過其它接口相連,如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器147或其它類型的顯示裝置也通過諸如視頻適配器148的接口和系統(tǒng)總線123相連。除了顯示器147,個(gè)人計(jì)算機(jī)通常包括其它外圍輸出裝置(未示出),如揚(yáng)聲器和打印機(jī)。圖2的示例性系統(tǒng)還包括主機(jī)適配器155、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線156、以及與SCSI總線156相連的外部存儲(chǔ)裝置162。
個(gè)人計(jì)算機(jī)120可以在使用與一臺(tái)或多臺(tái)遠(yuǎn)程計(jì)算機(jī),諸如遠(yuǎn)程計(jì)算機(jī)149的邏輯連接的網(wǎng)絡(luò)化環(huán)境中運(yùn)行。遠(yuǎn)程計(jì)算機(jī)149可以是另一臺(tái)個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等裝置或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),而且通常包括上述與個(gè)人計(jì)算機(jī)120相關(guān)的許多或全部元件,盡管在圖2中僅顯示了存儲(chǔ)器存儲(chǔ)裝置150。圖2中所描繪的邏輯連接包括局域網(wǎng)(LAN)151和廣域網(wǎng)(WAN)152。這樣的網(wǎng)絡(luò)化環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、企業(yè)內(nèi)聯(lián)網(wǎng)和因特網(wǎng)上是常見的。
當(dāng)用于LAN網(wǎng)絡(luò)環(huán)境中時(shí),個(gè)人計(jì)算機(jī)120通過網(wǎng)絡(luò)接口或適配器153與LAN 151連接。當(dāng)用于WAN網(wǎng)絡(luò)環(huán)境中時(shí),個(gè)人計(jì)算機(jī)120通常包括調(diào)制解調(diào)器154或其它用于在諸如因特網(wǎng)的廣域網(wǎng)152上建立通信的裝置。可以是內(nèi)置式或外置式的調(diào)制解調(diào)器154,與系統(tǒng)總線123通過串行端口接口146相連接。在網(wǎng)絡(luò)化環(huán)境中,所述與個(gè)人計(jì)算機(jī)120相關(guān)的程序模塊或其部分,可以存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)裝置中??梢岳斫?,所示網(wǎng)絡(luò)連接是示例性的,也可以使用其它在計(jì)算機(jī)之間建立通信連接的裝置。
受保護(hù)的媒體路徑內(nèi)容保護(hù)表示用于保護(hù)數(shù)字內(nèi)容12使該內(nèi)容12不能以與內(nèi)容所有者和/或提供者不一致的方式使用的一類方法和技術(shù)。方法包括版權(quán)保護(hù)(CP)、鏈接保護(hù)(LP)、條件訪問(CA)、權(quán)限管理(RM)和數(shù)字權(quán)限管理(DRM)等。任何內(nèi)容保護(hù)系統(tǒng)的基本是唯有確保適當(dāng)遵守使用受保護(hù)內(nèi)容12的隱式和/或顯示規(guī)則的受信任應(yīng)用程序才能以不受保護(hù)形式訪問該內(nèi)容。通常,內(nèi)容12通過以某些方式加密而受到保護(hù),其中僅受信任的各方才能解密該內(nèi)容。
最嚴(yán)格意義的版權(quán)保護(hù)特別地應(yīng)用于駐留在存儲(chǔ)裝置上的內(nèi)容12,而鏈接保護(hù)應(yīng)用于經(jīng)傳輸介質(zhì)在應(yīng)用程序/裝置之間流動(dòng)的內(nèi)容12。條件訪問可被視為是鏈接保護(hù)的更復(fù)雜形式,其中高質(zhì)量的節(jié)目、頻道和/或電影在傳送中加密。只能向已為訪問該內(nèi)容12付過費(fèi)的訂戶提供解密該內(nèi)容所需的密鑰。
數(shù)字權(quán)限管理是一擴(kuò)展性體系結(jié)構(gòu),其中有關(guān)內(nèi)容12的特定段的授權(quán)使用的規(guī)則是顯式的,并限于或關(guān)聯(lián)于內(nèi)容12本身。DRM機(jī)制可支持比其它方法更豐富和更有表現(xiàn)力的規(guī)則,同時(shí)在單條內(nèi)容或者該內(nèi)容的子組件上提供更大的控制力和靈活性。數(shù)字權(quán)限管理系統(tǒng)的示例在申請(qǐng)?zhí)枮?9/290,363于1999年4月12日提交的美國(guó)專利申請(qǐng)以及申請(qǐng)?zhí)枮?0/126,614于1999年3月27日提交的美國(guó)臨時(shí)申請(qǐng)中陳述,它們?cè)诖巳勘灰胱鳛閰⒖肌?br>
權(quán)限管理是一種在組織上基于內(nèi)容12能受到保護(hù)以僅在一組織或子集內(nèi)可訪問的DRM形式。權(quán)限管理系統(tǒng)的一個(gè)示例在申請(qǐng)?zhí)枮?0/185,257、10/185,278和10/185,511均于2002年6月28日提交的美國(guó)專利申請(qǐng)中陳述,這些申請(qǐng)?jiān)诖巳恳胱鳛閰⒖肌?br>
在本發(fā)明中,在計(jì)算裝置14上定義受保護(hù)媒體路徑體系結(jié)構(gòu),以允許來(lái)自包括以上陳述系統(tǒng)的多個(gè)內(nèi)容管理系統(tǒng)的任一個(gè)的內(nèi)容處理和傳送。特別地,這種體系結(jié)構(gòu)提供一種機(jī)制,用于將受保護(hù)內(nèi)容12從源30傳送到目標(biāo)或‘信宿’32同時(shí)使該受保護(hù)內(nèi)容12能按需得到處理。注意,源30是傳送或‘溯源’內(nèi)容12的系統(tǒng)并可以是任何適當(dāng)系統(tǒng)而不背離本發(fā)明的精神和范圍,當(dāng)然假設(shè)源30可與該體系結(jié)構(gòu)交互。例如,源30可以是若干高級(jí)功能或最少功能的權(quán)限管理系統(tǒng)(諸如DRM或RM系統(tǒng))的任一種,或可以是具有有限內(nèi)容保護(hù)的若干源30(諸如CP、LP或CA系統(tǒng))的任一種,或甚至可以是帶有少量(若有的話)的任何內(nèi)在內(nèi)容保護(hù)的若干源30(諸如基本數(shù)據(jù)存儲(chǔ)系統(tǒng)或服務(wù)器、文件存儲(chǔ)系統(tǒng)或服務(wù)器等)的任一種注意源30可從別的地方獲取實(shí)際內(nèi)容12。例如,受權(quán)限保護(hù)的內(nèi)容12可在遠(yuǎn)程文件服務(wù)器上查找,但通過諸如計(jì)算裝置14上的權(quán)限管理系統(tǒng)的源30可訪問。
通常,源30能夠通過給定接口以一般方式溯源多媒體數(shù)據(jù)。源30的實(shí)現(xiàn)對(duì)應(yīng)于訪問內(nèi)容的不同裝置,并可包括能夠從硬盤或其它文件系統(tǒng)讀取DRM文件的DRM源、能夠從DVD盤等讀取DVD多媒體數(shù)據(jù)的DVD源等。注意,成為源30并不必然暗指其中內(nèi)容12的內(nèi)容保護(hù)。對(duì)于某些源30,內(nèi)容保護(hù)可對(duì)任一給定實(shí)例呈現(xiàn)或不呈現(xiàn)。
類似地,一個(gè)或多個(gè)信宿32的每一個(gè)是接收或‘引入’內(nèi)容12的系統(tǒng),并可以是任何適當(dāng)系統(tǒng)而不背離本發(fā)明的精神和范圍,當(dāng)然假設(shè)信宿32可與該體系結(jié)構(gòu)交互。例如,信宿32可以是用于接收要傳送給揚(yáng)聲器的音頻的音頻系統(tǒng)、用于接收要傳送給顯示屏的視頻的視頻系統(tǒng)、用于接收要傳送給燈光系統(tǒng)控制器的燈光控制信號(hào)的燈光控制系統(tǒng)、用于接收要傳送給馬達(dá)系統(tǒng)控制器的馬達(dá)控制信號(hào)的馬達(dá)控制系統(tǒng)等。此外,信宿32可僅僅是連接到諸如網(wǎng)絡(luò)或數(shù)據(jù)電纜的管道的接口。注意,由于有源30,信宿32可將實(shí)際內(nèi)容12傳送到其它地方。例如,音頻內(nèi)容可通過諸如計(jì)算裝置14上聲卡的信宿32被傳送到遠(yuǎn)程揚(yáng)聲器。注意,給定信宿32與輸出資源而不是內(nèi)容保護(hù)系統(tǒng)相關(guān)聯(lián)。對(duì)于信宿32的任一實(shí)例,可有或沒有與之相關(guān)聯(lián)的內(nèi)容保護(hù)系統(tǒng)。
現(xiàn)在參看圖3,重要的是在該體系結(jié)構(gòu)中,每個(gè)源30和每個(gè)信宿32可分別通過提供或訪問相應(yīng)的源可信權(quán)限(SOTA)38或信宿可信權(quán)限(SITA)40被集成到計(jì)算裝置14上媒體基本庫(kù)36的策略引擎34。因而,每個(gè)源30和每個(gè)信宿32可位于計(jì)算裝置14的本地或遠(yuǎn)程,但每個(gè)相應(yīng)SOTA 38和SITA 40位于計(jì)算裝置本地,從而在至少某些方面擔(dān)當(dāng)相應(yīng)源30或信宿32的代理或代表。重要地且應(yīng)被理解地,大多數(shù)任意源30或信宿32可分別通過具有相應(yīng)SOTA 38或SITA 40來(lái)參與媒體基本庫(kù)36和受保護(hù)的媒體路徑體系結(jié)構(gòu)。
每個(gè)SOTA 38代表在由該體系結(jié)構(gòu)定義的受保護(hù)媒體路徑39中的相應(yīng)源30,并行使在必要時(shí)提供用于解密來(lái)自源30的內(nèi)容12的解密功能,以及將與內(nèi)容12相關(guān)聯(lián)的策略從原始格式翻譯成遵從策略引擎34的格式的功能??梢岳斫猓@種策略實(shí)質(zhì)上是用于訪問并呈現(xiàn)內(nèi)容12的比如可在圖1許可證16中陳述的規(guī)則和要求。注意,SOTA 38也可用作源30,特別是關(guān)于與信任、策略和權(quán)限相關(guān)的問題。
類似地,每個(gè)SITA 40代表在由該體系結(jié)構(gòu)定義的受保護(hù)媒體路徑39中的相應(yīng)信宿32,并行使在必要時(shí)提供用于加密要傳送給信宿32的內(nèi)容12的加密功能,以及將與內(nèi)容12相關(guān)聯(lián)的策略從策略引擎34的格式翻譯成遵從信宿32的格式的功能。因而,信宿32接收內(nèi)容12和相應(yīng)策略,在必要時(shí)解密所接收的內(nèi)容12,并基于接收策略呈現(xiàn)該內(nèi)容。注意,SITA40可類似地用作信宿32,特別是關(guān)于與信任、策略和權(quán)限相關(guān)的問題。
還要注意,對(duì)應(yīng)于內(nèi)容12的任意特定段的策略可以是任意適當(dāng)策略,而不背離本發(fā)明的精神和范圍。這種策略通常在對(duì)特定源專用的前述原始格式中陳述,并可具有任意復(fù)雜性。例如,策略可被表達(dá)為一個(gè)設(shè)為1或0的比特序列,可包括用預(yù)定義語(yǔ)言展示的要執(zhí)行的邏輯,和/或甚至可包括或指向可執(zhí)行的機(jī)器代碼。一般而言,策略可表達(dá)信息,諸如對(duì)于相應(yīng)內(nèi)容12可采取的動(dòng)作、在動(dòng)作之前必須存在的條件、在必須采取動(dòng)作之后的事件、對(duì)于內(nèi)容12要呈現(xiàn)或可不呈現(xiàn)的元素、這些元素上的條件、要與傳送內(nèi)容一起轉(zhuǎn)發(fā)的策略等等。
媒體基本庫(kù)36的策略引擎34是受保護(hù)媒體路徑體系結(jié)構(gòu)的核心,并負(fù)責(zé)代表每個(gè)SOTA 38實(shí)施策略。因而,如以下將要詳細(xì)陳述的,策略引擎34協(xié)商每個(gè)可應(yīng)用源30和每個(gè)可應(yīng)用信宿32之間的策略,包括所需的信宿內(nèi)容保護(hù)系統(tǒng)、信宿內(nèi)容保護(hù)系統(tǒng)上的發(fā)送策略、以及媒體路徑組件包含和排除。策略引擎34還提供一受保護(hù)環(huán)境,其中所接收內(nèi)容12可憑借一定的保證度來(lái)處理,以防止內(nèi)容12被邪惡實(shí)體竊取。
具有策略引擎34的媒體基本庫(kù)36實(shí)際上是提供公共基礎(chǔ)機(jī)構(gòu)所需的功能的公共集合,該基礎(chǔ)結(jié)構(gòu)用于實(shí)現(xiàn)對(duì)來(lái)自任一特定源30的內(nèi)容12的處理并用于將已處理內(nèi)容12傳送到任一特定信宿32。重要的是,盡管內(nèi)容12及相關(guān)聯(lián)策略的格式可按源30不同而變化,媒體基本庫(kù)仍可處理這樣的內(nèi)容12及相關(guān)聯(lián)策略,因?yàn)槊總€(gè)源30具有必要時(shí)解密內(nèi)容12并將相關(guān)聯(lián)策略從前述原始格式翻譯成遵從策略引擎34的前述格式的相應(yīng)SOTA 38。類似地,盡管內(nèi)容12及相關(guān)聯(lián)策略的格式可按信宿32不同而變化,媒體基本庫(kù)仍可處理這樣的內(nèi)容12及相關(guān)聯(lián)策略,因?yàn)槊總€(gè)信宿32具有必要時(shí)加密內(nèi)容12并將相關(guān)聯(lián)策略從前述遵從策略引擎34的格式翻譯成遵從信宿32的格式的相應(yīng)SITA 40。
更具體地,媒體基本庫(kù)36提供一公共基礎(chǔ)結(jié)構(gòu)以通過在計(jì)算裝置14的操作系統(tǒng)中提供一受保護(hù)環(huán)境使媒體內(nèi)容12能流入流出該受保護(hù)環(huán)境,提供一個(gè)一般機(jī)制用于翻譯和協(xié)商跨受保護(hù)環(huán)境邊界的權(quán)限、規(guī)則和策略,并提供一個(gè)一般機(jī)制用于加密/解密高比特率的媒體數(shù)據(jù)同時(shí)在計(jì)算裝置14上的受保護(hù)環(huán)境和其它受保護(hù)環(huán)境之間安全地傳遞該內(nèi)容。因而,媒體基本庫(kù)36使受保護(hù)內(nèi)容12以受保護(hù)方式流出、流入并通過計(jì)算裝置14,并允許受保護(hù)內(nèi)容12的任何處理。結(jié)果,任何感興趣方都可通過發(fā)布適當(dāng)?shù)腟OTA 38和/或SITA 40將對(duì)任一內(nèi)容保護(hù)的支持加入到計(jì)算裝置14上的操作系統(tǒng)中。
通常,如圖3所示,媒體基本庫(kù)36包括提供該媒體基本庫(kù)36的前述公共基礎(chǔ)結(jié)構(gòu)的眾多核心組件42??梢岳斫?,每個(gè)組件42可以是任意適當(dāng)組件而不背離本發(fā)明的精神和范圍。采用這樣的核心組件42通常是眾所周知的或?qū)ο嚓P(guān)群體應(yīng)當(dāng)是顯而易見的,因此無(wú)需在此贅述。
除媒體基本庫(kù)36的核心組件42所提供的功能之外,如果必要,通過發(fā)布適當(dāng)?shù)谋辉O(shè)計(jì)成結(jié)合媒體基本庫(kù)36工作以提供這種附加功能的補(bǔ)充組件或‘插件’44,任一感興趣方可將對(duì)附加的任意受保護(hù)功能的支持添加到計(jì)算裝置14上的操作系統(tǒng)??梢岳斫?,每個(gè)插件44可以是任意適當(dāng)?shù)牟寮槐畴x本發(fā)明的精神和范圍。采用這樣的插件44通常是眾所周知的或?qū)ο嚓P(guān)群體應(yīng)當(dāng)是顯而易見的,因此無(wú)需在此贅述。
在本發(fā)明一實(shí)施例中,媒體基本庫(kù)36被驅(qū)使以通過計(jì)算裝置14上的媒體應(yīng)用程序46來(lái)安排一個(gè)或多個(gè)選定源30的每一個(gè)與一個(gè)或多個(gè)選定信宿32的每一個(gè)之間的受保護(hù)媒體路徑39。假設(shè)媒體應(yīng)用程序46在用戶、計(jì)算裝置14上或其它地方的另一應(yīng)用程序的控制之下。因而媒體應(yīng)用程序46選擇要呈現(xiàn)的內(nèi)容12,且為了這樣做選擇一個(gè)或多個(gè)選定源30,并在必要時(shí)選擇一個(gè)或多個(gè)信宿32。此后,媒體應(yīng)用程序通過已安排的受保護(hù)媒體路徑39而不涉及受保護(hù)內(nèi)容12的呈現(xiàn),除了有可能提供諸如開始、停止、重復(fù)、倒轉(zhuǎn)、快進(jìn)等的控制命令。
在本發(fā)明一實(shí)施例中,媒體基本庫(kù)36以及由此安排的受保護(hù)媒體路徑39單獨(dú)負(fù)責(zé)控制在已安排的受保護(hù)媒體路徑39內(nèi)的內(nèi)容12,而相應(yīng)地應(yīng)用程序46不控制在已安排的受保護(hù)媒體路徑39內(nèi)的內(nèi)容12。因而,應(yīng)用程序46通過媒體基本庫(kù)36和由此安排的受保護(hù)媒體路徑39引導(dǎo)內(nèi)容12的呈現(xiàn),但對(duì)該內(nèi)容12沒有任何實(shí)際訪問或控制,尤其是以任何未受保護(hù)形式的控制。特別地,媒體基本庫(kù)36和受保護(hù)媒體路徑39不能由應(yīng)用程序46或任何其它元素引導(dǎo)對(duì)內(nèi)容12采取違反與內(nèi)容12相對(duì)應(yīng)的策略的動(dòng)作。結(jié)果,重要的是應(yīng)用程序46不需建立與圖3受保護(hù)媒體路徑39相關(guān)的任何特定信任度,并且實(shí)際上應(yīng)用程序46并不被信任以任何受信任方式處理內(nèi)容12。當(dāng)然,應(yīng)用程序46中這種信任的缺乏并不是有害的,因?yàn)閼?yīng)用程序46實(shí)際上除了在媒體基本庫(kù)36和由此安排的受保護(hù)媒體路徑39的操作過程中發(fā)出以上陳述的呈現(xiàn)控制命令外并不處理內(nèi)容12。
總而言之,媒體基本庫(kù)36在應(yīng)用程序46的引導(dǎo)下操作以安排通過它來(lái)自一個(gè)或多個(gè)源30的內(nèi)容12被傳送到一個(gè)或多個(gè)信宿32的受保護(hù)媒體路徑39。假設(shè)內(nèi)容12在通過已安排的受保護(hù)媒體路徑39時(shí)由媒體基本庫(kù)36以某方式操作,盡管媒體基本庫(kù)36對(duì)該內(nèi)容12的這種操作可按需最少或最多。重要的是,在每個(gè)源30允許內(nèi)容12通過已安排的受保護(hù)媒體路徑39之前且在本發(fā)明一實(shí)施例中,源30確信,簡(jiǎn)單涉及或‘觸及’內(nèi)容12的媒體基本庫(kù)36、其策略引擎34、其每個(gè)采用組件42、其每個(gè)采用插件44、每個(gè)接收信宿32或任何其它組件是(a)可靠的并(b)具有基于與內(nèi)容12相關(guān)聯(lián)的策略觸及內(nèi)容12的權(quán)限。
根據(jù)本發(fā)明,可基于擔(dān)保元素的權(quán)標(biāo)的提供示出元素是可靠的。這種擔(dān)保權(quán)標(biāo)可以是任何適當(dāng)?shù)膿?dān)保權(quán)標(biāo)而不背離本發(fā)明的精神和范圍。例如,特別是在數(shù)字領(lǐng)域中,這種擔(dān)保權(quán)標(biāo)可包括來(lái)自擔(dān)保權(quán)威機(jī)構(gòu)的數(shù)字證書,可能包括擴(kuò)展回一眾所周知的并受信任的根源權(quán)威機(jī)構(gòu)的各證書的校驗(yàn)鏈。這樣的證書會(huì)包括可基于證書中的密鑰校驗(yàn)的受信任元素的散列,從而出于任何目的對(duì)元素的更改(包括破壞了該元素的信任度)將導(dǎo)致散列無(wú)法得到校驗(yàn),在該情形中元素不受信任。
還根據(jù)本發(fā)明,一旦認(rèn)為元素可靠則確信該元素要基于它是否可給予在與內(nèi)容12相關(guān)聯(lián)的策略中陳述的權(quán)限來(lái)判定它是否可觸及內(nèi)容12?;蛘撸_信元素要誠(chéng)實(shí)地響應(yīng)于來(lái)自另一元素的基于權(quán)限的查詢。例如,如果策略表述元素必須至少具有某版本號(hào),而該元素具有一較舊版本號(hào),則確信元素要拒絕觸及內(nèi)容12,且在該特定情形中可能被期望對(duì)詢問方解釋這樣拒絕的理由。類似地,如果例如策略表述元素必須不以未受保護(hù)形式存儲(chǔ)內(nèi)容12,且該元素的確這樣做了,類似地確信該元素要拒絕觸及內(nèi)容12,且在該特定情形中可能再次被期望對(duì)詢問方解釋這樣拒絕的理由。
參看圖4,在本發(fā)明一實(shí)施例中,如圖3所示的受保護(hù)媒體路徑體系結(jié)構(gòu)被用來(lái)以以下方式將內(nèi)容12從一個(gè)或多個(gè)源30傳送到一個(gè)或多個(gè)信宿32。起初,在用戶或另一元素引導(dǎo)下的應(yīng)用程序46想要將內(nèi)容12從一個(gè)或多個(gè)源30傳送到一個(gè)或多個(gè)信宿32,并因而用內(nèi)容12的定義、從中獲取內(nèi)容12的每個(gè)源30、以及向其傳送內(nèi)容12的每個(gè)信宿32來(lái)調(diào)用媒體基本庫(kù)36(步驟401)。
作為響應(yīng),基于所定義內(nèi)容12、源30和信宿32的媒體基本庫(kù)36建立一受保護(hù)媒體路徑39以實(shí)現(xiàn)這樣的傳送(步驟403)。注意,在這樣做時(shí),媒體基本庫(kù)36可選擇在通過受保護(hù)媒體路徑39傳送時(shí)要對(duì)內(nèi)容12進(jìn)行處理和操作的一個(gè)或多個(gè)組件42,并類似地可選擇在通過受保護(hù)媒體路徑39傳送時(shí)要對(duì)內(nèi)容12進(jìn)行處理和操作的一個(gè)或多個(gè)插件44。媒體基本庫(kù)36可采用任何適當(dāng)方法來(lái)建立受保護(hù)的媒體路徑39并選擇組件42和插件44而不背離本發(fā)明的精神和范圍。由媒體基本庫(kù)36對(duì)受保護(hù)媒體路徑39的建立以及對(duì)組件42和插件44的選擇是眾所周知的或?qū)ο嚓P(guān)群體應(yīng)當(dāng)是顯而易見的,因此無(wú)需在此贅述。例如,本發(fā)明所采取的或與其相關(guān)的動(dòng)作可包括在附錄中陳述的動(dòng)作。
重要的是,在媒體基本庫(kù)36建立受保護(hù)媒體路徑39之后,對(duì)應(yīng)于被定義路徑39的每個(gè)源30的SOTA 38被例示為將源30連接到媒體基本庫(kù)36的安全加鎖箱,如圖3(圖4步驟405)所示。這種例示可由源30、媒體基本庫(kù)36、或其組合執(zhí)行而不背離本發(fā)明的精神和范圍。如上所述,每個(gè)SOTA 38都是可信權(quán)限且代表受保護(hù)媒體路徑39中的相應(yīng)源30,并行使在必要時(shí)提供用于解密來(lái)自源30的內(nèi)容12的解密功能,以及將與內(nèi)容12相關(guān)聯(lián)的策略從原始格式翻譯成遵從媒體基本庫(kù)36的策略引擎34的格式的功能。注意,SOTA 38也可用作源30,特別是關(guān)于與信任、策略和權(quán)限相關(guān)的問題。
也重要的是,在媒體基本庫(kù)36建立受保護(hù)媒體路徑39之后,對(duì)應(yīng)于被定義路徑39的每個(gè)信宿32的SITA 40被例示為將信宿32連接到媒體基本庫(kù)36的安全加鎖箱,如圖3(圖4步驟407)所示。類似地,這種例示可由信宿32、媒體基本庫(kù)36、或其組合執(zhí)行而不背離本發(fā)明的精神和范圍。如上所述,每個(gè)SITA 40都是可信權(quán)限且代表受保護(hù)媒體路徑39中的相應(yīng)信宿32,并行使在必要時(shí)提供用于加密要傳送給信宿32的內(nèi)容12的加密功能,以及將與內(nèi)容12相關(guān)聯(lián)的策略從策略引擎34的格式翻譯成遵從信宿32的格式的功能。還注意到,SITA40可類似地用作信宿32,特別是關(guān)于與信任、策略和權(quán)限相關(guān)的問題。
在本發(fā)明一實(shí)施例中,代表源30動(dòng)作的SOTA 38建立對(duì)于受保護(hù)媒體路徑的信任。然后一旦建立信任,SOTA 38傳播對(duì)應(yīng)于要呈現(xiàn)的內(nèi)容12的策略,如應(yīng)用程序46在步驟401所定義。特別地,通過首先建立與媒體基本庫(kù)36的策略引擎34的信任SOTA 38建立信任(步驟409)。隨后,受信任的策略引擎34與剩下的受保護(hù)媒體路徑39建立信任,包括每個(gè)組件42、每個(gè)插件44以及由SITA 40代表的每個(gè)信宿32(步驟411)。
在建立信任時(shí),如上所述,元素可基于諸如來(lái)自擔(dān)保元素的擔(dān)保權(quán)威機(jī)構(gòu)的數(shù)字證書那樣的權(quán)標(biāo)示為可靠的。這樣的證書會(huì)包括可基于證書中的密鑰校驗(yàn)的受信任元素的散列,從而建立對(duì)元素的信任可包括校驗(yàn)該散列。注意在信任未對(duì)元素建立的任何時(shí)候,該元素被拒絕訪問內(nèi)容12。因而,如果可能必須從受保護(hù)媒體路徑39中移除該元素。如果不可能,SOTA 38不把內(nèi)容12釋放給該受保護(hù)媒體路徑39。
假設(shè)受信任策略引擎34實(shí)際上建立了對(duì)受保護(hù)媒體路徑39的每個(gè)元素的信任,包括每個(gè)組件42、每個(gè)插件44、以及由SITA40代表的每個(gè)信宿,然后SOTA38傳播要呈現(xiàn)的對(duì)應(yīng)于內(nèi)容12的策略。特別地,SOTA 38向該策略引擎34傳播該策略(步驟413)。其中,SOTA 38采用在必要時(shí)將與策略從原始格式翻譯成遵從媒體基本庫(kù)36的策略引擎34的格式的功能,然后將經(jīng)翻譯策略傳送給策略引擎34。
然后,帶有經(jīng)翻譯策略的策略引擎34確立,媒體基本庫(kù)36的每個(gè)組件42和每個(gè)插件44具有觸及或訪問內(nèi)容12對(duì)應(yīng)于經(jīng)翻譯策略的權(quán)限。特別地,基于該經(jīng)翻譯策略,策略引擎34按需確定,媒體基本庫(kù)36的每個(gè)組件42和插件44滿足經(jīng)翻譯策略的條款(步驟415)。注意,受信任元素可仍然不具備基于該策略觸及或訪問內(nèi)容12的權(quán)限。例如,如上所述,如果策略表述元素必須至少具有某版本號(hào),而該元素具有一較舊版本號(hào),則該元素雖然受信任但仍不具備觸及或訪問內(nèi)容12的權(quán)限。注意,在受信任元素未具有由策略引擎34確定的訪問或觸及內(nèi)容12的期限的任何時(shí)候,該元素被拒絕訪問內(nèi)容12。因而,如果可能必須從受保護(hù)媒體路徑39中移除該元素。如果不可能,SOTA 38不把內(nèi)容12釋放給該受保護(hù)媒體路徑39。
此外,帶有經(jīng)翻譯策略的策略引擎34確立,受保護(hù)媒體路徑39中的每個(gè)信宿具有觸及或訪問內(nèi)容12對(duì)應(yīng)于經(jīng)翻譯策略的權(quán)限。特別地,策略引擎34將該經(jīng)翻譯策略傳播到信宿32的SITA 40(步驟417)。其中,類似地SITA 40采用在必要時(shí)將經(jīng)翻譯策略重新翻譯成遵從信宿32的格式的功能,然后將經(jīng)重新翻譯的策略傳送給SITA 40。然后,作為受保護(hù)媒體路徑39的受信任元素的信宿32和SITA40被確信遵守該經(jīng)重新翻譯的策略。
在本發(fā)明一實(shí)施例中,附加或可任選的策略引擎34通過SITA 40向信宿32請(qǐng)求對(duì)應(yīng)于策略信宿32想要對(duì)內(nèi)容12采取的動(dòng)作(步驟419)。這種動(dòng)作可包括例如播放內(nèi)容12、復(fù)制內(nèi)容12、以不受保護(hù)格式輸出內(nèi)容12等。注意因?yàn)榘⊿ITA 40和信宿32的受保護(hù)媒體路徑39在應(yīng)用程序46的命令下建立,該SITA 40/信宿32應(yīng)顯式或隱式地知道對(duì)于內(nèi)容12要采取什么動(dòng)作。還注意到,盡管策略引擎34可向應(yīng)用程序46請(qǐng)求這種動(dòng)作,應(yīng)用程序46并不受信任以作誠(chéng)實(shí)響應(yīng),而信宿32/SITA 40實(shí)際上是受信任的。
無(wú)論如何,受信任信宿32/SITA40響應(yīng)該動(dòng)作且策略引擎34將其轉(zhuǎn)發(fā)給SOTA38(步驟421)。然后,SOTA38可能參照對(duì)應(yīng)于內(nèi)容12的策略判定SITA40/信宿32是否可假設(shè)可以采取該動(dòng)作,并將其通知給策略引擎34(步驟423)。應(yīng)理解,如果不能采取該動(dòng)作,SOTA 38將不允許內(nèi)容12釋放給受保護(hù)媒體路徑39。
假設(shè)可以采取該動(dòng)作,策略引擎34將其通知給應(yīng)用程序46(步驟425),然后應(yīng)用程序46通過命令媒體基本庫(kù)36執(zhí)行該動(dòng)作及相關(guān)動(dòng)作繼續(xù)(步驟427)。例如,應(yīng)用程序可命令媒體基本庫(kù)播放內(nèi)容12,并還可在較晚時(shí)間命令媒體基本庫(kù)36停止、回放、快進(jìn)、跳前、跳后等。
注意在采取該動(dòng)作的過程中,內(nèi)容12通過由媒體基本庫(kù)36安排的受保護(hù)媒體路徑39。特別地,媒體基本庫(kù)36從源30中檢索內(nèi)容12,使用SOTA38的解密功能來(lái)按需解密內(nèi)容12,并然后發(fā)送內(nèi)容12到下方。因而,媒體基本庫(kù)36及其組件42和插件44執(zhí)行對(duì)內(nèi)容12所必須的處理,且媒體基本庫(kù)36使用SITA40的加密功能來(lái)按需加密內(nèi)容12并向信宿32發(fā)送內(nèi)容12。當(dāng)然,信宿32隨后將內(nèi)容12發(fā)送到最終目標(biāo)。
對(duì)內(nèi)容12采取的動(dòng)作應(yīng)由策略引擎34傳送給SOTA 38,從而SOTA 38可更新與對(duì)應(yīng)于該內(nèi)容12的策略相關(guān)的任何狀態(tài)信息。例如,如果策略需要保留播放計(jì)數(shù),SOTA 38應(yīng)注意某時(shí)刻之后會(huì)調(diào)整播放計(jì)數(shù)?;蛘?,作為內(nèi)容12傳送者的SOTA 38自己可檢測(cè)所采取的動(dòng)作并按需更新任何狀態(tài)信息。
現(xiàn)在應(yīng)理解,應(yīng)用程序46可在后來(lái)某時(shí)刻決定重新配置受保護(hù)媒體路徑39。例如,應(yīng)用程序46可改變音頻信宿32和燈光信宿32。這樣,應(yīng)理解,如圖4所述的過程必須重復(fù)以在經(jīng)重新配置路徑中建立信任,并于其中傳播權(quán)限。
應(yīng)理解,在本發(fā)明中,可命令媒體基本庫(kù)36基于源30和信宿32的某些任意或幾乎任意的組合來(lái)建立受保護(hù)媒體路徑39。重要的是,無(wú)論所建立的是什么路徑39,本發(fā)明的體系結(jié)構(gòu)使該路徑39能被鑒定為可靠,并滿足有關(guān)對(duì)應(yīng)于通過該路徑的內(nèi)容12的策略或權(quán)限。此外,盡管路徑39在應(yīng)用程序46的命令下建立,這種應(yīng)用程序46本身無(wú)需是可靠的,因?yàn)閼?yīng)用程序46本身從不以它可有意或無(wú)意地竊取內(nèi)容12的方式觸及或訪問內(nèi)容12。
拒絕響應(yīng)使能器及其界面如上結(jié)合圖4所示方法所述,受信任信宿32/SITA 40在步驟421提供響應(yīng)于策略引擎34要采取的動(dòng)作,而SOTA 38在步驟423判定SITA 40/信宿32是否可以采取該動(dòng)作并通知策略引擎34。如果SOTA 38拒絕允許采取動(dòng)作,則SOTA 38不允許內(nèi)容12向受保護(hù)媒體路徑39釋放。
這樣的拒絕通常將結(jié)束圖4的過程,可能導(dǎo)致應(yīng)用程序46的用戶有不甚滿意的體驗(yàn)。然而,可以理解,可預(yù)期至少某些類型拒絕的底層基礎(chǔ),可用相對(duì)直接的方法來(lái)處理至少某些底層基礎(chǔ),并且SOTA 38因此可被構(gòu)建為包括或具有對(duì)解決至少某些拒絕底層基礎(chǔ)的功能的訪問。這種拒絕有很多并且是可變的,并可包括缺少適當(dāng)許可證16(圖1)、缺少元素的當(dāng)前版本、內(nèi)含被設(shè)置成執(zhí)行不適當(dāng)功能的信宿32等。在本發(fā)明一實(shí)施例中,向受保護(hù)媒體路徑39的體系結(jié)構(gòu)提供了拒絕響應(yīng)功能以響應(yīng)至少某些拒絕。
注意,這樣的拒絕響應(yīng)功能可被包括在媒體基本庫(kù)36中而不背離本發(fā)明的精神和范圍。然而,由于這樣的拒絕響應(yīng)功能可能與特定源30緊密相關(guān),更可能的是這種功能應(yīng)被包括在對(duì)應(yīng)于該源30的SOTA 38或由其訪問。
注意,響應(yīng)一拒絕有時(shí)可通過應(yīng)用程序46請(qǐng)求用戶輸入,而有時(shí)則可放棄這種用戶輸入,其中SOTA無(wú)需用戶的幫助而響應(yīng)。然而,根據(jù)良好實(shí)踐,應(yīng)用程序上的用戶應(yīng)一直參與對(duì)拒絕的響應(yīng),特別是當(dāng)響應(yīng)需要從諸如網(wǎng)絡(luò)的遠(yuǎn)程源獲取一條目或信息時(shí)。在本發(fā)明一實(shí)施例中,參看圖5,每個(gè)SOTA 38提供一個(gè)或多個(gè)拒絕響應(yīng)使能器48,每個(gè)響應(yīng)于一特定拒絕,而應(yīng)用程序46包括可與每個(gè)使能器48通過界面連接的由媒體基本庫(kù)36提供的響應(yīng)界面50。
因而,應(yīng)當(dāng)理解,被提供使能器48和界面50通過應(yīng)用程序46提供一抽象層以由SOTA 38實(shí)現(xiàn)拒絕響應(yīng)的細(xì)節(jié)。特別地,SOTA 38的被提供使能器48陳述響應(yīng)其特定拒絕,包括一個(gè)或多個(gè)獲取信息的位置要來(lái)自用戶的輸入等,而界面50指定應(yīng)用程序46和通過媒體基本庫(kù)36提供的使能器48之間的一致交互過程。重要的是,盡管被提供使能器48隨各個(gè)拒絕和各個(gè)源30而不同,界面50不管被提供使能器48與哪個(gè)拒絕或哪個(gè)源30/SOTA 38相關(guān)聯(lián)都采用相同的界面過程。因而,應(yīng)用程序46無(wú)論采用被提供的使能器48可用以執(zhí)行拒絕響應(yīng)的哪些功能,無(wú)需區(qū)別提供這種使能器48的特定源30。注意,盡管應(yīng)用程序46不受信任,通過使能器48獲取的任何信息或數(shù)據(jù)被提供給媒體基本庫(kù)36和/或便攜式媒體路徑39,并且它本身不得不證實(shí)在這種媒體基本庫(kù)36和/或便攜式媒體路徑39的環(huán)境中的可靠性。即,當(dāng)界面50運(yùn)行使能器48時(shí)在應(yīng)用程序46所采取的措施中沒有固有的信任。
現(xiàn)在參照?qǐng)D6,可看到結(jié)合受保護(hù)的媒體路徑39,受信任的SITA 40在步驟421提供了響應(yīng)于策略引擎34要采取的動(dòng)作,而SOTA 38在步驟423已拒絕使SITA40能在此時(shí)因?yàn)槟承└杏X到的缺陷采取動(dòng)作(步驟601)。然而,SOTA 38已認(rèn)識(shí)到,通過這種SOTA 38可用的或包括其中的特定使能器48的應(yīng)用可對(duì)拒絕的基礎(chǔ)作出響應(yīng)(步驟603),且SOTA 38因而通過媒體基本庫(kù)36把特定使能器48提供給應(yīng)用程序46(步驟605)。注意,媒體基本庫(kù)36可具有對(duì)界面的指針或其它參考點(diǎn),并可因而通過這種指針或其它參考點(diǎn)把被提供使能器指向應(yīng)用程序46的界面50。
可以理解,通過其界面50被提供使能器48包括所有應(yīng)用程序46所必需的信息以及方法以獲取為響應(yīng)需要被提供使能器48的拒絕所需的任何信息或數(shù)據(jù)。因而,通過應(yīng)用程序46的界面50經(jīng)由媒體基本庫(kù)36從SOTA 38接收被提供使能器48(步驟607),而界面50把前述的一致交互過程應(yīng)用于有效運(yùn)行被提供使能器48(步驟609)。因而,有了被提供使能器48以及必須的和/或來(lái)自用戶的穩(wěn)健輸入,應(yīng)用程序46及其界面50實(shí)際上嘗試獲取的是由來(lái)自必需源(本地或遠(yuǎn)程的)的拒絕所必須的任何數(shù)據(jù)或信息(步驟611)。當(dāng)然,所需的用戶交互程度基于環(huán)境而變化。例如,它在某些環(huán)境中可在下載數(shù)據(jù)或信息之前獲得用戶的許可是足夠了,特別是當(dāng)下載并無(wú)成本時(shí)。然而如果涉及到費(fèi)用,則當(dāng)然有必要獲取用戶對(duì)支付費(fèi)用的許可,但無(wú)需提及如何支付費(fèi)用的細(xì)節(jié)。
因而,如果拒絕基于缺少適當(dāng)許可證16,則獲取那樣的許可證16。如果基于缺少元素的當(dāng)前版本,則獲取該元素的當(dāng)前版本,且如果基于內(nèi)含信宿32被設(shè)置成執(zhí)行一不適當(dāng)功能,則用戶或應(yīng)用程序適當(dāng)?shù)卦O(shè)置信宿32。注意,當(dāng)然并不是所有的拒絕是可以補(bǔ)救的。例如,用戶可能不想獲取所需許可證、元素的當(dāng)前版本可能得不到,或者信宿32可能無(wú)法以SOTA 38滿意的方式設(shè)置。當(dāng)然,在這種情形中響應(yīng)失敗,且SOTA38將拒絕允許SITA40采取所要求的動(dòng)作。
然而,假設(shè)拒絕實(shí)際上通過獲取必需數(shù)據(jù)或信息得到補(bǔ)救,應(yīng)用程序46向媒體基本庫(kù)36發(fā)送該數(shù)據(jù)或信息(步驟613),且通過例如將許可證16存儲(chǔ)在證書庫(kù)中、安裝組件的當(dāng)前版本、調(diào)整信宿32的設(shè)置等,媒體數(shù)據(jù)庫(kù)36按需適當(dāng)采用那樣的數(shù)據(jù)(步驟615)。
一旦完成,界面50通知SOTA 38、應(yīng)用程序46、和/或應(yīng)用程序46的用戶,由被提供使能器48所需承擔(dān)的響應(yīng)是完整的,且可能響應(yīng)是成功或失敗的(步驟617)。此外,情形可能是界面50的一致交互過程包括一周期性進(jìn)展通知功能,它向SOTA 38、應(yīng)用程序46、和/或應(yīng)用程序46的用戶通知響應(yīng)的進(jìn)展,從而可能上述無(wú)一會(huì)使響應(yīng)超時(shí)并退出響應(yīng)。在此情形中,實(shí)際上界面50向SOTA 38、應(yīng)用程序46、和/或應(yīng)用程序46的用戶周期性地通知期間響應(yīng)的進(jìn)展(步驟612)。
無(wú)論如何,在向SOTA 38通知響應(yīng)完成(步驟617)之后,SOTA再次判定SITA 40/信宿32是否可采取原先被拒絕的動(dòng)作(步驟619)。如果SOTA 38再次拒絕允許采取該動(dòng)作,則SOTA 38再次不允許內(nèi)容12向受保護(hù)的媒體路徑39釋放,但相反可再次認(rèn)識(shí)到,通過這種SOTA 38可用的或包括其中的特定使能器48的應(yīng)用可對(duì)拒絕的基礎(chǔ)作出響應(yīng)(如步驟603),且SOTA 38因而再次通過媒體基本庫(kù)36把特定使能器48提供給應(yīng)用程序46(如步驟605)。
然而,假設(shè)SOTA 38現(xiàn)在實(shí)際上允許SITA 40采取要求動(dòng)作,SOTA 38此時(shí)允許內(nèi)容12向受保護(hù)媒體路徑39釋放,且策略引擎34如此通知應(yīng)用程序46,如圖4步驟425。應(yīng)當(dāng)理解,應(yīng)用程序46可通過命令媒體基本庫(kù)36來(lái)執(zhí)行該動(dòng)作及相關(guān)動(dòng)作繼續(xù),如圖4步驟427。
現(xiàn)在應(yīng)當(dāng)理解,SOTA 38采用由應(yīng)用程序46的界面50執(zhí)行的使能器48以允許SOTA 38使用戶和/或應(yīng)用程序46在SOTA拒絕SITA 40所請(qǐng)求的動(dòng)作時(shí)執(zhí)行對(duì)SOTA 38的響應(yīng)。盡管SOTA 38可能可自己執(zhí)行響應(yīng),但根據(jù)良好實(shí)踐,應(yīng)用程序上的用戶應(yīng)一直參與對(duì)拒絕的響應(yīng),特別是當(dāng)響應(yīng)需要從諸如網(wǎng)絡(luò)的遠(yuǎn)程源獲取數(shù)據(jù)或信息時(shí)。此外,無(wú)論如何,都有這種用戶對(duì)應(yīng)用程序46的參與是必要的時(shí)候。
結(jié)論本發(fā)明可對(duì)任何適當(dāng)源30和信宿32實(shí)踐,假設(shè)這種源30和信宿32分別具有通過它可獲取與媒體基本庫(kù)36的通信的相應(yīng)SOTA 38和SITA 40。因此,本發(fā)明的受保護(hù)媒體路徑39要被解釋成包括可以任意方式建立受保護(hù)媒體路徑39以便將內(nèi)容從源30傳送到信宿32的任何SOTA 38、媒體基本庫(kù)36和SITA40。
注意,盡管本發(fā)明主要根據(jù)執(zhí)行呈現(xiàn)或回放的信宿32來(lái)揭示,信宿32可執(zhí)行其它動(dòng)作而不背離本發(fā)明的范圍。這些其它動(dòng)作包括但不限于,將內(nèi)容12傳送給獨(dú)立計(jì)算裝置,諸如個(gè)人計(jì)算機(jī)、便攜式裝置等;將內(nèi)容12傳送給便攜式存儲(chǔ)器、磁盤或光盤等;無(wú)任何保護(hù)方案地輸出內(nèi)容12;以不同格式傳送或輸出內(nèi)容12等。
一般而言,可采用由媒體基本庫(kù)36安排的受保護(hù)媒體路徑39來(lái)呈現(xiàn)或回放內(nèi)容12,并執(zhí)行諸如內(nèi)容創(chuàng)建、編輯和分發(fā)的任務(wù)。例如,內(nèi)容12可具有允許或禁止內(nèi)容12以某些方式編輯的策略。因而,可采用受保護(hù)媒體路徑39來(lái)用遵從對(duì)應(yīng)于內(nèi)容12的方式解密、編輯、以及重新加密內(nèi)容12。
實(shí)現(xiàn)結(jié)合本發(fā)明執(zhí)行的過程所需的編程是相對(duì)直接的,并且對(duì)于相關(guān)編程群體而言應(yīng)是顯而易見的。因此,并未附加這種編程??刹捎萌我馓囟ň幊虂?lái)實(shí)現(xiàn)本發(fā)明而不背離其精神和范圍。
在上述描述中,可看到本發(fā)明包括定義用于把內(nèi)容12從多個(gè)源30的任一個(gè)傳送到多個(gè)信宿32的任一個(gè)的一種新的和有用的體系結(jié)構(gòu)和方法。結(jié)合這種體系結(jié)構(gòu)的方法定義如何將該路徑建立為可靠并滿足對(duì)應(yīng)于內(nèi)容12的策略。
應(yīng)理解,可對(duì)上述實(shí)施例作改變而不背離其中發(fā)明概念。因此,應(yīng)理解,本發(fā)明并不限于所揭示的特定實(shí)施例,但它旨在涵蓋由所附權(quán)利要求定義的本發(fā)明精神和范圍內(nèi)的更改。
附錄[注術(shù)語(yǔ)“回放”應(yīng)被解釋為內(nèi)容向輸出的任意呈現(xiàn),包括存檔為文件、廣播等。使用字“回放”僅是更為方便。]I.媒體基本庫(kù)API及功能本節(jié)及以下內(nèi)容將討論根據(jù)所展現(xiàn)功能的類型分類的API。
a.打開/關(guān)閉多媒體i.OpenURL無(wú)疑是最通用的使用媒體基本庫(kù)打開多媒體的方法,這將使媒體基本庫(kù)使用其源解析器來(lái)創(chuàng)建將能讀取特定URL上內(nèi)容的媒體源。
ii.OpenSource如果應(yīng)用程序已創(chuàng)建了媒體源并想要呈現(xiàn)使用該源,他將調(diào)用OpenSource(),且媒體基本庫(kù)將直接使用該源。
iii.OpenBindable這用于不具有媒體源,但相反具有實(shí)現(xiàn)可從中獲取一媒體源對(duì)象的IBindable的對(duì)象的應(yīng)用程序。IBindable接口來(lái)自裝置目錄。
iv.OpenByteStream這用于具有從中可讀取要呈現(xiàn)的多媒體數(shù)據(jù)的IMFByteStream的應(yīng)用程序。IMFByteStream是對(duì)從中可獲取順序數(shù)據(jù)的任何對(duì)象的媒體基本庫(kù)的抽象。
v.OpenTopology先進(jìn)的應(yīng)用程序可能想要?jiǎng)?chuàng)建定義要在呈現(xiàn)中使用的源、信宿和變換的拓?fù)洌灰蕾囉诿襟w基本庫(kù)和媒體會(huì)話來(lái)做(參見III.a.iii)。這些應(yīng)用程序可提供拓?fù)洳⒗@過將進(jìn)行的任何源或拓?fù)浣馕觥?br>
vi.Close關(guān)閉當(dāng)前媒體。通過使用以上“Open”調(diào)用的任一個(gè)可隨后對(duì)新媒體重新使用媒體基本庫(kù)。
b.呈現(xiàn)控制i.Start應(yīng)用程序調(diào)用它來(lái)開始回放。各參數(shù)使應(yīng)用程序能指定回放的開始位置和終止位置,缺省是請(qǐng)求回放從頭開始直到結(jié)束。有定義這些開始和結(jié)束參數(shù)單位的第三個(gè)參數(shù)。缺省單位是10MHz時(shí)間單位,但是可使用在多媒體呈現(xiàn)中指定位置的其它系統(tǒng),諸如幀數(shù)或時(shí)間代碼。
盡管媒體基本庫(kù)已啟動(dòng),還可調(diào)用Start;即尋找內(nèi)容中的新位置并從那里開始回放。
ii.Stop應(yīng)用程序調(diào)用它來(lái)停止回放。時(shí)鐘上所示時(shí)間將回到零。如果應(yīng)用程序再次調(diào)用帶有缺省參數(shù)的Start(),回放將從呈現(xiàn)的起點(diǎn)開始。
iii.Pause應(yīng)用程序調(diào)用它來(lái)暫?;胤?。時(shí)鐘上所示時(shí)間將保持“不變”。如果應(yīng)用程序再次調(diào)用帶有缺省參數(shù)的Start(),則回放將從其暫停之處恢復(fù)。
iv.SetPresentationTimeSource它用于想要驅(qū)動(dòng)時(shí)鐘上時(shí)間用于呈現(xiàn)的先進(jìn)應(yīng)用程序。如果應(yīng)用程序調(diào)用它,則所有的組件將嘗試根據(jù)該時(shí)間源展現(xiàn)的時(shí)間來(lái)運(yùn)行。沒有這個(gè)調(diào)用,則媒體會(huì)話從提供時(shí)間源的所有組件中(參見III.b.iii)選擇一個(gè)時(shí)間源。
c.信息查詢以下API對(duì)于想要獲取更多有關(guān)呈現(xiàn)的信息的應(yīng)用程序是有用的。
i.GetCapabilities該方法展現(xiàn)了在呈現(xiàn)期間可改變的媒體基本庫(kù)和媒體會(huì)話的各種能力。
ii.GetMetadata該方法使應(yīng)用程序能獲取可查詢?nèi)魏斡嘘P(guān)呈現(xiàn)的元數(shù)據(jù)(例如持續(xù)時(shí)間、標(biāo)題、作者等)的屬性庫(kù)。
iii.GetDestination檢索指向使用中目標(biāo)的指針。
iv.GetStatistics檢索有關(guān)媒體基本庫(kù)活動(dòng)的統(tǒng)計(jì)數(shù)字。
d.Shutdown(關(guān)閉)一旦不再使用媒體基本庫(kù)就調(diào)用它。它釋放所有資源和對(duì)其它組件的參考點(diǎn)(包括媒體會(huì)話),也關(guān)閉它們。
e.事件媒體基本庫(kù)將通過其媒體事件發(fā)生器向應(yīng)用程序通知事件。以下是某些較常見事件的列表,盡管由媒體會(huì)話內(nèi)組件產(chǎn)生的其它事件也可被傳播到應(yīng)用程序。
i.MEMediaOpened本事件伴有描述呈現(xiàn)的輸出看起來(lái)如何的呈現(xiàn)描述符。
ii.MEMediaStartediii.MEMediaStoppediv.MEMediaPausedv.MEMediaEndedvi.MEMediaClosedvii.MEMediaRateChangedviii.MEMediaStateChangedix.MENewPresentation本事件伴有描述源自媒體源的呈現(xiàn)看起來(lái)如何的呈現(xiàn)描述符。在作出因此“Open”調(diào)用后,以及對(duì)于媒體源在時(shí)間線情景中隨后輸出的每個(gè)新呈現(xiàn)都將接收一次該事件。應(yīng)用程序可有選擇地使用該信息來(lái)配置新呈現(xiàn)預(yù)期中的目標(biāo)。
x.MEPresentationSwitched一旦新呈現(xiàn)真正回放,發(fā)送本事件。它反映進(jìn)行呈現(xiàn)時(shí)所有的不同輸出。
xi.MEOutputsUpdated在目標(biāo)(輸出)改變時(shí)一旦該改變已完全解析并到位時(shí)就發(fā)送本事件。它反映進(jìn)行呈現(xiàn)時(shí)所有的不同輸出。
II.媒體會(huì)話API和功能使用媒體基本庫(kù)控制層的每個(gè)呈現(xiàn)通過由媒體基本庫(kù)例示或以其它方式獲取的媒體會(huì)話運(yùn)行。盡管媒體基本庫(kù)提供了將用于各種各樣情形的媒體會(huì)話實(shí)現(xiàn),可根據(jù)本規(guī)定建立展現(xiàn)以下API的其它媒體會(huì)話。這通常在如果所呈現(xiàn)的多媒體對(duì)將要在提供MF的多媒體會(huì)話中使用的媒體源、媒體信宿以及其它MF結(jié)構(gòu)的概念沒有幫助時(shí)有用。例如,能運(yùn)行Shockwave Flash呈現(xiàn)的媒體會(huì)話將在媒體基本庫(kù)中提供。
a.對(duì)話配置以下API使媒體基本庫(kù)能配置用于呈現(xiàn)的媒體會(huì)話i.ResolveTopology當(dāng)媒體基本庫(kù)已創(chuàng)建用于呈現(xiàn)的需要解析到全部拓?fù)涞牟糠滞負(fù)?參見III.a.iii)時(shí),調(diào)用它。
ii.SetTopology一旦具有將來(lái)呈現(xiàn)的全部拓?fù)?,媒體基本庫(kù)調(diào)用它。媒體會(huì)話在媒體處理器上設(shè)置它,該處理器通過在拓?fù)渲兄付ǖ乃凶儞Q設(shè)置管線以獲得來(lái)自媒體源的數(shù)據(jù)。
iii.SetPresentationClock當(dāng)調(diào)用它時(shí),媒體會(huì)話確保所有組件(媒體信宿和某些媒體源)預(yù)訂接收來(lái)自時(shí)鐘的通知,該時(shí)鐘將被用于控制呈現(xiàn)。
iv.SetConfigurationPropertyStore使用本方法配置參數(shù)的可擴(kuò)展集被傳遞到媒體會(huì)話。
b.呈現(xiàn)控制以下API使媒體基本庫(kù)能控制呈現(xiàn)。對(duì)于II.b.i到II.b.iv,參見以上媒體基本庫(kù)章節(jié)(I.b)中的注解。
i.Startii.Stopiii.Pauseiv.SetPresentationTimeSourcev.Preroll媒體基本庫(kù)使用它來(lái)告知媒體會(huì)話已為將來(lái)呈現(xiàn)的開始準(zhǔn)備好了一切。
c.信息查詢這些API使媒體基本庫(kù)能從媒體會(huì)話中獲得信息。
i.GetSessionGUID標(biāo)識(shí)媒體會(huì)話的實(shí)現(xiàn)。如上所述,媒體基本庫(kù)提供用于各種情形的實(shí)現(xiàn),但也可使用其它實(shí)現(xiàn)。
ii.GetSessionCapablities類似于I.c.i。
d.Shutdowne.事件由媒體會(huì)話產(chǎn)生的事件被媒體基本庫(kù)接收。對(duì)于某些事件,媒體基本庫(kù)將它們翻譯成列于媒體基本庫(kù)事件(I.e)列表中的事件之一。對(duì)于一部分,媒體基本庫(kù)在包含其中的信息上動(dòng)作且并不將它們傳播給應(yīng)用程序。對(duì)于其它,媒體基本庫(kù)將它們傳播給應(yīng)用程序。
i.MESessionPrerolledii.MESessionStartediii.MESessionStoppediv.MESessionEndedv.MESessionPausedvi.MEMediaRateChangedIII.媒體基本庫(kù)中的呈現(xiàn)流本節(jié)是一典型多媒體情形的縱覽,以及對(duì)媒體基本庫(kù)和媒體會(huì)話為驅(qū)動(dòng)呈現(xiàn)所作的描述。
a.媒體基本庫(kù)工作i.源的解析本步驟獲取從中可讀取多媒體數(shù)據(jù)的媒體源。本步驟在OpenURL或OpenByteStream被用于打開多媒體時(shí)是相關(guān)的。其它Open功能直接指定媒體源。
媒體基本庫(kù)將URL或字節(jié)流傳遞給源解析器。如果給予源解析器一URL,則它著眼于URL(file://,http://等)的模式來(lái)創(chuàng)建將從指定位置讀取的字節(jié)流。
在兩種情形中,源解析器能使用字節(jié)流的模式來(lái)確定比特的格式(ASF、AVI、APEG等)從而可例示將理解該格式的媒體源。
ii.設(shè)置媒體會(huì)話向媒體源請(qǐng)求一呈現(xiàn)描述符。該描述符可指定要使用的客戶媒體會(huì)話。但這不是通常的情形;通常,在此例示缺省的媒體基本庫(kù)的媒體會(huì)話。
iii.部分拓?fù)浣馕雒襟w基本庫(kù)從媒體源獲取一呈現(xiàn)描述符,并通過MENewPresentation向應(yīng)用程序通知該呈現(xiàn)。如果應(yīng)用程序?qū)μ幚碓撌录信d趣,則媒體基本庫(kù)等待應(yīng)用程序來(lái)完成處理。
然后媒體基本庫(kù)與應(yīng)用程序提供的目標(biāo)協(xié)商,并為呈現(xiàn)的輸出創(chuàng)建媒體信宿。媒體基本庫(kù)構(gòu)建一“部分拓?fù)洹?,它指示源媒體流和輸出流信宿而無(wú)需指定達(dá)到目的所需的變換。
iv.拓?fù)浣馕龊图せ蠲襟w基本庫(kù)請(qǐng)求媒體會(huì)話將部分拓?fù)浣馕龀扇恐付ㄍ負(fù)?。然后媒體基本庫(kù)在媒體會(huì)話上設(shè)置新的全指定拓?fù)洹?br>
v.呈現(xiàn)控制通過調(diào)用媒體基本庫(kù)上的開始、停止和暫停,應(yīng)用程序可控制呈現(xiàn)的進(jìn)展。媒體基本庫(kù)將這些調(diào)用轉(zhuǎn)發(fā)給處理它們的媒體會(huì)話。
vi.處理來(lái)自媒體源的新呈現(xiàn)如果媒體源是時(shí)間線,則它將通過事件向媒體會(huì)話通知將來(lái)的新呈現(xiàn),媒體會(huì)話將事件轉(zhuǎn)發(fā)給媒體基本庫(kù)。然后媒體基本庫(kù)使用新呈現(xiàn)的描述符從步驟III.a.iii到步驟III.a.iv。一旦新呈現(xiàn)的回放將要開始,向應(yīng)用程序發(fā)送MEPresentationSwitch。
vii.處理輸出變化如果媒體基本庫(kù)接收了來(lái)自應(yīng)用程序提供目標(biāo)的通知它輸出方變化的事件,則它使用現(xiàn)有呈現(xiàn)的描述符從步驟III.a.iii到步驟III.a.iv。一旦使用新輸出的回放將要開始,向應(yīng)用程序發(fā)送MEOutputsUpdated。
b.媒體會(huì)話工作以下詳細(xì)描述媒體會(huì)話的主要媒體基本庫(kù)實(shí)現(xiàn)如何工作。其它媒體會(huì)話必需提供以上列出的API和功能(ii),但它們必需以不同方式完成它。
i.全拓?fù)浣馕鰰?huì)話使用拓?fù)漭d入器來(lái)解析拓?fù)?,該載入器指出哪些變換對(duì)于使數(shù)據(jù)從源媒體流中到輸出流信宿是必要的。
ii.媒體處理器創(chuàng)建會(huì)話擁有媒體處理器。當(dāng)拓?fù)湓诿襟w會(huì)話上設(shè)置時(shí),媒體會(huì)話在配置從媒體流到媒體信宿所需格式的管線的媒體處理器上設(shè)置拓?fù)洹?br>
iii.時(shí)間源選擇在開始呈現(xiàn)之后,媒體會(huì)話確定哪個(gè)可用時(shí)間源將被用于驅(qū)動(dòng)呈現(xiàn)。每個(gè)組件將與來(lái)自時(shí)間源的時(shí)間同步地運(yùn)行該呈現(xiàn)的一部分。
媒體信宿可有選擇地提供一時(shí)間源。通常,音頻呈現(xiàn)器將這樣做,且時(shí)間源上的時(shí)間將由機(jī)器上的音頻裝置指定,但其它媒體信宿也可這樣做。媒體源也可提供時(shí)間源。媒體會(huì)話確定哪個(gè)是“最高優(yōu)先級(jí)”的時(shí)間源,且該時(shí)間源被所有感知時(shí)鐘的組件用于它同步呈現(xiàn)的主呈現(xiàn)時(shí)鐘。
iv.呈現(xiàn)控制媒體會(huì)話將從媒體基本庫(kù)獲得對(duì)Preroll、Start、Stop、和Pause的調(diào)用。這些通常對(duì)應(yīng)于媒體基本庫(kù)上的應(yīng)用程序調(diào)用。
媒體會(huì)話將通過媒體基本庫(kù)給予的呈現(xiàn)時(shí)鐘來(lái)控制呈現(xiàn)。由于所有媒體信宿,啟動(dòng)/停止/暫停呈現(xiàn)時(shí)鐘將導(dǎo)致所有信宿接收其通知并作適當(dāng)反應(yīng)。媒體會(huì)話通過直接調(diào)用其啟動(dòng)/停止/暫停方法來(lái)啟動(dòng)/停止/暫停媒體處理器。
在給定操作已由所有流完成之后,媒體會(huì)話將把一事件發(fā)送給媒體基本庫(kù)。
v.比特泵媒體會(huì)話驅(qū)動(dòng)所有數(shù)據(jù)流從媒體處理器的流到流信宿。每個(gè)媒體信宿和流信宿對(duì)都與比特泵相關(guān)聯(lián),它在啟動(dòng)或預(yù)轉(zhuǎn)狀態(tài)時(shí),以下列循環(huán)操作1.請(qǐng)求來(lái)自流信宿的樣本分配。
2.當(dāng)樣本分配請(qǐng)求填滿時(shí),請(qǐng)求媒體流用數(shù)據(jù)填充樣本。
3.當(dāng)樣本填充請(qǐng)求填滿時(shí),將樣本交給流信宿并請(qǐng)求另一樣本分配。
注意,在任何給定時(shí)間一個(gè)以上樣本可“在流傳中”。
vi.處理新呈現(xiàn)和輸出變化參見以上III.a.vi和III.a.vii。媒體會(huì)話負(fù)責(zé)把媒體處理器對(duì)將來(lái)呈現(xiàn)的通知轉(zhuǎn)發(fā)給媒體基本庫(kù),并參與拓?fù)浣馕龊图せ睢?br>
IV.所需的最小媒體基本庫(kù)配置無(wú)疑地,媒體基本庫(kù)的最常見使用將是設(shè)立多媒體呈現(xiàn)的簡(jiǎn)單回放。如在以上的“策略重要性”章節(jié)中所述,媒體基本庫(kù)的主要目標(biāo)是使該設(shè)立非常簡(jiǎn)單。
從應(yīng)用程序的觀點(diǎn)而言,以下步驟描述應(yīng)用程序至少必須做的事以便使用媒體基本庫(kù)來(lái)配置多媒體呈現(xiàn)a.創(chuàng)建一媒體基本庫(kù)。
b.創(chuàng)建一回放目標(biāo),向其中應(yīng)呈現(xiàn)視頻的視窗提供一句柄。
c.調(diào)用IMFMediaEngine::OpenURL,向要呈現(xiàn)的多媒體文件提供一URL以及指向回放目標(biāo)的一指針。
d.現(xiàn)在可使用IMFMediaEngine::Start/Stop/Pause API來(lái)回放多媒體呈現(xiàn)。
注意,應(yīng)用程序不需要等待任何事件的到達(dá),這些事件的處理是可選的。
V.附加服務(wù)的提供先進(jìn)的多媒體應(yīng)用程序?qū)⒗糜擅襟w基本庫(kù)和媒體會(huì)話提供的廣泛和可擴(kuò)展的服務(wù)陣列。這些通過使用由媒體基本庫(kù)展現(xiàn)的IMFGetService接口來(lái)訪問,該接口將返回由媒體基本庫(kù)、媒體會(huì)話、或使用中的媒體源、信宿或其它組件的任一個(gè)所展現(xiàn)的服務(wù)。
該服務(wù)體系結(jié)構(gòu)是可擴(kuò)展的,而以下是幾個(gè)示例a.速率支持和速率控制b.音頻的音量控制c.用于編輯情形的幀緩存支持d.視頻呈現(xiàn)器配置
權(quán)利要求
1.一種通過計(jì)算裝置將內(nèi)容從源發(fā)送到信宿的方法,其特征在于,所述方法包括所述計(jì)算裝置上的應(yīng)用程序,它在所述計(jì)算裝置上調(diào)用帶有所述內(nèi)容、源、和信宿的定義的媒體,所述媒體基本庫(kù)基于所述已定義的內(nèi)容、源和信宿建立受保護(hù)媒體路徑來(lái)實(shí)現(xiàn)所述傳送,所述已建立的受保護(hù)媒體路徑包括所述媒體基本庫(kù),與所述源相關(guān)聯(lián)和相對(duì)應(yīng)的一源可信權(quán)限(SOTA),所述SOTA擔(dān)當(dāng)將所述源連接到所述媒體基本庫(kù)的安全加鎖箱并代表所述受保護(hù)媒體路徑中的源,以及與所述信宿相關(guān)聯(lián)和相對(duì)應(yīng)的一信宿可信權(quán)限(SITA),所述SITA擔(dān)當(dāng)將所述信宿連接到所述媒體基本庫(kù)的安全加鎖箱并代表所述受保護(hù)媒體路徑中的信宿,代表所述源的所述SOTA建立對(duì)所述受保護(hù)媒體路徑的信任,在對(duì)所述受保護(hù)媒體路徑建立的信任之后,所述SOTA傳播與要傳送到所述受保護(hù)媒體路徑的內(nèi)容相對(duì)應(yīng)的策略,所述SOTA確定對(duì)通過所述受保護(hù)媒體路徑傳送的內(nèi)容要采取的特定類動(dòng)作,所述SOTA根據(jù)所述被傳播策略判定對(duì)通過所述受保護(hù)媒體路徑傳送的內(nèi)容不可采取特定類動(dòng)作,并向所述媒體基本庫(kù)通知對(duì)采取所述動(dòng)作的拒絕,所述媒體基本庫(kù)通知所述應(yīng)用程序?qū)Σ扇∷鰟?dòng)作的拒絕,所述SOTA認(rèn)識(shí)到所述拒絕可通過SOTA可用的特定使能器來(lái)糾正,且所述SOTA通過所述媒體基本庫(kù)向所述應(yīng)用程序提供特定使能器,所述被提供的使能器包括所述應(yīng)用程序?yàn)楂@取響應(yīng)拒絕所需數(shù)據(jù)而必需的信息和方法,所述應(yīng)用程序通過所述媒體基本庫(kù)在其界面上接收所述使能器,而所述界面應(yīng)用一公共交互過程來(lái)運(yùn)行所述使能器以獲取響應(yīng)拒絕所需的數(shù)據(jù),所述應(yīng)用程序向媒體基本庫(kù)提供已獲得的數(shù)據(jù),而媒體基本庫(kù)采用所提供的數(shù)據(jù)來(lái)響應(yīng)所述拒絕,所述SOTA根據(jù)所傳播的策略并至少部分地基于響應(yīng)拒絕判定可對(duì)通過受保護(hù)媒體路徑傳送的內(nèi)容采取特定類動(dòng)作,并通知媒體基本庫(kù)有關(guān)內(nèi)容,以及所述媒體基本庫(kù)通知應(yīng)用程序可采取特定類動(dòng)作,而所述應(yīng)用程序通過命令媒體基本庫(kù)執(zhí)行所述類動(dòng)作繼續(xù)。
2.如權(quán)利要求1所述的方法,其特征在于,包括所述SOTA通過向所述應(yīng)用程序提供特定使能器的參考點(diǎn)的所述媒體基本庫(kù)向所述應(yīng)用程序提供所述特定使能器。
3.如權(quán)利要求1所述的方法,其特征在于,包括所述界面運(yùn)行所述使能器來(lái)嘗試從所述應(yīng)用程序的用戶處獲取所需數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,包括所述界面運(yùn)行所述使能器來(lái)嘗試從所述應(yīng)用程序的計(jì)算裝置及與所述應(yīng)用程序的計(jì)算裝置相耦合的另一計(jì)算裝置之一獲取所需數(shù)據(jù)。
5.如權(quán)利要求1所述的方法,其特征在于,包括所述SOTA因?yàn)槿鄙賹?duì)應(yīng)于所述內(nèi)容的適當(dāng)許可證而拒絕采取所述動(dòng)作,而所述界面運(yùn)行所述使能器以獲取適當(dāng)許可證。
6.如權(quán)利要求1所述的方法,其特征在于,包括所述SOTA因?yàn)槿鄙偎鍪鼙Wo(hù)媒體路徑的元素的當(dāng)前版本而拒絕采取所述動(dòng)作,而所述界面運(yùn)行所述使能器以獲取并安裝所述元素的當(dāng)前版本。
7.如權(quán)利要求1所述的方法,其特征在于,包括所述SOTA因?yàn)樗鯯ITA被設(shè)置成能執(zhí)行對(duì)所述內(nèi)容的不被允許動(dòng)作而拒絕采取所述動(dòng)作,而所述界面運(yùn)行所述使能器以將所述SITA設(shè)置成不能執(zhí)行所述不被允許的動(dòng)作。
8.如權(quán)利要求1所述的方法,其特征在于,包括所述應(yīng)用程序的界面周期性地向所述SOTA、所述應(yīng)用程序、所述媒體基本庫(kù)、以及所述應(yīng)用程序的用戶的至少之一提供一進(jìn)展通知。
9.如權(quán)利要求1所述的方法,其特征在于,包括所述SOTA向所述應(yīng)用程序提供多個(gè)使能器中的所述特定使能器,其每一個(gè)用于對(duì)特定拒絕作響應(yīng),而所述界面應(yīng)用一公共交互過程以運(yùn)行所述特定使能器,其中所述公共交互過程可運(yùn)行所述多個(gè)使能器的任一個(gè)。
10.一種通過計(jì)算裝置將內(nèi)容從源發(fā)送到信宿的方法,其中所述計(jì)算裝置上的應(yīng)用程序向所述計(jì)算裝置上的媒體基本庫(kù)定義所述內(nèi)容、源和信宿,而所述媒體基本庫(kù)基于所述已定義的內(nèi)容、源和信宿建立一受保護(hù)媒體路徑以實(shí)現(xiàn)這種傳送,所述已建立的受保護(hù)媒體路徑包括媒體基本庫(kù),與源相關(guān)聯(lián)并相對(duì)應(yīng)的源可信權(quán)限(SOTA),所述SOTA擔(dān)當(dāng)將所述源連接到媒體基本庫(kù)的安全加鎖箱并代表受保護(hù)媒體路徑中的源,以及與信宿相關(guān)聯(lián)并相對(duì)應(yīng)的信宿可信權(quán)限(SITA),所述SITA擔(dān)當(dāng)將所述信宿連接到媒體基本庫(kù)的安全加鎖箱并代表受保護(hù)媒體路徑中信宿,其特征在于,所述方法包括,所述SOTA建立對(duì)所述受保護(hù)媒體路徑的信任,在建立對(duì)所述受保護(hù)媒體路徑的信任之后傳播對(duì)應(yīng)于要傳送到受保護(hù)媒體路徑的內(nèi)容的策略,確定要對(duì)通過所述受保護(hù)媒體路徑傳送的所述內(nèi)容采取的特定類動(dòng)作,根據(jù)所述被傳播的策略判定不可對(duì)通過受保護(hù)媒體路徑傳送的內(nèi)容采取所述特定類動(dòng)作,并通知媒體基本庫(kù)對(duì)采取所述動(dòng)作的拒絕,其中所述媒體基本庫(kù)向所述應(yīng)用程序通知對(duì)采取所述動(dòng)作的拒絕,認(rèn)識(shí)到所述拒絕可通過SOTA可用的特定使能器來(lái)糾正,并通過所述媒體基本庫(kù)向所述應(yīng)用程序提供特定使能器,所述被提供的使能器包括所述應(yīng)用程序?yàn)楂@取響應(yīng)拒絕所需數(shù)據(jù)而必需的信息和方法,其中所述應(yīng)用程序通過所述媒體基本庫(kù)在其界面上接收使能器,而所述界面應(yīng)用一公共交互過程來(lái)運(yùn)行所述使能器以獲取響應(yīng)拒絕所需的數(shù)據(jù),且其中所述應(yīng)用程序向所述媒體基本庫(kù)提供已獲得的數(shù)據(jù),而所述媒體基本庫(kù)采用所提供的數(shù)據(jù)來(lái)響應(yīng)所述拒絕,以及根據(jù)所傳播的策略并至少部分地基于響應(yīng)拒絕判定可對(duì)通過所述受保護(hù)媒體路徑傳送的所述內(nèi)容采取特定類動(dòng)作,并通知所述媒體基本庫(kù)有關(guān)內(nèi)容,其中所述媒體基本庫(kù)通知所述應(yīng)用程序可采取特定類動(dòng)作,且所述應(yīng)用程序通過命令所述媒體基本庫(kù)執(zhí)行所述類動(dòng)作繼續(xù)。
11.如權(quán)利要求10所述的方法,其特征在于,包括所述SOTA通過向所述應(yīng)用程序提供特定使能器的參考點(diǎn)的所述媒體基本庫(kù)向所述應(yīng)用程序提供所述特定使能器。
12.如權(quán)利要求10所述的方法,其特征在于,包括所述SOTA因?yàn)槿鄙賹?duì)應(yīng)于所述內(nèi)容的適當(dāng)許可證而拒絕采取所述動(dòng)作,而所述界面運(yùn)行所述使能器以獲取適當(dāng)許可證。
13.如權(quán)利要求10所述的方法,其特征在于,包括所述SOTA因?yàn)槿鄙偎鍪鼙Wo(hù)媒體路徑的元素的當(dāng)前版本而拒絕采取所述動(dòng)作,而所述界面運(yùn)行所述使能器以獲取并安裝所述元素的當(dāng)前版本。
14.如權(quán)利要求10所述的方法,其特征在于,包括所述SOTA因?yàn)樗鯯ITA被設(shè)置成能執(zhí)行對(duì)所述內(nèi)容的不被允許動(dòng)作而拒絕采取所述動(dòng)作,而所述界面運(yùn)行所述使能器以將所述SITA設(shè)置成不能執(zhí)行所述不被允許的動(dòng)作。
15.如權(quán)利要求10所述的方法,其特征在于,包括所述SOTA周期性地接收來(lái)自所述所述應(yīng)用程序的界面的一進(jìn)展通知。
16.如權(quán)利要求10所述的方法,其特征在于,包括所述SOTA向所述應(yīng)用程序提供多個(gè)使能器中的所述特定使能器,這些使能器的每一個(gè)用于對(duì)特定拒絕作響應(yīng),其中所述界面應(yīng)用一公共交互過程以運(yùn)行所述特定使能器,從而所述公共交互過程可運(yùn)行所述多個(gè)使能器的任一個(gè)。
全文摘要
在用于將內(nèi)容從源傳送到信宿的受保護(hù)媒體路徑上,代表源的源權(quán)限(SOTA)根據(jù)對(duì)應(yīng)于內(nèi)容的策略判定要拒絕對(duì)內(nèi)容的特定類動(dòng)作,并向應(yīng)用程序提供一特定使能器。被提供使能器包括應(yīng)用程序獲取響應(yīng)拒絕所需數(shù)據(jù)而必需的信息和方法。該應(yīng)用程序在其界面上接收使能器,而該界面應(yīng)用一公共交互過程來(lái)運(yùn)行使能器以獲取響應(yīng)拒絕所需的數(shù)據(jù)。
文檔編號(hào)H04L9/00GK101080895SQ200480003286
公開日2007年11月28日 申請(qǐng)日期2004年7月29日 優(yōu)先權(quán)日2003年10月23日
發(fā)明者G·頓巴爾, 楚沉云, J·M·阿科弗 申請(qǐng)人:微軟公司