opencore

Android的多媒體核心

OpenCore是Android的多媒體核心,它是一個基於C++的實現,定義了全功能的操作系統移植層,各種基本的功能均被封裝成類的形式,各層次之間的介面多使用繼承等方式。

簡介


OpenCore是一個多媒體的框架,從宏觀上來看,它主要包含了兩大方面的內容:
PVPlayer:提供媒體播放器的功能,完成各種音頻(Audio)、視頻(Video)流的回放(Playback)功能
PVAuthor:提供媒體流記錄的功能,完成各種音頻(Audio)、視頻(Video)流的以及靜態圖像捕獲功能
PVPlayer和PVAuthor以SDK的形式提供給開發者,可以在這個SDK之上構建多種應用程序和服務。在移動終端中常常使用的多媒體應用程序,例如媒體播放器、照相機、錄像機、錄音機等等。
為了更好的組織整體的架構,OpenCore在軟體層次在宏觀上分成幾個層次:
OSCL:Operating System Compatibility Library (操作系統兼容庫),包含了一些操作系統底層的操作,為了更好地在不同操作系統移植。包含了基本數據類型、配置、字元串工具、IO、錯誤處理、線程等內容,類似一個基礎的C++庫。
PVMF:PacketVideo Multimedia Framework(PV多媒體框架),在框架內實現一個文件解析(parser)和組成(composer)、編解碼的NODE,也可以繼承其通用的介面,在用戶層實現一些NODE。

包含內容


PVPlayer Engine:PVPlayer引擎。
事實上,OpenCore中包含的內容非常多:從播放的角度,PVPlayer的輸入(Source)是文件或者網路媒體流,輸出(Sink)是音頻視頻的輸出設備,其基本功能包含了媒體流控制、文件解析、音頻視頻流的解碼(Decode)等方面的內容。除了從文件中播放媒體文件之外,還包含了與網路相關的RTSP流(Real Time Stream Protocol,實時流協議)。在媒體流記錄的方面,PVAuthor的輸入(Source)是照相機、麥克風等設備,輸出(Sink)是各種文件,包含了流的同步、音頻視頻流的編碼(Encode)以及文件的寫入等功能。
在使用OpenCore的SDK的時候,有可能需要在應用程序層實現一個適配器(Adaptor),然後在適配器之上實現具體的功能,對於PVMF的NODE也可以基於通用的介面,在上層實現,以插件的形式使用。