移植FFMPEG到VS2008系列之二

前面我們已經把文件重命名了,準備好了代碼之後就是把代碼添加到vs2008開發環境中來。

3. 創建工程添加文件。

    創建新的空的控制檯工程,把所有的文件都添加進來。有幾個文件夾下面的文件不用添加,主要有compat,libavdevice,tools。要注意的是子目錄x86下面的c文件也需要添加進來。

      

    上圖之中test文件夾裏面有些文件是自己添加的,它們是config.h, ffmpeg_init_av_pix_fmt_descriptor.c,g_var_func_init.c

    添加完文件之後,不要編譯,因爲編譯會佔用較長時間,而且會有成千上萬的錯誤。

4. 完善config.h文件

    這兩個文件stdint.h ,inttypes.h 在工程中是沒有的,全部替換爲config.h, 在config.h, 進行數據類型的重定義,主要如下:



typedef char int8_t;
typedef unsigned char uint8_t;
typedef short int16_t;
typedef unsigned short uint16_t;
typedef int int32_t;
typedef unsigned int uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;


#define PRIi8	"i"
#define PRIx8   "x"
#define PRIx16	"x"
#define PRIx32	"x"
#define PRId64	"d"
#define PRIu32	"u"
#define PRIu16	"u"
#define PRIu64  "u"
#define PRIx64	"x"
#define PRIX64  "X"
#define SCNd64	"d"
#define SCNd32	"d"
#define PRIi64  "i"
#define PRIi32	"i"
#define PRIi16  "i"

#define INT16_MAX		 (int16_t)32767
#define INT16_MIN		 (int16_t)-32768
#define  UINT16_MAX		 (uint16_t)65535
#define  INT32_MAX		(int32_t)0x7FFFFFFF
#define  INT32_MIN		(int32_t)0x80000000
#define  INT64_MAX		(__int64)0x7FFFFFFFFFFFFFFF
#define  INT64_MIN              (__int64)0x8000000000000000
#define  UINT32_MAX		(uint32_t)0xFFFFFFFF
#define  UINT64_MAX	     (uint64_t)0xFFFFFFFFFFFFFFFF

#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)


config文件的其它部分主要是一些對codec,mux,demux,filter等配置的宏定義,這一部分太多,不便列出。有一個方法可以比較容易的寫出。就是排除完所以編譯錯誤會出現很多的鏈接錯誤,這些鏈接錯誤很多是說對某個codec的配置找不到的錯誤,把這些所有的錯誤copy下來,在複製到config當中,就可以一次搞定所有的codec,mux,demux,filter等配置宏定義。


  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章