H.264庫移植 /libjpeg庫移植
阿新 • • 發佈:2019-02-11
1.H.264庫移植
F:\國嵌入式收費視訊\高階專案\高階專案SDK[ED2000.COM]\高階專案SDK\SDK-H264\server\h264\avc-src-0.14下
#cd avc/build/linux/
#make //編譯完成後在build/obj目錄下生成.o結尾的目標檔案
#rm T264.o //刪除T264.o目標檔案
出現錯誤;
[email protected]:/home/xyc/sdk-H264/server/h264/avc-src-0.14/avc/build/linux# make
checking dependencies
compiling object file "../obj/T264.o" ...
In file included from ../../encoder/T264.c:51:
../../common/T264.h:36:1: warning: "DECLARE_ALIGNED_MATRIX_H" redefined
In file included from ../../common/T264.h:32,
from ../../encoder/T264.c:51:
../../common/portab.h:120:1: warning: this is the location of the previous definition
creating binary "../bin/t264"
... done
update tag table
/bin/sh: ctags: not found
make: *** [tags] Error 127
解決:安裝ctags http://blog.csdn.net/louis_hwt/article/details/10077011
[email protected]:/home/xyc/sdk-H264/server/h264/avc-src-0.14/avc/build/linux# make
checking dependencies
creating binary "../bin/t264"
... done
update tag table
[email protected]:/home/xyc/sdk-H264/server/h264/avc-src-0.14/avc/build/linux#
編譯程式時,出錯:
/home/xyc/sdk-H264/server/h264/avc-src-0.14/avc/build/obj/T264.o: In function `main':
T264.c:(.text+0x1da8): multiple definition of `main'
server_arm.o:server_arm.c:(.text+0x1674): first defined here
collect2: ld returned 1 exit status
make: *** [server_arm] Error 1
在庫檔案中也定義了個main函式,但不知道怎麼會連線到那個,把這個庫檔案刪了,編譯通過,能否執行,有待測試
編碼過程:
1.建立一個T264_param_t;
2.設定T264_param_t的相關引數;
3.分配buffer記憶體空間;
4.讀一幀資料,用T264_encode編碼一幀資料;
5.寫入檔案,傳送;
解碼過程;
1.開啟解碼器T264dec_open();
2.獲取當前狀態T264dec_parse();
3.如果需要更多資料,則讀更多資料給編碼器;
4.如果一幀解壓好,則處理;
5.關閉T264dec_close();
2.libjpeg庫移植
libjpeg-turbo-1.2.1.tar.gz
libjpeg是使用C語言實現的讀、寫JPEG檔案的庫,
使用libjpeg的應用程式是以"scanline"為單位進行圖象處理的
Allocate and initialize a JPEG decompression object // 分配和初始化一個decompression結構體
Specify the source of the compressed data (eg, a file) // 提定原始檔
Call jpeg_read_header() to obtain image info // 用jpeg_read_header獲得jpg資訊
Set parameters for decompression // 設定解壓引數,比如放大、縮小
jpeg_start_decompress(...); // 啟動解壓:jpeg_start_decompress
while (scan lines remain to be read)
jpeg_read_scanlines(...); // 迴圈呼叫jpeg_read_scanlines
jpeg_finish_decompress(...); // jpeg_finish_decompress
Release the JPEG decompression object // 釋放decompression結構體
tar xzf libjpeg-turbo-1.2.1.tar.gz
cd libjpeg-turbo-1.2.1
./configure --prefix=/work/projects/13.libjpeg/libjpeg-turbo-1.2.1/tmp/ --host=arm-linux
make
make install
F:\國嵌入式收費視訊\高階專案\高階專案SDK[ED2000.COM]\高階專案SDK\SDK-H264\server\h264\avc-src-0.14下
#cd avc/build/linux/
#make //編譯完成後在build/obj目錄下生成.o結尾的目標檔案
#rm T264.o //刪除T264.o目標檔案
出現錯誤;
[email protected]:/home/xyc/sdk-H264/server/h264/avc-src-0.14/avc/build/linux# make
checking dependencies
compiling object file "../obj/T264.o" ...
In file included from ../../encoder/T264.c:51:
../../common/T264.h:36:1: warning: "DECLARE_ALIGNED_MATRIX_H" redefined
In file included from ../../common/T264.h:32,
from ../../encoder/T264.c:51:
../../common/portab.h:120:1: warning: this is the location of the previous definition
creating binary "../bin/t264"
... done
update tag table
/bin/sh: ctags: not found
make: *** [tags] Error 127
解決:安裝ctags http://blog.csdn.net/louis_hwt/article/details/10077011
checking dependencies
creating binary "../bin/t264"
... done
update tag table
[email protected]:/home/xyc/sdk-H264/server/h264/avc-src-0.14/avc/build/linux#
編譯程式時,出錯:
/home/xyc/sdk-H264/server/h264/avc-src-0.14/avc/build/obj/T264.o: In function `main':
T264.c:(.text+0x1da8): multiple definition of `main'
server_arm.o:server_arm.c:(.text+0x1674): first defined here
collect2: ld returned 1 exit status
make: *** [server_arm] Error 1
在庫檔案中也定義了個main函式,但不知道怎麼會連線到那個,把這個庫檔案刪了,編譯通過,能否執行,有待測試
編碼過程:
1.建立一個T264_param_t;
2.設定T264_param_t的相關引數;
3.分配buffer記憶體空間;
4.讀一幀資料,用T264_encode編碼一幀資料;
5.寫入檔案,傳送;
解碼過程;
1.開啟解碼器T264dec_open();
2.獲取當前狀態T264dec_parse();
3.如果需要更多資料,則讀更多資料給編碼器;
4.如果一幀解壓好,則處理;
5.關閉T264dec_close();
2.libjpeg庫移植
libjpeg-turbo-1.2.1.tar.gz
libjpeg是使用C語言實現的讀、寫JPEG檔案的庫,
使用libjpeg的應用程式是以"scanline"為單位進行圖象處理的
Allocate and initialize a JPEG decompression object // 分配和初始化一個decompression結構體
Specify the source of the compressed data (eg, a file) // 提定原始檔
Call jpeg_read_header() to obtain image info // 用jpeg_read_header獲得jpg資訊
Set parameters for decompression // 設定解壓引數,比如放大、縮小
jpeg_start_decompress(...); // 啟動解壓:jpeg_start_decompress
while (scan lines remain to be read)
jpeg_read_scanlines(...); // 迴圈呼叫jpeg_read_scanlines
jpeg_finish_decompress(...); // jpeg_finish_decompress
Release the JPEG decompression object // 釋放decompression結構體
tar xzf libjpeg-turbo-1.2.1.tar.gz
cd libjpeg-turbo-1.2.1
./configure --prefix=/work/projects/13.libjpeg/libjpeg-turbo-1.2.1/tmp/ --host=arm-linux
make
make install