一、源码修改
1. 从http://d.download.csdn.net/down/2104626/yalexiaoqiang 下载FFMPEG-0.5
2. 在源码中搜索如下关键字: abort()
文件libavcodec/bitstream.c
函数
static int alloc_table(VLC *vlc, int size, int use_static)
if(use_static>1)
{
int* pInt = NULL;
*pInt = 5;
return -1;
abort();
//cant do anything, init_vlc() is used with too little memory
}
文件libavcodec/bitstream.c
函数
int init_vlc_sparse
else if(vlc->table_size){
int* pInt = NULL;
*pInt = 5;
return 0;
abort(); // fatal error, we are called on a partially initialized table
}
文件libavcodec/mpegvideo.c
函数
int ff_find_unused_picture
int* pInt = NULL;
*pInt = 5;
return -1;
abort();
文件libavcodec/shorten.c
函数
static
void init_offset(ShortenContext *s)
int* pInt = NULL;
*pInt = 5;
return -1;
abort();
3. 由于abort()导致系统提示"运行时错误",所以需要在abort调用之前返回,不允许调用此函数。
二、源码编译
1. 配置交叉编译环境MinGW + msys
可以从http://sourceforge.net/下下载集成安装包,或在csdn下下,在安装的时候肉络连接情况一定要好,不然装的会很不顺利
2. 运行msys 控制台程序.
3. 切换到FFMEPG源代码目录(命令同LINUX)
4. 运行./configure,参数如下:
./configure --enable-memalign-hack --extra-cflags=-fno-common --disable-decoders
--disable-encoders --disable-muxers --disable-demuxers --disable-parsers --disable-protocols
--disable-bsfs --disable-devices --disable-filters --disable-network --disable-ipv6
--disable-mpegaudio-hp --enable-decoder=h264 --enable-decoder=mjpeg
--enable-decoder=aac --enable-w32threads --disable-debug
5. 然后在运行make即可.
6. 拷贝目标文件
libavcodec.a
libavutil.a
上述两个文件为静态库文件,拷贝到SDK的源代码目录ffmpeg0.5/lib。
//ffmpeg/ffplay vc6 源码剖析
http://www.cnblogs.com/mcodec/articles/1933754.html