專(zhuān)利名稱(chēng):使用軟件包裝組件提供多媒體功能的方法、設(shè)備和計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例總體上涉及計(jì)算裝置,更具體地,實(shí)施例涉及一種用于在計(jì)算裝置中提供多媒體功能的方法、設(shè)備和計(jì)算機(jī)程序。
背景技術(shù):
多媒體軟件應(yīng)用的盛行已引領(lǐng)其在大量不同計(jì)算平臺(tái)上的使用。結(jié)果是,出現(xiàn)了使多媒體應(yīng)用可跨多個(gè)不同計(jì)算裝置平臺(tái)移植的需求。OpenMAX標(biāo)準(zhǔn)提供了用于開(kāi)發(fā)可跨多個(gè)不同計(jì)算裝置平臺(tái)移植的多媒體應(yīng)用軟件的API。
發(fā)明內(nèi)容
本發(fā)明的示例的多種方面在權(quán)利要求中進(jìn)行了闡述。本發(fā)明的第一示例提供了一種方法,包括使用軟件包裝組件在計(jì)算裝置中執(zhí)行多媒體功能,所述包裝組件包括一個(gè)或多個(gè)多媒體軟件子組件,每個(gè)多媒體軟件子組件執(zhí)行至少部分多媒體功能,所述包裝組件能夠用于響應(yīng)于來(lái)自客戶(hù)端組件的請(qǐng)求,控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能。在示例中,所述包裝組件能夠用于在執(zhí)行所述多媒體功能時(shí),將所述一個(gè)或多個(gè)多媒體子組件中的至少一個(gè)插入到所述包裝組件和/或從所述包裝組件刪除。在示例中,所述多媒體功能包含在有限狀態(tài)機(jī)中,并且所述包裝組件能夠用于根據(jù)有限狀態(tài)機(jī)進(jìn)行操作,以執(zhí)行所述多媒體功能。在示例中,所述包裝組件能夠用于向客戶(hù)端組件提供輸出,所述輸出包括來(lái)自所述一個(gè)或多個(gè)多媒體子組件中的至少一個(gè)的回調(diào)。在示例中,所述包裝組件能夠用于向客戶(hù)端組件提供訪問(wèn),以控制所述一個(gè)或多個(gè)多媒體子組件中的至少一個(gè)的功能。在示例中,所述包裝組件還包括輸入端口和輸出端口,用于與其他包裝組件和所述客戶(hù)端組件進(jìn)行通信,所述包裝輸入端口與所述一個(gè)或多個(gè)子組件中的一個(gè)子組件的輸入端口對(duì)應(yīng),所述包裝輸出端口與所述一個(gè)或多個(gè)子組件中的一個(gè)子組件的輸出端口對(duì)應(yīng)。在示例中,所述包裝輸入和輸出端口與所述一個(gè)或多個(gè)多媒體子組件的邊緣端口對(duì)應(yīng)。在示例中,所述包裝組件能夠用于管理通過(guò)一個(gè)或多個(gè)多媒體子組件中的至少一個(gè)對(duì)所述計(jì)算裝置的有限資源的訪問(wèn)。在示例中,所述包裝組件能夠用于依據(jù)計(jì)算裝置的有限資源的可用性來(lái)控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能。在示例中,所述包裝組件能夠用于如果對(duì)于所述組件,存在足夠的計(jì)算裝置資源用來(lái)控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能,則從所述客戶(hù)端組件接收待通知的命令;識(shí)別當(dāng)前是否有足夠的計(jì)算裝置資源可用;以及,如果當(dāng)前具有足夠的計(jì)算裝置資源可用,則通知所述客戶(hù)端組件。在另一示例中, 所述包裝組件確定沒(méi)有足夠的計(jì)算裝置資源可用,并且包裝組件能夠用于在將來(lái)具有足夠的計(jì)算裝置資源可用時(shí),通知所述客戶(hù)端組件。在示例中,所述包裝組件包括多個(gè)包裝組件。在示例中,所述一個(gè)或多個(gè)多媒體子組件中的至少一個(gè)是包裝組件。在示例中,所述包裝組件符合現(xiàn)有的多媒體應(yīng)用編程接口。在另一個(gè)實(shí)例中,現(xiàn)有的多媒體應(yīng)用編程接口是OpenMAX IL API。本發(fā)明的第二示例提供了一種設(shè)備,包括處理器存儲(chǔ)器,其包括計(jì)算機(jī)程序代碼所述存儲(chǔ)器和計(jì)算機(jī)程序代碼被配置用來(lái)與處理器一起使所述設(shè)備至少執(zhí)行以下步驟使用軟件包裝組件在計(jì)算裝置中執(zhí)行多媒體功能,所述包裝組件包括一個(gè)或多個(gè)多媒體軟件子組件,每個(gè)所述多媒體軟件子組件執(zhí)行至少部分所述多媒體功能,所述包裝組件能夠用于響應(yīng)于來(lái)自客戶(hù)端組件的請(qǐng)求,控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能。本發(fā)明的第三示例提供了一種計(jì)算機(jī)程序,包括用于使用軟件包裝組件在計(jì)算裝置中執(zhí)行多媒體功能的代碼,所述包裝組件包括一個(gè)或多個(gè)多媒體軟件子組件,每個(gè)所述多媒體軟件子組件執(zhí)行至少部分所述多媒體功能,所述包裝組件能夠用于響應(yīng)于來(lái)自客戶(hù)端組件的請(qǐng)求,控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能。在示例中,所述計(jì)算機(jī)程序是計(jì)算機(jī)程序產(chǎn)品,其包括其中承載與計(jì)算機(jī)一起使用的計(jì)算機(jī)程序代碼的計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的第四示例提供了一種計(jì)算機(jī)可讀介質(zhì),其編碼有指令,當(dāng)所述指令被計(jì)算機(jī)執(zhí)行時(shí),使用軟件包裝組件在計(jì)算裝置中執(zhí)行多媒體功能,所述包裝組件包括一個(gè)或多個(gè)多媒體軟件子組件,每個(gè)所述多媒體軟件子組件執(zhí)行至少部分所述多媒體功能,所述包裝組件能夠用于響應(yīng)于來(lái)自客戶(hù)端組件的請(qǐng)求,控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能。本發(fā)明的第五示例提供了一種設(shè)備,包括用于在計(jì)算裝置中執(zhí)行多媒體功能的部件,所述部件包括一個(gè)或多個(gè)多媒體軟件子組件,每個(gè)所述多媒體軟件子組件執(zhí)行至少部分所述多媒體功能,所述部件能夠用于響應(yīng)于來(lái)自客戶(hù)端組件的請(qǐng)求,控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能。
下面參考附圖描述實(shí)施例,其中,圖1是OpenMAX IL環(huán)境的示意圖;圖2是在其中實(shí)現(xiàn)本發(fā)明的實(shí)施例的計(jì)算裝置的示意性表示;
圖3是示出圖2的計(jì)算裝置的硬件組件的布置的示意圖;圖4是示出根據(jù)本發(fā)明的實(shí)施例布置時(shí),圖2的計(jì)算裝置的硬件和軟件組件的布置的示意圖;圖5是在圖2的計(jì)算裝置上運(yùn)行并體現(xiàn)本發(fā)明第一實(shí)施例的多媒體用例的功能圖;圖6是示出圖5的用例的操作的流程圖;圖7是在圖2的計(jì)算裝置上運(yùn)行并體現(xiàn)本發(fā)明第二實(shí)施例的多媒體用例的功能圖;圖8是示出圖7的用例的操作的流程圖;圖9是在圖2的計(jì)算裝置上運(yùn)行并體現(xiàn)本發(fā)明第三實(shí)施例的多媒體用例的功能圖。
具體實(shí)施例方式OpenMAX是由Khronos公司開(kāi)發(fā)的標(biāo)準(zhǔn)。OPenMAX提供了一組用于開(kāi)發(fā)組件和應(yīng)用的API,這些API可跨多個(gè)不同的計(jì)算環(huán)境移植。OpenMAX提供了三層接口 應(yīng)用層(AL)、 集成層(IL)和開(kāi)發(fā)層(DL)。OpenMAX IL提供了 API,并且是現(xiàn)有多媒體應(yīng)用編程接口。具體地,OpenMAX IL提供用于在多媒體框架或應(yīng)用與一組組件之間進(jìn)行接口連接的API,每個(gè)所述組件都為框架或應(yīng)用提供至少部分多媒體功能。例如,對(duì)于向人類(lèi)用戶(hù)播放MP3文件的媒體播放器軟件應(yīng)用,該媒體播放器需要使用MP3文件、文件解碼器和揚(yáng)聲器。OpenMAX IL提供了在媒體應(yīng)用、文件、解碼器和揚(yáng)聲器之間進(jìn)行接口連接的手段,使得媒體應(yīng)用能夠在揚(yáng)聲器上播放 MP3文件。圖1提供了 OpenMAX IL環(huán)境2的示意性表示。OpenMAX IL API與表示為IL客戶(hù)端4的更高層級(jí)的實(shí)體進(jìn)行接口連接。IL客戶(hù)端4可以是濾器圖(filter graph)多媒體框架(例如,GStreamer)、OpenMAX AL API、或者軟件應(yīng)用或框架。實(shí)踐中,IL客戶(hù)端4意指調(diào)用OpenMAX IL環(huán)境的方法(即,功能)的任何軟件(見(jiàn)下文)。OpenMAX IL API包括兩部分核心API 6和組件API (8a至8c)。核心6用于在主存儲(chǔ)器中動(dòng)態(tài)地加載和卸載多媒體軟件組件(8a至8c),以及用于便利組件(8a至8c)通信。一旦組件被加載,核心6就允許IL客戶(hù)端4直接與組件(8a 至8c)通信。然而,由于IL客戶(hù)端4僅能經(jīng)由核心6與組件(8a至8c)通信,所以IL客戶(hù)端4調(diào)用核心6的宏,這引起核心6調(diào)用組件(8a至8c)的方法。類(lèi)似地,核心6允許IL 客戶(hù)端4在兩個(gè)組件(8a至8c)之間建立通信鏈路(也稱(chēng)為隧道)。一旦建立隧道,核心6 就不再被使用,并且通信直接在組件(8a至8c)間流動(dòng)。隧道式通信示于圖1組件A和B、 以及組件B和C之間。組件API用于創(chuàng)建新的組件(8a至8c)。組件(8a至8c)代表單個(gè)功能模塊。組件(8a至8c)運(yùn)行于四種數(shù)據(jù)類(lèi)型音頻、視頻、圖像和其他(如用于同步的時(shí)間數(shù)據(jù))。組件(8a至8c)具有源、接收器(sink)、編解碼器、過(guò)濾器、分離器、混合器或任意其他數(shù)據(jù)操作器的功能。根據(jù)組件的實(shí)現(xiàn)方式,組件可代表一硬件、軟件編解碼器、另一個(gè)處理器或其組合。
通過(guò)被稱(chēng)為端口(9a至9d)的接口進(jìn)行去往和來(lái)自組件的數(shù)據(jù)通信。在OpenMAX IL中定義了四種類(lèi)型的端口,并且他們與端口可傳遞的數(shù)據(jù)類(lèi)型對(duì)應(yīng),即,有音頻、視頻和圖像數(shù)據(jù)端口和其他端口。組件可通過(guò)輸入端口(9b和9d)接收數(shù)據(jù),或通過(guò)輸出端口(9a 和9c)發(fā)送數(shù)據(jù)。類(lèi)似地,可通過(guò)將一個(gè)組件的輸出端口連接到另一個(gè)組件的輸入端口(例如,組件A和B、以及B和C兩者之間所示),建立兩個(gè)組件之間的通信隧道。端口可代表組件經(jīng)由緩沖器到數(shù)據(jù)流的連接,即,端口可并入緩沖器。OpenMAX IL組件(8a至8c)向IL客戶(hù)端4提供對(duì)組件功能或方法的標(biāo)準(zhǔn)集合的訪問(wèn)。這些功能允許IL客戶(hù)端4獲得并設(shè)置組件和端口配置參數(shù)、獲取并設(shè)置組件的執(zhí)行狀態(tài)、向組件發(fā)送命令、接收事件通知、分配緩充器、建立與單個(gè)組件端口的通信、以及在兩個(gè)組件端口之間建立通信。組件參數(shù)包括與組件的運(yùn)行(即,其特定功能,例如編譯碼器) 或組件的實(shí)際執(zhí)行狀態(tài)(即,空閑或執(zhí)行中)相關(guān)的數(shù)據(jù)。緩沖器狀態(tài)、錯(cuò)誤以及其他時(shí)間敏感的數(shù)據(jù)被經(jīng)由一組回調(diào)功能中繼到IL客戶(hù)端4。在示例中,鑒于上文,IL客戶(hù)端4可以是運(yùn)行在計(jì)算裝置上的媒體播放器應(yīng)用。為了提供MP3回放功能,媒體播放器應(yīng)用與核心6通信,并命令核心6加載組件A(Sa)、組件 B(Sb)和組件C (Sc)。組件A代表MP3文件,并因此提供多媒體數(shù)據(jù)源并具有單個(gè)輸出端口 (9a)。組件B代表MP3解碼器,并因此必須具有用于接收MP3數(shù)據(jù)的輸入端口(9b)以及用于提供已解碼樣本的輸出端口(9c)。解碼器對(duì)文件數(shù)據(jù)進(jìn)行解碼并將其轉(zhuǎn)換成脈沖編碼調(diào)制(PCM)樣本,然后該樣本被傳送給組件C。組件C代表聲音驅(qū)動(dòng)器,并因此提供接收器并具有單個(gè)輸入端口(9d)。該聲音驅(qū)動(dòng)器將PCM聲音樣本發(fā)送到計(jì)算裝置的揚(yáng)聲器,以啟動(dòng)音頻回放。下面僅以示例的方式提供對(duì)多個(gè)實(shí)施例的描述。圖2是具有殼12的計(jì)算裝置10的示意圖。計(jì)算裝置10形成將要描述的實(shí)施例的基礎(chǔ)。裝置10的殼12封裝了鍵區(qū)(keypad) 14、觸摸屏顯示器16、揚(yáng)聲器18和麥克風(fēng)20。 裝置10還包括天線22。圖2中示例性示出的裝置10是移動(dòng)裝置,其可以被用戶(hù)握在手中并用來(lái)加入通信會(huì)話(huà),特別是電話(huà)呼叫。在此會(huì)話(huà)期間,可使用裝置10使得揚(yáng)聲器18被保持在用戶(hù)耳朵周?chē)?,并且麥克風(fēng)20位于用戶(hù)嘴巴附近。裝置10是像移動(dòng)電話(huà)那樣運(yùn)行的計(jì)算裝置。然而,另外的實(shí)施例可涉及不是將電話(huà)包括為其主要功能的計(jì)算裝置。圖3是示出圖2的裝置10的硬件組件的布置的示意性示例圖。圖2中所示的鍵區(qū)14、顯示器16、揚(yáng)聲器18和麥克風(fēng)20與系統(tǒng)總線42通信??偩€42進(jìn)一步與應(yīng)用處理器24、基帶處理器沈、發(fā)射器觀、接收器30和電池40通信。發(fā)射器28和接收器30與天線 22通信??偩€42還與存儲(chǔ)器控制器32通信,存儲(chǔ)器控制器32則與易失性存儲(chǔ)器34和非易失性存儲(chǔ)器36通信。應(yīng)用處理器M處理與運(yùn)行在裝置10上并提供裝置10的各種功能的各種軟件模塊和操作系統(tǒng)軟件相關(guān)的指令?;鶐幚砥?6與通信功能有關(guān),并為此控制電話(huà)堆棧,并與發(fā)射器觀和接收器30通信,以便借助天線22建立通信。可在單個(gè)處理器上提供裝置10的各種處理元件,例如應(yīng)用處理器M和基帶處理器26。存儲(chǔ)器控制器32控制對(duì)易失性存儲(chǔ)器34和非易失性存儲(chǔ)器36的訪問(wèn)和與其進(jìn)行的交互。以這種方式,應(yīng)用處理器M能夠與各種硬件元件以及存儲(chǔ)器控制器32通信,由此根據(jù)存儲(chǔ)在易失性存儲(chǔ)器;34或非易失性存儲(chǔ)器36上的軟件指令來(lái)控制各種硬件元件的運(yùn)行。圖3中僅示出單個(gè)總線,總線42。將認(rèn)識(shí)到,該總線可由兩個(gè)或更多的總線替代, 并且圖3的拓?fù)鋵⑾鄳?yīng)地改變。此外,已知的計(jì)算裝置包括除了圖3中示例性示出的那些之外的硬件組件,但是這些在本領(lǐng)域是公知的,在此不再進(jìn)行描述。圖4是示例性示出裝置10的各種硬件和軟件組件的圖。運(yùn)行在裝置10上的軟件可按多種方式進(jìn)行分類(lèi)。某些軟件運(yùn)行以管理由各種硬件組件提供的資源,并建立其中執(zhí)行其他軟件的可運(yùn)行環(huán)境。該軟件被稱(chēng)為裝置的操作系統(tǒng),并在圖4中由內(nèi)核50表示。內(nèi)核50和如前文所述那樣與易失性存儲(chǔ)器34和非易失性存儲(chǔ)器36通信的存儲(chǔ)器管理單元 32交互。內(nèi)核50還與多個(gè)應(yīng)用44通信,每個(gè)應(yīng)用44以?xún)?nèi)核50指定的方式訪問(wèn)硬件組件。 應(yīng)用44是用戶(hù)應(yīng)用,其可由用戶(hù)啟動(dòng)和終止。圖4示出應(yīng)用44包括媒體播放器應(yīng)用46。 媒體播放器46為裝置10的用戶(hù)提供了指示裝置10運(yùn)行特定多媒體用例的途徑,該多媒體用例包括但不限于,播放音頻或視頻、錄制音頻或視頻以及查看或編輯圖像。內(nèi)核50借助裝置驅(qū)動(dòng)器52與鍵區(qū)14通信,借助裝置驅(qū)動(dòng)器M與揚(yáng)聲器18通信, 并借助裝置驅(qū)動(dòng)器56與顯示器16通信。雖然僅示出一些硬件組件,但是通常,內(nèi)核50通過(guò)各種裝置驅(qū)動(dòng)器來(lái)控制裝置10的硬件資源。此外,雖然裝置驅(qū)動(dòng)器被示為與內(nèi)核50分離,但是它們被合并到內(nèi)核50中也是可行的。圖4的軟件組件通過(guò)虛線區(qū)域60來(lái)劃出。然而,軟件和硬件之間的這種區(qū)分不是必要的。圖4中被示為軟件的組件可提供在硬件中,并且被示為硬件的組件在某些情況下可提供為軟件。在裝置運(yùn)行期間,存儲(chǔ)在非易失性存儲(chǔ)器36中的軟件指令建立內(nèi)核50、應(yīng)用44和裝置驅(qū)動(dòng)器5254和56。通過(guò)使用圖3中示出的各種組件,用戶(hù)能夠按各種應(yīng)用44提供的功能來(lái)使用裝置10。例如,用戶(hù)使用鍵區(qū)14和/或觸摸屏顯示器16,以便借助裝置驅(qū)動(dòng)器 52和56來(lái)與內(nèi)核50通信,以引起應(yīng)用44中的一個(gè)借助存儲(chǔ)器管理單元32來(lái)訪問(wèn)存儲(chǔ)在非易失性存儲(chǔ)器36上的數(shù)據(jù)。內(nèi)核50使存儲(chǔ)器管理單元32提供的數(shù)據(jù)被應(yīng)用44處理, 應(yīng)用44典型地運(yùn)行在應(yīng)用處理器M上。應(yīng)用處理器M在過(guò)程中通常使用易失性存儲(chǔ)器 34從數(shù)據(jù)和指令返回結(jié)果。根據(jù)來(lái)自應(yīng)用的進(jìn)一步指令,內(nèi)核50將借助裝置驅(qū)動(dòng)器56使結(jié)果在顯示器16上被顯示給用戶(hù)。將認(rèn)識(shí)到,裝置驅(qū)動(dòng)器5254和56也是源自存儲(chǔ)在非易失性存儲(chǔ)器36上的指令的軟件組件。僅以示例的方式呈現(xiàn)了對(duì)圖4的說(shuō)明。已知的裝置可包括比示出的那些更多的組件。實(shí)施例的實(shí)現(xiàn)方式不取決于圖2、3和4中示出的組件的精確布置和配置。因此,在不影響實(shí)施例的運(yùn)行的情況下,可用其他具有類(lèi)似功能的組件來(lái)替代,并且額外的組件可被添加到這里,或從這里省略所示出的組件。圖5示例性示出存在于裝置10上的OpenMAX IL API環(huán)境。圖5的環(huán)境代表多媒體用例70,并且具體地,代表播放MP3文件的用例。在本示例中,MP3文件存儲(chǔ)在易失性存儲(chǔ)器34上,并將在揚(yáng)聲器18上播放。媒體播放器應(yīng)用46充當(dāng)圖5的環(huán)境中的IL客戶(hù)端。將理解,IL客戶(hù)端是該示例上下文中的客戶(hù)端組件。媒體播放器46與核心72通信。核心72與包裝軟件組件(以下為‘包裝’)74通信,該包裝軟件組件74包括三個(gè)多媒體軟件子組件源76、解碼器78和接收器80。此外,為了便于子組件76到80之間的通信,源76包括輸出端口 82,解碼器78包括輸入端口 84和輸出端口 86,并且接收器80包括輸入端口 88。端口 82到88的布置使得在源76和解碼器78之間,以及解碼器78和接收器80之間,建立隧道式通信。媒體播放器 46使用核心72以便將包裝74,包括包裝74的單獨(dú)多媒體子組件(76至80),加載到裝置 10的易失性存儲(chǔ)器34中,以便實(shí)現(xiàn)每個(gè)元件的功能。此外,媒體播放器46使用核心72以便在組件76至80之間建立通信鏈路。此處使用術(shù)語(yǔ)‘包裝’(wrapper)來(lái)描述包含一個(gè)或多個(gè)軟件子組件的軟件實(shí)體。 包裝起到協(xié)調(diào)子組件的作用,以便向諸如IL客戶(hù)端的客戶(hù)端組件提供子組件的功能。在本發(fā)明的一些實(shí)施例中,包裝還額外提供管理功能,以輔助對(duì)子組件進(jìn)行的協(xié)調(diào)。操作中,包裝74能夠執(zhí)行完整的多媒體功能,其在本示例中包括播放MP3文件。相應(yīng)地,包裝74提供了用于執(zhí)行完整多媒體功能的手段?,F(xiàn)參照?qǐng)D6的流程圖來(lái)描述包裝74 播放MP3文件的操作。圖6的過(guò)程在步驟100處開(kāi)始,其中,媒體播放器46被命令播放MP3文件。媒體播放器46可由應(yīng)用44中的另一個(gè)應(yīng)用或裝置10的操作系統(tǒng)來(lái)命令。裝置10的用戶(hù)經(jīng)由, 例如,被提供給觸摸屏顯示器16或鍵區(qū)14的輸入,指示媒體播放器46播放MP3文件也是可行的。還可行的是,發(fā)送給媒體播放器46的任何指令都被經(jīng)由內(nèi)核50來(lái)發(fā)送。在任何情況下,一旦媒體播放器46收到播放存儲(chǔ)在非易失性存儲(chǔ)器36上的MP3文件的指示,過(guò)程就從步驟100行進(jìn)到步驟102。在步驟102,媒體播放器46將包裝74加載到主存儲(chǔ)器中。在本示例中,包裝74被加載到易失性存儲(chǔ)器34中。此外,在這種情況下,包裝具體涉及所期望的用例,即,‘播放 MP3文件,。通過(guò)媒體播放器46和核心72來(lái)執(zhí)行包裝74的加載。具體地,媒體播放器46 指示核心72將包裝組件74的多媒體子組件76到80中的每一個(gè)都加載到易失性存儲(chǔ)器34 中。多媒體播放器46還指示核心72通過(guò)自動(dòng)建立組件76到80之間的合適的通信鏈路來(lái)配置包裝74。在本示例中,核心72在源76與解碼器78,以及解碼器78和接收器80之間建立隧道式通信鏈路。一旦包裝74被加載到存儲(chǔ)器中并被配置,過(guò)程就從步驟102行進(jìn)到 104。一旦包裝74被加載并配置,媒體播放器46就可將驅(qū)動(dòng)用例(即,播放MP3文件)的工作委托給包裝74。在步驟104,包裝74使用源76來(lái)加載MP3文件,該MP3文件與在步驟100媒體播放器46接收的原始指令中指定的那個(gè)對(duì)應(yīng)。如此,源子組件76代表軟件文件加載器。一旦加載了所指定的文件,其中所包含的MP3數(shù)據(jù)就通過(guò)源76傳遞到解碼器78,隨后過(guò)程行進(jìn)到步驟106.在步驟106,包裝74使用解碼器78對(duì)來(lái)自源76的MP3數(shù)據(jù)進(jìn)行解碼,以生成脈沖編碼調(diào)制(PCM)聲音樣本。解碼器78可代表使用應(yīng)用處理器M來(lái)實(shí)現(xiàn)解碼算法的軟件解碼器??商娲?,裝置10可包括硬件加速器,并且解碼器78可代表使用該加速器來(lái)實(shí)現(xiàn)解碼算法的軟件解碼器。在任何情況下,經(jīng)解碼的PCM樣本都被從解碼器78發(fā)送到接收器 80,并且過(guò)程行進(jìn)到步驟108。在步驟108,接收器80接收PCM樣本,并將其發(fā)送到揚(yáng)聲器18。接收器代表裝置驅(qū)動(dòng)器討,并由此控制揚(yáng)聲器18以播放經(jīng)過(guò)解碼的PCM樣本。步驟110代表最終步驟,其中,揚(yáng)聲器18播放PCM樣本??赏ㄟ^(guò)有限狀態(tài)機(jī)對(duì)OpenMAX IL多媒體子組件(76到80)的行為進(jìn)行模型化。相應(yīng)地,可調(diào)用每個(gè)子組件的方法以便驅(qū)動(dòng)由有限狀態(tài)機(jī)限定的子組件的行為,由此激活子組件的功能。包裝組件的行為作為整體也可通過(guò)有限狀態(tài)機(jī)來(lái)模型化。IL客戶(hù)端(即,媒體播放器46)可請(qǐng)求包裝上的狀態(tài)改變,以驅(qū)動(dòng)包裝的特定用例。換言之,IL客戶(hù)端可簡(jiǎn)單地驅(qū)動(dòng)包裝,并且包裝于是將驅(qū)動(dòng)其單獨(dú)子組件,使得包裝根據(jù)其有限狀態(tài)機(jī)那樣工作。包裝74提供了單個(gè)整體OpenMAX IL組件(即,包裝組件74)下組合在一起的多個(gè) OpenMAX IL組件(即,多媒體子組件76到80)。此外,包裝將一組關(guān)聯(lián)的多媒體子組件歸類(lèi),所述關(guān)聯(lián)的多媒體子組件形成能夠運(yùn)行特定多媒體用例,即播放MP3文件,的功能組。 當(dāng)然,其他用例也是可行的,例如,播放WMA文件、流式視頻文件、錄制視頻文件、捕獲JPEG 圖像和顯示JPEG圖像。在其他示例中,可提供用于每個(gè)用例的單獨(dú)的包裝組件。每個(gè)包裝將包括對(duì)于用來(lái)提供與其關(guān)聯(lián)的用例來(lái)說(shuō)必要的子組件(例如,播放WMA文件、流式視頻文件、錄制視頻文件、捕獲JPEG圖像和顯示JPEG圖像)。通常,包裝從IL客戶(hù)端(即,媒體播放器46)接收觸發(fā)該包裝的特定用例的命令。內(nèi)部地,包裝在其子組件(即,多媒體子組件76到80)上調(diào)用所需的命令,并且包裝能夠處理子組件發(fā)布的事件。在需要時(shí),包裝也向IL客戶(hù)端(即,媒體播放器46)發(fā)送回調(diào),以便符合OpenMAX IL API。包裝74能夠進(jìn)行資源管理。資源管理涉及控制組件(76到80)對(duì)有限資源的訪問(wèn),例如,諸如存儲(chǔ)器34或電池40的硬件資源。因此,包裝74 了解有多少具體資源可用, 哪些組件當(dāng)前正在使用資源,以及組件正在使用多少資源。作為資源管理器,包裝74將基于資源沖突和可用性,向策略管理器推薦哪些組件應(yīng)該被預(yù)先清空或恢復(fù)。在本實(shí)例中, 對(duì)MP3數(shù)據(jù)進(jìn)行解碼會(huì)生成聲音樣本形式的數(shù)據(jù),該聲音樣本必須存儲(chǔ)在易失性存儲(chǔ)器34 中,使得其隨后可在揚(yáng)聲器18上播放。易失性存儲(chǔ)器34具有有限的存儲(chǔ)容量,其對(duì)于裝置 10的組件76到80之外的元件來(lái)說(shuō)也必須是可用的。相應(yīng)地,包裝74 了解易失性存儲(chǔ)器 34的容量,并管理對(duì)其進(jìn)行的訪問(wèn),使得裝置10能夠工作。包裝74能夠進(jìn)行策略管理。策略管理器負(fù)責(zé)管理子組件鏈或流,其中,子組件流是協(xié)作來(lái)執(zhí)行多媒體功能的組件集。在本示例中,組件76至80提供子組件流,其中,該流執(zhí)行播放MP3文件的多媒體功能。策略管理用于確定流是否能夠基于包括資源、系統(tǒng)配置和其他因素的信息來(lái)運(yùn)行。因此,包裝根據(jù)該信息控制組件76到80播放MP3文件的操作。包裝74的操作使得一旦包裝74被加載到存儲(chǔ)器中并且其關(guān)聯(lián)的多媒體功能被起動(dòng),則多媒體子組件可被動(dòng)態(tài)地插入或移除。例如,包裝74可被布置為使得在包裝74的其他部分被加載時(shí),解碼器子組件78沒(méi)有在步驟102被加載。作為替代,所加載的特定解碼器子組件可依賴(lài)源76加載的文件的文件格式。如果MP3文件在步驟104被加載,則在該文件被解碼之前,MP3解碼器子組件可在步驟106被加載??商娲兀绻鸚MA (windows (RTM)媒體音頻)文件在步驟104被加載,則在該文件被解碼之前,WMA解碼器子組件可在步驟106 被加載??商娲?,MP3解碼器可在步驟102被加載,然后,如果WMA文件在步驟104被加載,則在步驟106,在WMA文件被解碼之前,MP3解碼器可被移除并且WMA解碼器可被插入到其位置。包裝74的操作使得媒體播放器46能夠加載包裝74,然后將播放MP3文件的工作委托給該包裝74。換言之,媒體播放器46無(wú)需使其自己關(guān)注組合以播放MP3文件的單獨(dú)的步驟,例如加載MP3文件、解碼文件或?qū)⒔獯a后的文件發(fā)送給裝置驅(qū)動(dòng)器。也就是說(shuō),如果需要,媒體播放器46仍舊可訪問(wèn)每個(gè)多媒體子組件76到80的各個(gè)功能。此外,可通過(guò)其他OpenMAX組件或IL客戶(hù)端來(lái)訪問(wèn)對(duì)包裝74的任何輸入或來(lái)自包裝74的任何輸出。具體地,包裝的輸入端口由包裝的子組件流中的第一子組件的輸入提供,而包裝的輸出端口由包裝的子組件流中的最后子組件的輸出提供。這些端口被稱(chēng)為‘邊緣’端口,因?yàn)槊總€(gè)邊緣端口都位于子組件流的邊緣,即,在流的進(jìn)口(inlet)或出口(outlet)。需要注意的是, 在圖5的示例中,第一子組件是不具有輸入端口的源76,最后的子組件是不具有輸出端口的接收器80。然而,在本發(fā)明的一些實(shí)施例中,包裝輸入端口或輸出端口不是與包裝的子組件的邊緣端口對(duì)應(yīng)。作為替代,包裝的輸入端口或輸出端口可以是特定子組件的任意輸入端口或輸出端口。在一些其他實(shí)施例中,某些子組件輸入和輸出端口可被預(yù)定義為包裝輸入端口或輸出端口。包裝組件也完全符合OpenMAX IL API和規(guī)范。相應(yīng)地,包裝組件可跨多個(gè)不同計(jì)算平臺(tái)移植的,并且具體地跨多個(gè)不同的移動(dòng)計(jì)算平臺(tái)移植的。此外,包裝允許創(chuàng)建僅使用 OpenMAX IL構(gòu)造的過(guò)濾器圖,并且因此,使得其符合OpenMAX IL標(biāo)準(zhǔn)。在本示例中,過(guò)濾器圖形成自源76、解碼器78和接收器80 (它們提供了播放MP3文件的完整多媒體功能)。根據(jù)本示例的包裝組件的優(yōu)點(diǎn)是,軟件框架或應(yīng)用(即,IL客戶(hù)端)可將多個(gè) OpenMAX IL多媒體子組件一起組合成包裝,以便運(yùn)行特定的多媒體用例,如播放MP3文件。 然后,IL客戶(hù)端可將驅(qū)動(dòng)該用例的工作委托給該包裝。這是有益的,因?yàn)榘b符合OpenMAX IL組件API并且可被控制(如同包裝就是基礎(chǔ)OpenMAX IL組件那樣)。此外,包裝可對(duì)IL 客戶(hù)端隱藏協(xié)調(diào)其中組合的單獨(dú)多媒體子組件所需的大部分復(fù)雜性。此方法允許更加簡(jiǎn)單的IL客戶(hù)端實(shí)現(xiàn),同時(shí)維持與OpenMAX IL標(biāo)準(zhǔn)的兼容性。具體地,IL客戶(hù)端無(wú)需考慮資源或策略管理,作為替代,可依靠于包裝組件來(lái)處理。允許更加簡(jiǎn)單的IL客戶(hù)端實(shí)現(xiàn)意味著對(duì)于軟件開(kāi)發(fā)者來(lái)說(shuō)更易于設(shè)計(jì)這樣的IL客戶(hù)端,并且因此減少了設(shè)計(jì)此類(lèi)IL客戶(hù)端所花的時(shí)間。本實(shí)施例的優(yōu)點(diǎn)是,可預(yù)設(shè)一個(gè)或多個(gè)包裝組件,使得應(yīng)用和框架(即,IL客戶(hù)端)能夠簡(jiǎn)易地使用它們的功能。具體地,被頻繁使用的多媒體功能可被預(yù)先設(shè)置并用作由其運(yùn)行特定用例的構(gòu)建塊。例如,播放MP3文件是可由多個(gè)不同的應(yīng)用或框架提供的多媒體功能,并且由此,包裝72可以是預(yù)設(shè)的包裝。額外地或可替代地,可預(yù)設(shè)一組其他的包裝組件,以提供多媒體功能,這包括但不限于播放WMA文件、流式視頻文件、錄制視頻文件、 捕獲JPEG圖像以及顯示JPEG圖像。相應(yīng)地,創(chuàng)建能夠提供任何這些多媒體功能的IL客戶(hù)端被簡(jiǎn)化,從而減少開(kāi)發(fā)此類(lèi)IL客戶(hù)端所花的時(shí)間。圖7是示出本發(fā)明的第二實(shí)施例的OpenMAX IL環(huán)境。除下文的例外之外,圖7的 OpenMAX IL環(huán)境與圖5的環(huán)境相同。包裝(在圖8中被重新編號(hào)為74’)額外地包括測(cè)試組件112。一旦包裝組件74’被加載,媒體播放器46 (充當(dāng)IL客戶(hù)端)就可調(diào)用測(cè)試組件 112。調(diào)用測(cè)試組件112需要包裝74’通知媒體播放器46 裝置10是否具有足夠的可用資源來(lái)執(zhí)行包裝74’的多媒體功能,S卩,通過(guò)揚(yáng)聲器18播放MP3文件。例如,資源可能是有限的資源,例如,易失性存儲(chǔ)器34或電池40。為了提供上述功能,包裝組件74’能夠識(shí)別執(zhí)行其多媒體功能將需要裝置10的哪些資源。另外,包裝組件74’能夠確定其需要每個(gè)被識(shí)別的資源中的多少,以及每個(gè)被識(shí)別的資源中有多少可用。在一些實(shí)施例中,是包裝組件的資源管理和/或策略管理功能提供了該能力。在包裝74’確定有至少一個(gè)被識(shí)別的有限資源不是足夠可用的情況下,包裝74’不響應(yīng)媒體播放器的呼叫。然而,在有足夠可用的被識(shí)別的有限資源的情況下,包裝74’響應(yīng)多媒體播放器74,的呼叫。在媒體播放器46收到來(lái)自包裝74’的響應(yīng)的情況下,媒體播放器46指示包裝74’運(yùn)行其多媒體功能?,F(xiàn)參考圖8的流程圖來(lái)解釋上述操作。需要注意的是,包裝74’的操作與以上參考圖6論述的包裝74的操作類(lèi)似。以下描述根據(jù)圖6的操作與根據(jù)圖9的操作之間的不同。一旦包裝74’被加載到存儲(chǔ)器中并被配置,過(guò)程從步驟102行進(jìn)到步驟114。在步驟114,媒體播放器46調(diào)用測(cè)試組件112,隨后過(guò)程行進(jìn)到步驟116。在步驟116,包裝組件74,識(shí)別為了執(zhí)行其播放MP3文件的多媒體功能,需要裝置10的哪些有限資源。然后, 包裝組件74’確定對(duì)于每個(gè)被識(shí)別的資源,是否有足夠的量可用。在對(duì)于被識(shí)別的裝置資源中的至少一個(gè)不足夠的情況下,過(guò)程在步驟116等待,直到足夠的資源可用??商娲?, 在所有被識(shí)別的裝置資源都足夠的情況下,過(guò)程行進(jìn)到步驟104。從步驟104起的過(guò)程如上文參照?qǐng)D6所述。應(yīng)當(dāng)理解,在本發(fā)明的其他實(shí)施例中,包裝74’可額外地或可替代地,通知媒體播放器46沒(méi)有足夠的資源可用并且不能執(zhí)行多媒體功能(即,播放MP3文件),而不是過(guò)程在步驟116等待,直到有足夠的裝置資源可用為止。在此情況下,媒體播放器46然后可在顯示器16上顯示適當(dāng)?shù)南?,以將此消息中繼給用戶(hù)。已經(jīng)參照播放MP3文件的用例討論了在此描述的第一和第二實(shí)施例。此外,那些實(shí)施例考慮了包括三個(gè)組件的包裝組件。應(yīng)當(dāng)理解,本發(fā)明的實(shí)施例在用于執(zhí)行其他多媒體用例時(shí)會(huì)同樣有效。另外,應(yīng)當(dāng)理解,實(shí)施例在用于與不同數(shù)量的組件連接時(shí)會(huì)同樣有效。例如,多于或少于三個(gè)的組件可被用于執(zhí)行特定的多媒體用例。另外,可創(chuàng)建不同類(lèi)型的子組件。例如,作為替代,可使用呈現(xiàn)器(renderer)子組件,而不是解碼器子組件。需要注意的是,改變組件的功能將繼而改變包裝組件所實(shí)施的用例以及所創(chuàng)建的OpenMAX IL環(huán)境。具體地,可使用具有源、接收器、編解碼器、過(guò)濾器、分離器、混合器或任意其他數(shù)據(jù)操作器的功能的組件。此外,此類(lèi)組件可用來(lái)實(shí)現(xiàn)任何多媒體用例,包括但不限于,在顯示屏上播放視頻文件、使用相機(jī)錄制視頻、在顯示屏上顯示圖像、捕獲文件中的圖像。圖9是示例性示出本發(fā)明第三實(shí)施例的OpenMAX IL環(huán)境。圖9的OpenMAX IL環(huán)境示出多媒體用例150,包括三個(gè)包裝組件152、156和158。更具體地,包裝組件152包括具有一個(gè)輸出的多媒體子組件154、具有一個(gè)輸入和一個(gè)輸出的包裝組件156、以及具有一個(gè)輸入的包裝組件158。包裝組件156和158置于包裝組件152內(nèi)。包裝組件156包括具有輸入和輸出的多媒體子組件156a,以及具有輸入和輸出的多媒體子組件156b。包裝組件158包括具有輸入和輸出的多媒體子組件158a,以及具有輸入的多媒體子組件158b。圖9的用例150的操作如參照?qǐng)D6所述。然而,在步驟102,通過(guò)使用核心74的多媒體播放器46,加載三個(gè)包裝組件152、156和158。將一個(gè)包裝組件置于另一個(gè)包裝組件內(nèi)的好處是,被置入的包裝的功能對(duì)于其所嵌入的包裝是可用的。如以上參照第一實(shí)施例所述,可預(yù)先設(shè)置多個(gè)包裝組件,以便提供多媒體功能的多個(gè)構(gòu)建塊。在此情況下,能夠?qū)⒁粋€(gè)功能置于另一個(gè)中以構(gòu)造能夠執(zhí)行多個(gè)構(gòu)建塊的完整多媒體功能的單個(gè)包裝組件是有用的。例如,可預(yù)先設(shè)置第一包裝組件,以提供在揚(yáng)聲器上播放MP3文件的功能。同時(shí),可預(yù)先設(shè)置第二包裝組件,以便取MP3文件并對(duì)其內(nèi)容執(zhí)行一些復(fù)雜的數(shù)據(jù)處理,例如,以提高文件中聲音數(shù)據(jù)的可聽(tīng)度。因?yàn)榘b組件可被置于其他包裝組件內(nèi),所以可以將第二包裝組件置于第一包裝組件內(nèi),使得在MP3文件在揚(yáng)聲器上被播放之前被處理。應(yīng)當(dāng)理解,不具有輸入或輸出端口的包裝組件(即,包裝組件74,74’和15 在此被稱(chēng)為流包裝組件。同時(shí),具有一個(gè)輸入端口和一個(gè)輸出端口的包裝組件(即,包裝組件 156)在此被稱(chēng)為過(guò)濾器包裝組件。另外,具有一個(gè)輸入端口的包裝組件(即,包裝組件158) 在此被稱(chēng)為接收器包裝。應(yīng)當(dāng)理解,使用‘組合模式’和‘OpenMAX IL組件擴(kuò)展機(jī)制’這兩個(gè)構(gòu)造來(lái)創(chuàng)建根據(jù)本發(fā)明一些實(shí)施例的包裝組件。具體地,使用OpenMAX IL組件擴(kuò)展API來(lái)創(chuàng)建新的 Index 和 Config 結(jié)構(gòu)對(duì),例如,諸如 OMXJndexConfigWrapperCompList 和 0MX_C0NFIG_MG_ C0MP0NENTLIST_TYPE,來(lái)實(shí)現(xiàn)包裝組件組合。在這種情況下,組件列表類(lèi)型結(jié)構(gòu)包含將被添加為包裝組件的子組件的OpenMAX IL組件名稱(chēng)(或者甚至是組件角色,這取決于不同的實(shí)現(xiàn)方式)的列表。此外,在IL客戶(hù)端要求訪問(wèn)包裝的單獨(dú)的子組件的實(shí)施例中,IL客戶(hù)端可獲取使用擴(kuò)展機(jī)制的子組件的句柄,并從而訪問(wèn)子組件的功能。例如,可使用新的^dex 和 Config 結(jié)構(gòu)對(duì)擴(kuò)展,例如,OMX_IndexConfigffrapperCompHandles 和 0MX_C0NFIG_MG_ C0MP0NENTHANDLESTYPE。在以上論述的實(shí)施例中,媒體播放器應(yīng)用通過(guò)承擔(dān)IL客戶(hù)端的角色來(lái)充當(dāng)客戶(hù)端組件。然而,應(yīng)當(dāng)理解,媒體播放器應(yīng)用只是提供了示例性的IL客戶(hù)端。此外,其他應(yīng)用將同樣提供合適的IL客戶(hù)端。例如,其他合適的IL客戶(hù)端可以是其他軟件應(yīng)用,例如,電子郵件應(yīng)用或日歷應(yīng)用。同時(shí),IL客戶(hù)端的角色可由諸如OpenMAX AL API等框架來(lái)提供。 另外,IL客戶(hù)端的角色可由能夠調(diào)用OpenMAX IL環(huán)境的功能或方法(例如,包裝的多媒體子組件的功能)的計(jì)算裝置的任意軟件來(lái)提供。應(yīng)當(dāng)理解,根據(jù)本發(fā)明的一些實(shí)施例的包裝組件可用在除移動(dòng)電話(huà)之外的計(jì)算裝置平臺(tái)上。例如,包裝可與個(gè)人數(shù)字助理、膝上計(jì)算機(jī)、桌面計(jì)算機(jī)、便攜式MP3播放器或便攜式MP4播放器一起使用。本發(fā)明的以上示例和實(shí)施例涉及OpenMAX IL API和標(biāo)準(zhǔn)。然而,涉及其他現(xiàn)有多媒體應(yīng)用編程接口的本發(fā)明的一些實(shí)施例在所附權(quán)利要求的范圍內(nèi)。最后,可對(duì)上述實(shí)施例做出各種附加和修改,以提供進(jìn)一步的實(shí)施例。對(duì)于作為本領(lǐng)域技術(shù)人員的預(yù)期讀者明顯的是,任意和所有可預(yù)見(jiàn)的都落在所附權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種方法,包括使用軟件包裝組件在計(jì)算裝置中執(zhí)行多媒體功能,所述包裝組件包括一個(gè)或多個(gè)多媒體軟件子組件,每個(gè)所述多媒體軟件子組件執(zhí)行至少部分所述多媒體功能,所述包裝組件被配置為響應(yīng)于來(lái)自客戶(hù)端組件的請(qǐng)求,控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括,在執(zhí)行所述多媒體功能時(shí),將所述一個(gè)或多個(gè)多媒體子組件中的至少一個(gè)插入到所述包裝組件中和/或從所述包裝組件移除。
3.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,進(jìn)一步包括,向所述客戶(hù)端組件提供輸出, 所述輸出包括來(lái)自所述一個(gè)或多個(gè)多媒體子組件中的至少一個(gè)的回調(diào)。
4.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,進(jìn)一步包括,向所述客戶(hù)端組件提供訪問(wèn), 以便控制所述一個(gè)或多個(gè)多媒體子組件中的至少一個(gè)的功能。
5.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,其中,所述包裝組件進(jìn)一步包括與所述一個(gè)或多個(gè)多媒體子組件中的一個(gè)的輸入端口對(duì)應(yīng)的輸入端口,以及與所述一個(gè)或多個(gè)多媒體子組件中的一個(gè)的輸出端口對(duì)應(yīng)的輸出端口,其中,所述輸入端口和輸出端口被配置為與其他包裝組件和所述客戶(hù)端組件通信。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述輸入和輸出端口與所述一個(gè)或多個(gè)多媒體子組件的邊緣端口對(duì)應(yīng)。
7.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,進(jìn)一步包括,管理通過(guò)所述一個(gè)或多個(gè)多媒體子組件中的至少一個(gè)對(duì)所述計(jì)算裝置的有限資源的訪問(wèn)。
8.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,進(jìn)一步包括如果對(duì)于所述包裝組件,有足夠的計(jì)算裝置資源可用,以控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能,則從所述客戶(hù)端組件接收待通知的指示;識(shí)別當(dāng)前是否有足夠的計(jì)算裝置資源可用;以及,如果當(dāng)前有足夠的計(jì)算裝置資源可用,則通知所述客戶(hù)端組件。
9.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,其中,所述包裝組件包括多個(gè)包裝組件。
10.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,其中,所述一個(gè)或多個(gè)多媒體子組件中的至少一個(gè)是包裝組件。
11.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,其中,所述包裝組件符合現(xiàn)有的多媒體應(yīng)用編程接口。
12.根據(jù)權(quán)利要求11所述的方法,其中,所述現(xiàn)有的多媒體應(yīng)用編程接口是OpenMAX IL API。
13.一種設(shè)備,包括至少一個(gè)處理器;以及至少一個(gè)存儲(chǔ)器,其包括計(jì)算機(jī)程序代碼,所述至少一個(gè)存儲(chǔ)器和所述計(jì)算機(jī)程序代碼被配置用來(lái)與所述至少一個(gè)處理器一起使所述設(shè)備至少執(zhí)行使用軟件包裝組件在所述設(shè)備中執(zhí)行多媒體功能,所述包裝組件包括一個(gè)或多個(gè)多媒體軟件子組件,每個(gè)所述多媒體軟件子組件執(zhí)行至少部分所述多媒體功能,所述包裝組件被配置為響應(yīng)于來(lái)自客戶(hù)端組件的請(qǐng)求,控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能。
14.一種計(jì)算機(jī)程序,包括用于使用軟件包裝組件在計(jì)算裝置中執(zhí)行多媒體功能的代碼,所述包裝組件包括一個(gè)或多個(gè)多媒體軟件子組件,每個(gè)所述多媒體軟件子組件執(zhí)行至少部分所述多媒體功能,所述包裝組件被配置為響應(yīng)于來(lái)自客戶(hù)端組件的請(qǐng)求,控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能。
15.一種計(jì)算機(jī)可讀介質(zhì),其編碼有當(dāng)被計(jì)算裝置執(zhí)行時(shí)使該計(jì)算裝置執(zhí)行如權(quán)利要求1至12所述的方法的指令。
全文摘要
本發(fā)明的示例涉及使用軟件包裝組件在計(jì)算裝置中執(zhí)行多媒體功能的方法、設(shè)備和計(jì)算機(jī)程序。所述包裝組件包括一個(gè)或多個(gè)多媒體軟件子組件。每個(gè)子組件執(zhí)行至少部分所述多媒體功能。所述包裝組件能夠用來(lái)響應(yīng)于來(lái)自客戶(hù)端組件的請(qǐng)求,控制所述一個(gè)或多個(gè)多媒體子組件執(zhí)行所述多媒體功能。
文檔編號(hào)G06F9/445GK102473100SQ201080029405
公開(kāi)日2012年5月23日 申請(qǐng)日期2010年5月25日 優(yōu)先權(quán)日2009年6月29日
發(fā)明者M·P·博雷戈 申請(qǐng)人:諾基亞公司