vlc的第三方庫contrib的修改:live庫的修改

Just4life發表於2014-02-26

原文地址: 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). 密碼:發郵件給我(jeremiah.vlc@gmail.com),我會告知。
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下就搞定所有了。
 
 

相關文章