概述
snappy
对应ffmpeg configure选项–enable-libsnappy。
快速压缩库,注重速度。
msys编译
其没有对应的vs工程,用git bash下载代码:git clone https://github.com/google/snappy.git。其代码里面没有说明如何编译在msys下编译命令:
mkdir msys_build; ./configure --prefix=$(pwd)/msys_build; make; make install
编译出来的.a文件有问题,在configure ffmpeg的时候报下面的错误:
libsnappy.a(snappy.o) : fatal error LNK1143: 无效或损坏的文件:
没有 COMDAT 0x14 节的符号
这个错误没有找到原因,可能是需要用lib工具转换一下,这个未作测试:
lib
/machine:ix86
/def:xxx.def
/out:xxx.lib
vs2013编译
从snappy的编译打印看,snappy的库文件只包含4个文件,所以直接用vs2013编译。创建一个新的Win32 Console Application,工程设置为空,将snappy.cc、snappy-c.cc、snappy-sinksource.cc、snappy-stubs-internal.cc加入工程。HAVE_CONFIG_H加入宏定义中,config.h里面需要修改,将:
#define HAVE_BUILTIN_CTZ 1
#define HAVE_BUILTIN_EXPECT 1
改成:
#ifdef WIN32
#else
#define HAVE_BUILTIN_CTZ 1
#endif
/* Define to 1 if the compiler supports __builtin_expect. */
#ifdef WIN32
#else
#define HAVE_BUILTIN_EXPECT 1
#endif
将输出的文件名改成snappy.lib。编译成功后就可以configure ffmpeg了。
soxr
对应ffmpeg configure选项–enable-libsoxr。
从https://sourceforge.net/projects/soxr/files/上下载soxr-0.1.2-Source.tar.xz。
soxr是重采样的库。
源代码下有soxr-0.1.2-Sourcemsvclibsoxr.vcproj,MSVC2013建立个空的解决方案libsoxr.sln,手动加入libsoxr.vcproj再编译。
speex/speexdsp
对应ffmpeg configure选项–enable-libspeex。
从官网上下载speex-1.2rc2、speexdsp-1.2rc3,两个模块的编译都在speex-1.2rc2win32VS2013libspeex.sln里面(原本是VS2010,目录改成VS2013),将speexdsp-1.2rc3里面的工程都包含进来。
最后
以上就是踏实草莓为你收集整理的vs2013编译ffmpeg之二十八 snappy、soxr、speexsnappysoxrspeex/speexdsp的全部内容,希望文章能够帮你解决vs2013编译ffmpeg之二十八 snappy、soxr、speexsnappysoxrspeex/speexdsp所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复