您的位置:首页 > 其它

自己动手编译播放器MPC-HC的源码

2009-05-19 21:28 316 查看
好久没有关注MPC(Media Player Classic)的源码了。几年前,暴风影音不带广告和捆绑插件时,曾经用过,感觉不错。可是现在这个影音绑了一堆无用的东西,总是不怎么干净。于是干脆自己下了源码,试着编译一下。把它放到了我的下载里头了。 http://iihero.download.csdn.net/ 里头应该能找到。


总共下了三份源码:
1. https://guliverkli.svn.sourceforge.net/svnroot/guliverkli 这个是最早的MPC源码了,作者gabest于 2006.04停止更新
编译顺序如下:<!--[if gte mso 9]><![endif]--><!--[if gte mso 9]><![endif]--><!--[if gte mso 10]><! /* Style Definitions */ table.MsoNormalTable{mso-style-name:普通表格;mso-tstyle-rowband-size:0;mso-tstyle-colband-size:0;mso-style-noshow:yes;mso-style-parent:"";mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-para-margin:0cm;mso-para-margin-bottom:.0001pt;mso-pagination:widow-orphan;font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:"Times New Roman";mso-ansi-language:#0400;mso-fareast-language:#0400;mso-bidi-language:#0400;}-->1. deccs2. dsutil3. ui 4. subpic5. subtitles6. filters (for mpc only build thoseconfigurations which output a lib, the rest outputs stand-alone filters)7. apps/mplayerc 需要修改的内容:1、subtitlesguliverkli/src/subtitles/CCDecoder.cpp ' ','!','"','#','$','%','&','/'','(',')','?','+',',','-','.','/',//lsp 将 '? 全局替换成 '?' 。
源代码也要作若干改动。俺使用的是2003版的DirectxSDKa9. 它的baseclass工程使用的是VC6代码格式,需要改动几个文件。另外,<!--[if gte mso 9]><![endif]--><!--[if gte mso 9]><![endif]--><!--[if gte mso 10]><! /* Style Definitions */ table.MsoNormalTable{mso-style-name:普通表格;mso-tstyle-rowband-size:0;mso-tstyle-colband-size:0;mso-style-noshow:yes;mso-style-parent:"";mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-para-margin:0cm;mso-para-margin-bottom:.0001pt;mso-pagination:widow-orphan;font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:"Times New Roman";mso-ansi-language:#0400;mso-fareast-language:#0400;mso-bidi-language:#0400;}-->(a) winnt.hd:/Program Files/Microsoft Visual Studio8/VC/PlatformSDK/include/winnt.h 在该文件头部添加:#define POINTER_64 __ptr64 // add bypeter lee (b) vmr9.hD:/DXSDK/Include/vmr9.h MixerPref9_RenderTargetRGB = 0x1000,
MixerPref9_RenderTargetYUV = 0x00002000, //lspadd
 该份源码使用VS2005编译。基本还算顺利。

2. http://sourceforge.net/projects/guliverkli2/ 这份代码是第1份的维护版本,编译起来相对方便。整个就一个大工程。先把baseclasses编译好,再编译余下的。

可是1和2编译出来的mpc,功能还是不全。连个flv文件都播放不了。于是我又尝试编译3。要准备的东西就多了。

3. https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk 我准备的有:
1. VS2008标准版
2. 重新下载了SDK for vista
http://www.microsoft.com/downloads/details.aspx?FamilyID=4377f86d-c913-4b5c-b87e-ef72e5b4e065 安装完以后,发觉并不完全可用。
3. DirectX9c (2007版)
http://www.microsoft.com/downloads/details.aspx?FamilyID=529f03be-1339-48c4-bd5a-8506e5acf571 弄完之后,header路径和lib路径也按要求设置完毕,编译就是死活过不去。
同样,按照上边的改改winnt.h。
最后,只差一点了,就是SDK for vista中缺少MDAC相关头文件,建议把VS2008自带的6.0a的sdk头文件中的mdac部分拷一部分过来。
另外,VS2008中缺少ATL_server相关头文件。可以从:
http://atlserver.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=3754 下一份。放到单独的目录里边,再设置好相应的header路径。

于是乎,build完毕。kao, sourceforge上或者源码里头的readme写得可是不够仔细。让人一顿摸索。建议学习或者摸索MPC相关源码的朋友把directx 从2003a到2009March的所有版本打包,platform_SDK从XP_sp2到SDK2008也都打包,放到一起,这样可以很方便的组合在一起。

搞了半天,我就是想弄个flash视频播放的东东。下边是flv视频的截图:










内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: