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). 登錄http://mail.qq.com
2). 用戶名:jeremiah_vlc
3). 密碼:發郵件給我([email protected]),我會告知。
4). 在“我的文件夾”的“Jeremiah_VLC相關資源”有所有資料的超大附件連接。
)

    第三方庫的版本是非常重要的,在此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
4. 進入到live裏面修改config.mingw
cd live
vi config.mingw
修改如下:
將C_COMPILER從$(CC)改成gcc -mno-cygwin
將CPLUSPLUS_COMPILER從$(CXX)改成g++ -mno-cygwin
將LIBRARY_LINK從$(LD) -o改成$(LD) -lws2_32 -o
5. 編譯live
./genMakefiles mingw
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
執行
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
之後在modules/demux/.libs下面的liblive555_plugin.dll就是最新編譯好的,考到package好的vlc-0.9.9a的plugins下就搞定所有了。
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章