主要环境:(参考附件)
1.windows sdk v6.1,官方文档里的新版SDK没试过。
2.VS2008+sp1+atl安全补丁(一定要先装WINDOWS sdk再装vs2008,否则二者冲突,编译出错报_Swap_adl,这是VS开发组的BUGhttp://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/4bc93a16-4ad5-496c-954c-45efbe4b180b)
3.directx 2010 Feb版,安装好后配置VS里的include和lib
4. Alexins's Cross-Mingw base 和Alexins's Cross-Mingw.GCC Core,参见官方文档设置,注意fstab文件
5.建立环境变量
6. 使用TortoiseSVN 下载 mpc-hc源码:source-forge里mpc-hc tags 文件夹下release_v1_3_1249_0,内有一个旧的编译说明
7.编译文档里没有提到要给VS添加C:/mingw_msys/msys.450x64v2/bin和C:/mingw_msys/msys.450x64v2/mingw/bin
我没添加时会报找不到yasm.exe和gcc的错误。添加后OK
主要步骤与问题
1.生成version.h
打开cmd,输入 "C:/Program Files/TortoiseSVN/bin/SubWCRev.exe" c:/mpc/ c:/mpc/include/SubWCRev.conf c:/mpc/include/Version.h
换成自己的目录即可
2.直接copy C:/mingw_msys/msys.450x64v2/mingw/lib/gcc/i686-pc-mingw32/4.5.0/ibgcc.a到源代码目录下的lib文件夹
3.修改src/subtitles/CCDecoder.cpp 的static WCHAR charmap[0x60] 数组‘? 换为 ’?’.也有说用ultraedit保存为UTF8格式的,我没试过。
4.设置MPCVideoDec 的库环境
5.开始编译。
注意:
选择debug or release是对生成的程序有区别的.
release版即最后发布的版本,正常
但debug版效率很低,播放高清视频时会卡,揪其原因是因为编译过程中debug版调用libavcodec工程,而release版调用libavcodec_gcc.效率是不同的.
参考资料
1.http://hi.baidu.com/cobala/blog/item/f61038ea04b585d4d439c94d.html/cmtid/338af608a04ce23ce824884c
2.http://blog.csdn.net/iihero/archive/2009/05/19/4202300.aspx
3.http://beatricesmth.blog41.fc2.com/?tag=MPC-HC
附件:官方编译文档立此存照
How-to compile MPC-HC
Part A: Preparing the Visual Studio environment.
1. Install Visual C++ 2008 (part of the Visual Studio package downloadable here:
<URL: http://msdn.microsoft.com/en-us/evalcenter/bb633753.aspx).
Note: Express edition won't work (it's missing MFC, which MPC-HC uses).