版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一部分OpenCore概述OpenCore的另一個(gè)常用名稱(chēng)是Android的多媒體核心PacketVideo。在防病毒過(guò)程中,PacketVideo是公司的名稱(chēng),OpenCore是此多媒體框架的軟件層名稱(chēng)。在Android的開(kāi)發(fā)者中,意義幾乎相同。與其他Android庫(kù)相比,OpenCore基于c的實(shí)現(xiàn)定義了功能全面的操作系統(tǒng)遷移層,各種基本功能封裝在類(lèi)中,從而在層之間的接口上使用更多的繼承。OpenCore是多媒體的框架,主要包括兩個(gè)主要方面:PVPlayer:提供媒體播放器的功能,可執(zhí)行各種音頻(Audio)、視頻(Video)流的播放(Playback)功能PVAuthor:提供媒體流
2、記錄功能,可執(zhí)行各種音頻(Audio)、視頻(Video)流和靜態(tài)圖像捕獲功能PVPlayer和PVAuthor以SDK的形式提供給開(kāi)發(fā)人員,SDK允許他們構(gòu)建各種應(yīng)用程序和服務(wù)。移動(dòng)終端上常用的多媒體應(yīng)用程序,如媒體播放器、相機(jī)、錄像機(jī)、磁帶錄音機(jī)等。為了更好地實(shí)現(xiàn)整個(gè)組織的體系結(jié)構(gòu),OpenCore從軟件層宏觀(guān)上分為以下幾層:Oscl:操作系統(tǒng)兼容性庫(kù)包含一些基于操作系統(tǒng)的任務(wù),以幫助執(zhí)行跨多個(gè)操作系統(tǒng)的遷移。包含基本數(shù)據(jù)類(lèi)型、配置、字符串工具、IO、錯(cuò)誤處理、線(xiàn)程等,類(lèi)似于一個(gè)基本c庫(kù)。pvmf:packet video multimedia framework(PV多媒體框架)是在框架
3、內(nèi)實(shí)現(xiàn)parser(文件解析)和composer(復(fù)合)、編解碼器節(jié)點(diǎn)或用戶(hù)層中的某些節(jié)點(diǎn)的公用PVPlayer引擎:PVPlayer引擎。PVAuthor引擎:PVAuthor引擎。實(shí)際上,從播放的角度來(lái)看,PVPlayer的輸入(Source)包括很多音頻視頻輸出設(shè)備,其中包括文件或網(wǎng)絡(luò)媒體流、輸出(Sink)包括媒體流控制、文件語(yǔ)法分析和音頻視頻流解碼(Decode)等基本功能。除了在文件中播放媒體文件外,還包括與網(wǎng)絡(luò)相關(guān)的RTSP流(Real Time Stream Protocol,實(shí)時(shí)流協(xié)議)。對(duì)于媒體流記錄,PVAuthor的輸入(Source)是相機(jī)、麥克風(fēng)等設(shè)備,輸出(Sin
4、k)是包含流同步、音頻視頻流的編碼(Encode)和文件寫(xiě)入等功能的多種文件。使用OpenCore的SDK時(shí),可能需要在應(yīng)用層實(shí)施適配器(Adaptor),然后在適配器上方實(shí)施特定功能,PVMF中的NODE也可以基于公共接口在較高層作為插件實(shí)施。第二部分OpenCore的代碼結(jié)構(gòu)2.1代碼結(jié)構(gòu)以開(kāi)放源代碼Android中的代碼為例,OpenCore中的代碼位于以下目錄中:external/opencore/。此目錄是OpenCore的根目錄,包含以下子目錄:Android:此庫(kù)是基于PVPlayer和PVAuthor的SDK實(shí)現(xiàn)Android的Player和Author的上層庫(kù)。Baselib
5、s:包含數(shù)據(jù)結(jié)構(gòu)和線(xiàn)程安全性等內(nèi)容的默認(rèn)庫(kù)Codecs_v2:更多內(nèi)容的庫(kù),主要包括編解碼器實(shí)現(xiàn)和OpenMAX實(shí)現(xiàn)Engines:包括PVPlayer和PVAuthor引擎的實(shí)現(xiàn)Exern _ libs _ v2:包含khronos的OpenMAX的頭文件Fileformats:文件格式的解析器工具NODEs:提供PVMF的node,主要用于解析編解碼器和文件。Oscl:作業(yè)系統(tǒng)相容性程式庫(kù)pvmi:I/o控制的抽象界面Protocols:主要是與網(wǎng)絡(luò)相關(guān)的協(xié)議相關(guān)的內(nèi)容,如RTSP、RTP和HTTPPvcommon: PV common庫(kù)文件的Android.mk文件,沒(méi)有源文件。Pvpl
6、ayer:沒(méi)有源文件的pvplayer庫(kù)文件的Android.mk文件。Pvauthor:不包含源文件的pvauthor庫(kù)文件的Android.mk文件。Tools_v2:編譯工具和某些可注冊(cè)模塊。external/opencore/目錄中還有兩個(gè)文件,如下所示:Android.mk:全局編譯文件Pvplayer.conf:配置文件External/opencore/的子文件夾中包含許多Android.mk文件,它們之間存在“遞歸”關(guān)系。例如,根目錄中的Android.mk包含以下內(nèi)容:復(fù)制代碼1.include $(PV _ top)/PV common/Android . MK2.incl
7、ude $(PV _ top)/PV player/Android . MK3.include $(PV _ top)/p vauthor/Android . MK這表示您要參考pvcommon、pvplayer和pvauthor等文件夾下的Android.mk文件。External/opencore/中的單個(gè)Android.mk文件可以將多個(gè)Android.mk內(nèi)容合并到一個(gè)庫(kù)中2.2編譯結(jié)構(gòu)1.存儲(chǔ)庫(kù)的層次結(jié)構(gòu)關(guān)系:OpenCore編譯從Android的開(kāi)放源代碼版本編譯的內(nèi)容,如下所示:LibopencoreAuthor.so:OpenCore中的Author庫(kù)Libopencoreco
8、mmon.so:OpenCore的默認(rèn)公共庫(kù)Libopencoredownloadreg.so:下載注冊(cè)庫(kù)Libopencoredownload.so:下載功能實(shí)現(xiàn)庫(kù)Libopencoremp4reg.so :MP4注冊(cè)庫(kù)Libopencoremp4.so:MP4功能實(shí)施庫(kù)Libopencorenet_support.so:網(wǎng)絡(luò)支持庫(kù)Libopencoreplayer.so :OpenCore的播放器庫(kù)Libopencorertspreg.so:RTSP注冊(cè)庫(kù)Libopencorertsp.so :RTSP功能實(shí)施庫(kù)這些庫(kù)的層次結(jié)構(gòu)關(guān)系如下圖所示。OpenCore中的庫(kù)具有以下關(guān)系:libop
9、encorecommon.so是所有庫(kù)的從屬庫(kù),具有通用功能。libOpenCoreplayer.so和libopencoreauthor.so是用于播放和記錄的兩個(gè)并行庫(kù)和opencore外部接口庫(kù)。libopencorenet_support.so提供網(wǎng)絡(luò)支持。某些功能作為插件(插件)放在Player中使用,每個(gè)插件使用兩個(gè)實(shí)現(xiàn)特定功能的庫(kù)。2.libopencorecommon.so庫(kù)的結(jié)構(gòu)LibOpenCorecommon.so是整個(gè)opencore的核心庫(kù),它是pvcommon/Android.mk的編譯控制文件路徑,可遞歸查找子文件。復(fù)制代碼1.include $ (build _
10、 shared _ library)2.include $(PV _ top)/oscl/oscl/osclbase/Android . MK3.include $(PV _ top)/oscl/oscl/oscll error/Android . MK4.include $(PV _ top)/oscl/oscl/oscl memory/Android . MK5.include $(PV _ top)/oscl/oscll/oscl til/Android . MK6.include $(PV _ top)/oscl/PV logger/Android . MK7.include $(PV
11、 _ top)/oscl/oscl/oscl proc/Android . MK8.include $(PV _ top)/oscl/oscl/osclio/Android . MK9.include $(PV _ top)/oscl/oscl/osclregcli/Android . MK10.include $(PV _ top)/oscl/oscl/osclregserv/Android . MK11.include $(PV _ top)/oscl/unit _ test/Android . MK12.include $(PV _ top)/oscl/oscl/oscllib/Andr
12、oid . MK13.include $(PV _ top)/pvmi/pvmf/Android . MK14.include $(PV _ top)/baselibs/PV _ mime _ utils/Android . MK15.include $(PV _ top)/nodes/pvfileoutputnode/Android . MK16.include $(PV _ top)/baselibs/media _ data _ structures/Android . MK17.include $(PV _ top)/baselibs/thread safe _ callback _
13、ao/Android . MK18.include $(PV _ top)/codec _ v2/utilities/color convert/Android . MK19.include $(PV _ top)/codec _ v2/audio/GSM _ AMR/AMR _ nb/common/Android . MK20.include $(PV _ top)/codec _ v2/video/AVC _ h264/common/Android . MK這些嵌入的Android.mk文件實(shí)際指定了必須編譯的文件,這些文件位于Android.mk的目錄及其子目錄中。實(shí)際上,libopen
14、corecommon.so庫(kù)包含以下內(nèi)容:OSCL中的所有內(nèi)容Pvmf框架部分的內(nèi)容(pvmi/pvmf/Android.mk)基礎(chǔ)庫(kù)的一些內(nèi)容(baselibs)編解碼器的部分內(nèi)容用于文件輸出的node(nodes/pvfileoutputnode/Android . MK)在庫(kù)的結(jié)構(gòu)中,您可能注意到最終構(gòu)建庫(kù)的結(jié)構(gòu)與OpenCore中的層次關(guān)系不完全匹配。Libopencorecommon.so庫(kù)包含默認(rèn)OSCL的內(nèi)容、PVMF的框架、節(jié)點(diǎn)和編解碼器工具。3.libopencoreplayer.so庫(kù)的結(jié)構(gòu)Libopencoreplayer.so是用于回放的功能庫(kù),它是pvplayer/A
15、ndroid.mk(包含以下內(nèi)容)的編譯控制文件路徑:復(fù)制代碼1.include $ (build _ shared _ library)2.include $(PV _ top)/engines/player/Android . MK3.include $(PV _ top)/codec _ v2/audio/AAC/dec/util/getactual acconfig/Android . MK4.include $(PV _ top)/codec _ v2/video/AVC _ h264/dec/Android . MK5.include $(PV _ top)/codec _ v2/
16、audio/AAC/dec/Android . MK6.include $(PV _ top)/codec _ v2/audio/GSM _ AMR/AMR _ nb/dec/Android . MK7.include $(PV _ top)/codec _ v2/audio/GSM _ AMR/AMR _ WB/dec/Android . MK8.include $(PV _ top)/codec _ v2/audio/GSM _ AMR/common/dec/Android . MK9.include $(PV _ top)/codec _ v2/audio/MP3/dec/Android
17、 . MK10.include $(PV _ top)/codec _ v2/utilities/m4v _ config _ parser/Android . MK11.include $(PV _ top)/codec _ v2/utilities/PV _ video _ config _ parser/Android . MK12.include $(PV _ top)/codec _ v2/omx/omx _ common/Android . MK13.include $(PV _ top)/codec _ v2/omx/omx _ queue/Android . MK14.include $(PV _ top)/codess _ v2/omx/omx _ h264/Android . MK15.include $(PV _ top)/codec _ v2/omx/omx _ AAC/Android . MK16.include $(PV _ top)/codec _ v2/omx/omx _ AMR/Android . MK17.include $(PV _ top)/codec _ v2/omx/omx _ MP3/Android . MK18.include $(PV _ top)/codess _ v2/omx
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 秋分溫泉活動(dòng)策劃方案(3篇)
- 學(xué)校歷史文化管理制度(3篇)
- 2026年聊城市中醫(yī)醫(yī)院“水城優(yōu)才”青年人才引進(jìn)參考考試題庫(kù)及答案解析
- 現(xiàn)代裝飾公司店長(zhǎng)管理制度(3篇)
- 2026年度德州市事業(yè)單位公開(kāi)招聘初級(jí)綜合類(lèi)崗位人員(526人)備考考試題庫(kù)及答案解析
- 2026山東事業(yè)單位統(tǒng)考濟(jì)南歷城區(qū)屬招聘初級(jí)綜合類(lèi)崗位50人參考考試題庫(kù)及答案解析
- 2026浙江興??毓杉瘓F(tuán)有限公司下屬企業(yè)招聘3人備考考試試題及答案解析
- 2026年甘肅省酒泉民健康復(fù)醫(yī)院招聘考試備考試題及答案解析
- 2026上半年黑龍江伊春市事業(yè)單位招聘262人參考考試題庫(kù)及答案解析
- 2026浙江南方水泥有限公司校園招聘?jìng)淇伎荚囋囶}及答案解析
- (二診)綿陽(yáng)市2023級(jí)高三第二次診斷考試歷史試卷A卷(含答案)
- 2026年電力交易員崗位能力認(rèn)證考核題含答案
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)金剛石工具行業(yè)投資分析及發(fā)展戰(zhàn)略咨詢(xún)報(bào)告
- 2025-2026學(xué)年總務(wù)主任年度述職報(bào)告
- 機(jī)電井(水源井)工程施工技術(shù)方案
- 創(chuàng)新創(chuàng)業(yè)教育學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 河道治理、拓寬工程 投標(biāo)方案(技術(shù)方案)
- 政治審查表(模板)
- 《最奇妙的蛋》完整版
- SEMI S1-1107原版完整文檔
- 2023年中級(jí)財(cái)務(wù)會(huì)計(jì)各章作業(yè)練習(xí)題
評(píng)論
0/150
提交評(píng)論