1. 程式人生 > >XBMC原始碼分析 1:整體結構以及編譯方法

XBMC原始碼分析 1:整體結構以及編譯方法

XBMC(全稱是XBOX Media Center)是一個開源的媒體中心軟體。XBMC最初為Xbox而開發,可以執行在Linux、OSX、Windows、Android4.0系統。我自己下載了一個然後體驗了一下,感覺確實不錯,和Windows自帶的媒體中心差不多。


XBMC差不多是我接觸到的開源多媒體專案中體積最大的了。但是它的編譯方法卻出乎意料的簡單。我按照它的Wiki上面說的步驟去做,非常順利的完成了編譯,沒有遇到任何錯誤,贊一個。

下面簡述一下它的編譯方法。

前提條件

1.Visual C++ 2010 

2.Microsoft DirectX SDK (August 2009 或更晚的版本)

3.Git

4.JRE

編譯

注意:需要下載很多東西,所以需要聯網

1.使用Git下載原始碼。Git地址:git://github.com/xbmc/xbmc.git

2.執行DownloadBuildDeps.bat (所在目錄 project\BuildDependencies):下載編譯專案所需要的依賴項

3.執行DownloadMingwBuildEnv.bat (所在目錄 project\BuildDependencies) :下載編譯ffmpeg庫所需要的依賴項

4.執行buildmingwlibs.bat (所在目錄 project\Win32BuildSetup): 編譯ffmpeg庫

5.以下二選一。一般情況下選第二個就可以了。

(1)BuildSetup.bat (所在目錄 project\Win32BuildSetup):只有需要直接編譯一個打包檔案的時候,才推薦使用該批處理。

(2)extract_git_rev.bat : 如果是為了除錯,並且使用 VC++ 2010 進行編譯,推薦使用該批處理。

6.開啟project\VS2010Express\XBMC for Windows.sln,就可以編譯了。

下面對XBMC原始碼進行一個整體分析:

原始碼的目錄結構如下圖所示。我把其中比較主要的資料夾下面標記了一條紅線。


這幾個主要資料夾的作用如下(其他資料夾就不再細說了):

addons:附加元件。比如說XBMC的面板檔案,螢幕保護檔案,視覺化效果檔案等等。

docs:文件。

language:語言檔案。

project:專案工程檔案。

xbmc:原始碼

lib:呼叫的各個庫。比如說libavcodec。

XBMC專案解決方案的目錄如下圖所示。可以看出專案工程數量是極其巨大的。

其中名字為“XBMC”的工程是主程式。

ImageLib_XXX是圖片處理的工程。

libXBMC_XXX是完成XBMC各種功能的工程。

visXXX是各種視覺化效果的工程。


我們來看一下“XBMC”工程的目錄。該工程下原始檔的數量也是十分龐大的。不同功能的類被放到了不同的資料夾中,顯得還是比較井然有續的:

其中“core”資料夾中存放核心的類

“addon”資料夾中存放和addon相關的類

“music”資料夾中存放和音樂功能相關的類

“video”資料夾中存放和影視功能相關的類

“settings”資料夾中存放和設定功能相關的類

此處不一一例舉