Update: 2009/12/23
最新版本的mpc-hc已经不存在DirectX SDK的版本依赖关系了,可以使用最新的DirectX SDK(August 2009),不需要修改任何代码直接编译通过。因为DirectX SDK里面不存在的头文件,mpc-hc已经在项目中主动提供了。
所以下面关于DirectX 7的一些hack,目前已经不需要,如何编译最新的mpc-hc,请参照如下官方链接:
http://sourceforge.net/apps/trac/mpc-hc/wiki/How_to_compile_the_MPC
由于我用到的gcc不是官方编译版本,需要做如下一个小的补丁:
Index: src/filters/transform/mpcvideodec/MPCVideoDec.vcproj
===================================================================
--- src/filters/transform/mpcvideodec/MPCVideoDec.vcproj (revision 1443)
+++ src/filters/transform/mpcvideodec/MPCVideoDec.vcproj (working copy)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="MPCVideoDec"
ProjectGUID="{58E36BF5-4A06-47E4-BD40-4CCEF8C634DF}"
RootNamespace="MPCVideoDec"
@@ -474,7 +474,7 @@
Name="VCLibrarianTool"
LinkLibraryDependencies="true"
AdditionalOptions="/IGNORE:4221"
- AdditionalDependencies="libavcodec_gcc.lib libgcc.a libmingwex.a"
+ AdditionalDependencies="libavcodec_gcc.lib libgcov.a libgcc.a libmingwex.a"
OutputFile="../../../../lib/$(ProjectName)RU.lib"
AdditionalLibraryDirectories="../../../../lib"
/>
在此顺便提一下最近一段时间非常搞笑的射手播放器鄙视腾讯的QQ影音的闹剧: 射手播放器的开发者SS公开指责腾讯的QQ影音的无耻抄袭其自动加载字幕的功能,试图将自己塑造成一个开源受害者的形象,到最后搬起石头砸了自己的脚。因为:
1) 射手自己也是在公然强奸mpc-hc的GPL协议,射手的一些所谓的关键代码并没有开源
2) 射手对外公开的那个svn, 是没法编译的,因为其故意将一些头文件或者library不放到svn上,使得别人无法编译svn的代码
关于2) 我半年前就单独通过mail和其开发者SS联系过,其承认一些代码没有开放出来!
所以说射手的所谓的开源口号只是个幌子,是用来进行宣传,并欺骗一些无知者的伎俩而已。
虽然射手后来为了表明自己的开源的决心将某些代码放出来了,但其在某些代码上还是故意做了手脚,真无聊啊!
声明:我在此指责射手的做法并不表明我支持腾讯的QQ影音,相反,我是从心底鄙视腾讯的无耻行径的。一个公司全靠抄起家,并能成为中国最赚钱的互联网公司之一,这也只有在中国这个神奇的土地上才能存在的神奇现象了。
-----------------------------------------------------------------
由于DirectX SDK 不同版本之间有较大影响,编译最新的MPC-HC最好用DirectX SDK 2007的版本,但我不想将我目前的最新的DirectX SDK卸载掉,直接使得我需要做如下修改才可以编译成功!
欢迎到 http://NextPlayer.net来进行交流
Index: mpc-hc.sln
===================================================================
--- mpc-hc.sln (revision 1164)
+++ mpc-hc.sln (working copy)
@@ -279