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”資料夾中存放和設定功能相關的類
此處不一一例舉