博客日历
2024年11月 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 七 |
28 | 29 | 30 | 31 | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 1 |
存档
2024年03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
Emiplib 1.1.0的编译
下载地址:
http://research.edm.uhasselt.be/emiplib/emiplib.html
相关文件如下(2011年8月9日) :
emiplib-1.1.0.zip
jrtplib-3.9.0.zip
jthread-1.3.0.zip
ffmpeg-git-6e19cfb-win32-dev.7z
speex-1.2beta3-win32.zip
Emiplib 1.1.0使用了CMake作为构建工具,需要首先安装CMake: http://www.cmake.org/
下图是CMake的GUI工具,使用方法很简单:
选择包含CMakeLists.txt文件的源码位置(Where is the source code)
选择CMake解析CMakeLists.txt后生成的文件路径(Where to build the binaries)
单击“Configue”,选择目标平台,再填写其他相应变量的值(这里尤其要注意的是,路径中不要包含空格)
单击“Generate”,生成相应平台的项目文件或Makefile(本文中使用的是VS2008)
首先解压缩这些文件,目录结构如下:
1.编译jthread
用CMake生成jthread.sln并用VS2008编译,编译之后将在D:\EMIPLIB\jthread目录下生成include,lib等文件。
CMake变量CMAKE_INSTALL_PREFIX指定了jthread的include,lib等文件的部署位置(再次强调,路径中不可以有空格),这里设置为:“D:/EMIPLIB/jthread”。
2.编译jrtplib
方法同上,CMAKE_INSTALL_PREFIX设置为:“D:/EMIPLIB/jrtplib”。
3.编译emiplib
方法同上,CMAKE_INSTALL_PREFIX设置为:“D:/EMIPLIB/emiplib”。
选中如下选项:
EMIPLIB_SUPPORT_AVCODEC
EMIPLIB_SUPPORT_DIRECTSHOW
EMIPLIB_SUPPORT_QT3
EMIPLIB_SUPPORT_SPEEDX
EMIPLIB_SUPPORT_WINMM
注意:
编译emiplib之前,需要安装QT3,本文使用的是QT3.3.4。
还需安装DirectX SDK(需要其中的DirectShow)。
另外还需要在VC++中设置ffmpeg,speex,QT的头文件,库文件路径。
对于示例程序avsession,需要加入如下依赖库:
amstrmid.lib
avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swscale.lib
几个编译错误的处理:
libavutil\common.h(31) : fatal error C1083: 无法打开包括文件:“inttypes.h”
打开common.h,删除#include <inttypes.h>
error C3861: “UINT64_C”: 找不到标识符
打开common.h,顶部添加:
#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif
fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory
删除相关的#include <stdint.h>即可
fatal error C1083: 无法打开包括文件:“dxtrans.h”
这个问题是微软的bug?!
可以使用Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include目录下的此文件。
error LNK2001: 无法解析的外部符号_speex_uwb_mode
用speex_lib_get_mode(SPEEX_MODEID_UWB)系列函数代替。
&speex_nb_mode替换为speex_lib_get_mode(SPEEX_MODEID_NB)
&speex_wb_mode替换为speex_lib_get_mode(SPEEX_MODEID_WB)
&speex_uwb_mode替换为speex_lib_get_mode(SPEEX_MODEID_UWB)
2011年8月25日:
去掉了QT相关的东西,改用Win32的StretchDIBits输出图像(MIPWin32Output)。
分类:Win32/C++ 查看次数:13308 发布时间:2011/8/9 14:15:54