vlc的第三方庫contrib的修改:live庫的修改
原文地址: http://jeremiah.blog.51cto.com/539865/177573
感謝vlc研究群的gg-Ak47童鞋的幫忙,雖然很據他給我講的我沒有搞定。
Contrib庫都是官網提供的,如果有些程式碼呼叫的第三方庫,我們除錯修改起來就很麻煩。Jeremiah最近再除錯vlc的rtsp方面的東西,編譯了live555的庫,替換掉官網提供的Contrib裡面關於live方面的庫,vlc編譯通過,實現了對第三方庫的修改。在此共享,提供一個思路,其他的庫,以此類推。
測試環境:
1. cygwin-new(20081208)
2. vlc-0.9.9a
3. contrib-20090118-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2
測試環境:
1. cygwin-new(20081208)
2. vlc-0.9.9a
3. contrib-20090118-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2
(
在我的公共郵箱提供了下載,具體下載方式為:
1). 登入http://mail.qq.com
2). 使用者名稱:jeremiah_vlc
3). 密碼:發郵件給我(jeremiah.vlc@gmail.com),我會告知。
4). 在“我的資料夾”的“Jeremiah_VLC相關資源”有所有資料的超大附件連線。
1). 登入http://mail.qq.com
2). 使用者名稱:jeremiah_vlc
3). 密碼:發郵件給我(jeremiah.vlc@gmail.com),我會告知。
4). 在“我的資料夾”的“Jeremiah_VLC相關資源”有所有資料的超大附件連線。
)
第三方庫的版本是非常重要的,在此Jeremiah提供一個方法去找所需要庫的版本。
開啟vlc原始碼下面的extras/contrib/src/會有一個MakeFile及packages.mak,這兩個檔案本來是給Linux及MacOS下載編譯第三方庫的。根據這兩個檔案就應該知道第三方庫提供的下載地址及如果編譯。
但是live555的庫比較特殊,搜尋“live“,發現永遠都是live-latest.tar.gz。這個是根據版本不同而隨時改變的。Jeremiah也是試驗多次,終於找到了一個比較適合的版本。
第三方庫的版本是非常重要的,在此Jeremiah提供一個方法去找所需要庫的版本。
開啟vlc原始碼下面的extras/contrib/src/會有一個MakeFile及packages.mak,這兩個檔案本來是給Linux及MacOS下載編譯第三方庫的。根據這兩個檔案就應該知道第三方庫提供的下載地址及如果編譯。
但是live555的庫比較特殊,搜尋“live“,發現永遠都是live-latest.tar.gz。這個是根據版本不同而隨時改變的。Jeremiah也是試驗多次,終於找到了一個比較適合的版本。
下載地址:http://ftp.gamma.ru/FreeBSD/ports/local-distfiles/nork/live.2009.02.23.tar.gz
這個ftp裡面還有其他版本的live。由於live官方不提供舊版本下載,所以,舊版的live只能通過其他的非官方渠道獲得。
1. 解壓live.2009.02.23.tar.gz到~下
2. copy補丁到~下。注意目錄層級
cp ~/vlc-0.9.9a/extras/contrib/src/Patches/live-noapps.patch ~/vlc-0.9.9a/extras/contrib/src/Patches/live-uselocale.patch ~
3. 打補丁
patch -p0 < live-noapps.patch
patch -p0 < live-uselocale.patch
patch -p0 < live-uselocale.patch
4. 進入到live裡面修改config.mingw
cd live
vi config.mingw
vi config.mingw
修改如下:
將C_COMPILER從$(CC)改成gcc -mno-cygwin
將CPLUSPLUS_COMPILER從$(CXX)改成g++ -mno-cygwin
將LIBRARY_LINK從$(LD) -o改成$(LD) -lws2_32 -o
將CPLUSPLUS_COMPILER從$(CXX)改成g++ -mno-cygwin
將LIBRARY_LINK從$(LD) -o改成$(LD) -lws2_32 -o
5. 編譯live
./genMakefiles mingw
make
make
不報錯就說明編譯的很OKAY。
6. copy庫到/usr/win32
將下列指令碼儲存為cp.sh
cp BasicUsageEnvironment/libBasicUsageEnvironment.a /usr/win32/live.com/BasicUsageEnvironment/
cp BasicUsageEnvironment/libBasicUsageEnvironment.a /usr/win32/lib/
cp UsageEnvironment/libUsageEnvironment.a /usr/win32/live.com/UsageEnvironment/
cp UsageEnvironment/libUsageEnvironment.a /usr/win32/lib
cp groupsock/libgroupsock.a /usr/win32/live.com/groupsock/
cp groupsock/libgroupsock.a /usr/win32/lib/
cp liveMedia/libliveMedia.a /usr/win32/live.com/liveMedia/
cp liveMedia/libliveMedia.a /usr/win32/lib
cp BasicUsageEnvironment/libBasicUsageEnvironment.a /usr/win32/lib/
cp UsageEnvironment/libUsageEnvironment.a /usr/win32/live.com/UsageEnvironment/
cp UsageEnvironment/libUsageEnvironment.a /usr/win32/lib
cp groupsock/libgroupsock.a /usr/win32/live.com/groupsock/
cp groupsock/libgroupsock.a /usr/win32/lib/
cp liveMedia/libliveMedia.a /usr/win32/live.com/liveMedia/
cp liveMedia/libliveMedia.a /usr/win32/lib
執行
sh cp.sh
到此庫已經替換成功了,以後修改了live的原始碼就可以重新make,重新cp。
7. vlc重新關聯live的庫
如果你想make clean了再make,我沒意見。這裡提供一個簡單的方法。
cd ~/vlc-0.9.9a/modules/demux
rm liblive555_plugin_la-live555.lo
make
rm liblive555_plugin_la-live555.lo
make
之後在modules/demux/.libs下面的liblive555_plugin.dll就是最新編譯好的,考到package好的vlc-0.9.9a的plugins下就搞定所有了。
相關文章
- 修改 requests 庫原始碼的方法原始碼
- mysql 修改資料庫的列MySql資料庫
- git 修改本地倉庫的遠端倉庫地址Git
- 修改資料庫的歸檔模式資料庫模式
- 修改Oracle資料庫表的大小Oracle資料庫
- 修改資料庫資料庫
- 修改資料庫db_name的方法資料庫
- 修改資料庫的日期顯示格式資料庫
- 修改資料庫的ORACLE的SGA和PGA的值資料庫Oracle
- 修改叢集資料庫的歸檔模式資料庫模式
- MongoDB主從模式修改主庫的oplogsizeMongoDB模式
- mysql修改表、欄位、庫的字符集MySql
- Oracle資料庫修改LISTENER的監聽埠Oracle資料庫
- Sqlserver資料庫儲存路徑的修改SQLServer資料庫
- 使用Reflexil修改類庫Flex
- git倉庫修改遠端倉庫Git
- 網站檔案修改資料庫,安全高效地修改網站資料庫中的檔案資訊網站資料庫
- linux下mysql的預設字符集修改和預設資料庫引擎的修改LinuxMySql資料庫
- mysql資料庫修改新增Date格式列的方法MySql資料庫
- github_修改當前倉庫的預設分支Github
- PostgreSQL資料庫修改sql表的方法彙總SQL資料庫
- 關於修改資料庫引數的測試資料庫
- 修改mysql資料庫的預設編碼方式MySql資料庫
- 修改資料庫的NLS_DATE_FORMAT引數資料庫ORM
- 如何優雅的修改node_modules中的依賴庫
- 讓 fork 出來的 Github 倉庫從遠端倉庫拖取最新的修改Github
- 修改資料庫路徑資料庫
- 資料庫修改資料資料庫
- 修改資料庫名稱資料庫
- 使用ALTER修改資料庫資料庫
- vue如何修改第三方庫的css樣式,如element-ui的樣式,穿透樣式的寫法VueCSSUI穿透
- rails 修改資料庫之後注意修改controllerAI資料庫Controller
- 安全快速修改Mysql資料庫名的5種方法MySql資料庫
- Mysql資料庫值的新增、修改、刪除及清空MySql資料庫
- db2修改資料庫的日誌空間DB2資料庫
- mysql修改資料庫編碼MySql資料庫
- 修改資料庫字符集資料庫
- 修改SQL Server資料庫地址SQLServer資料庫