`
iihero
  • 浏览: 259917 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

好久没有关注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]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} --><!--[if gte mso 10]> <mce:style><! /* 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;} --> <!--[endif]-->

1. deccs

2. dsutil

3. ui

4. subpic

5. subtitles

6. filters (for mpc only build those configurations which output a lib, the rest outputs stand-alone filters)

7. apps\mplayerc

 

需要修改的内容:

1subtitles

guliverkli\src\subtitles\CCDecoder.cpp

' ','!','"','#','$','%','&','\'','(',')','?','+',',','-','.','/', //lsp

将 '? 全局替换成 '?' 。
源代码也要作若干改动。

俺使用的是2003版的DirectxSDKa9. 它的baseclass工程使用的是VC6代码格式,需要改动几个文件。

另外,

<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><! /* 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;} --> <!--[endif]-->

(a) winnt.h

d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h

在该文件头部添加:

#define POINTER_64 __ptr64// add by peter lee

 

(b) vmr9.h

D:\DXSDK\Include\vmr9.h

MixerPref9_RenderTargetRGB = 0x1000,

MixerPref9_RenderTargetYUV = 0x00002000, //lsp add

 该份源码使用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视频的截图:




分享到:
评论

相关推荐

    mpc-hc播放代码

    VS2013上已经编译通过的 mpc-hc 代码,花费了我3天的时间,从官网下载,编译,解决 bug 。编译方法: 1. 从 http://xhmikosr.1f0.de/tools/msys/MSYS_MinGW-w64_GCC_492_x86-x64.7z 下载 msys 2. 在 msys\etc 找到...

    MPC-HC.1.9.6.21.x64_player_mpc-hc_

    标题"MPC-HC.1.9.6.21.x64_player_mpc-hc_"指的是Media Player Classic - Home Cinema(MPC-HC)的64位版本,这是一个开源的媒体播放器,版本号为1.9.6.21。这个软件专为Windows操作系统设计,主要用于播放各种...

    MPC-HC源码(含所有第三方库)part1

    可以直接用vs2008编译。内含所有第三方库。如果错误比较多,建议搭建windows下的gcc环境。

    MPC播放器 MPC-BE v1.5.6.5743中文版

    为您提供MPC播放器 MPC-BE下载,最强的播放器MPC-HC没落了,MPC-BE来了。mpc-be 是从mpc-hc分离出来的,以俄国程序员主打,重新编译优化的版本,解码器不同,界面也多有美化。MPC-BE在保留所有特点的基础上花功夫改进...

    最新 MPC-HC,MPC-BE,编译需要的 MSYS_MinGW-w64_GCC_720_x86-x64.7z

    最新 MPC-HC,MPC-BE,编译需要的 MSYS_MinGW-w64_GCC_720_x86-x64.7z

    MPC播放器 MPC-BE v1.5.6.5542中文版

    为您提供MPC播放器 MPC-BE下载,最强的播放器MPC-HC没落了,MPC-BE来了。mpc-be 是从mpc-hc分离出来的,以俄国程序员主打,重新编译优化的版本,解码器不同,界面也多有美化。MPC-BE在保留所有特点的基础上花功夫改进...

    mpc-1.1.0.tar.gz

    4. 编译源码: ```bash make ``` 5. 安装到系统路径: ```bash sudo make install ``` **使用mpc编译Caffe** 要使用mpc编译Caffe,你可能需要在Caffe的Makefile配置文件中指定mpc库的路径,并链接mpc。具体...

    mpc-hc 源码(1/2)

    最新的mpc源码,可以使用vs2008编译。 支持 unicode. 和 VISTA。 功能非常强大。里面具有非常完善的视频解决源码组件。 非常好的学习资料。 (共28M,分2个传)

    mpc-1.2.0.tar.gz

    在IT行业中,我们经常遇到各种各样的开源软件和工具,其中MPC(Media Player Classic)是一款广泛使用的媒体播放器,而“mpc-1.2.0.tar.gz”则是该软件的一个特定版本的源代码压缩包。本文将深入探讨MPC及其1.2.0...

    gmp-isl-mpc-mpfr

    标题 "gmp-isl-mpc-mpfr" 指涉的是四个开源软件库,它们在计算机科学,特别是计算领域扮演着重要角色,尤其是在编译GCC(GNU Compiler Collection)时是必需的组件。让我们逐一深入探讨这些库的详情。 1. **GMP ...

    经典本地影音播放器支持mp4,mp3等

    MPC-BE(Media Player Classic Black Edition)是来自 MPC-HC(Media Player Classic Home Cinema)的俄罗斯开发者重新编译优化后的一款经免费的经典全能影音播放器,纯净无广告,启动速度快,占用消耗低,支持解码...

    mpc-0.8.1 mpfr-2.4.2 gmp-4.3.2 全都有

    在提供的压缩包中,虽然没有具体的子文件列表(仅显示为"pmm"),但可以推测其中可能包含了这三个库的源码或者预编译二进制文件,用户可以通过这些文件来安装和配置GCC 4.8的扩展,以充分利用这些高性能的数学运算库...

    MPC-1249(Media Player Classic)源代码 编译通过

    **Media Player Classic (MPC) 是一款经典的媒体播放器,其源代码的第1249...通过获取源代码并进行编译,用户可以进一步探索播放器的内部运作,同时也可以根据自己的需求进行个性化开发,这体现了开源软件的强大魅力。

    gmp-4.3.2.tar.bz2+mpfr-2.4.2.tar.bz2+mpc-0.8.1.tar.gz

    标题中的"gmp-4.3.2.tar.bz2+mpfr-2.4.2.tar.bz2+mpc-0.8.1.tar.gz"表示的是三个不同的开源软件库的压缩包,它们分别是GMP(GNU Multiple Precision Arithmetic Library)、MPFR(Multiple Precision Floating-Point...

    gcc4.8.2+mpc-0.8.1.tar.gz+gmp-4.3.2.tar.bz2+mpfr-2.4.2.tar.bz2

    标题中的“gcc4.8.2+mpc-0.8.1.tar.gz+gmp-4.3.2.tar.bz2+mpfr-2.4.2.tar.bz2”表明了这是一个关于构建GCC(GNU Compiler Collection)4.8.2版本的流程,其中涉及到的依赖库包括GMP(GNU Multiple Precision ...

    mpc-0.9.tar

    MPC库与GCC的关系在于,如果你在编译GCC或者其他需要处理复数运算的项目时,可能需要MPC作为编译时的依赖。"了空间撒反对了看见爱上水井坊大陆架卡萨东方丽景"这部分描述看似与主题无关,可能是输入错误或者拼写混乱...

    编译原理OJ-语义分析及目标代码生成c++源码.zip

    编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及...

    mpc-0.8.1.tar.gz

    总之,`mpc-0.8.1.tar.gz` 是一个用于提升GCC性能和精度的软件包,通过更新MPC库,可以确保GCC在处理复数和浮点运算时更加准确,从而提高整体编译结果的质量。正确安装和使用这个包对于GCC的使用者来说是至关重要的...

    gcc安装依赖包mpfr-2.4.2.tar.bz2、mpc-0.8.1.tar.gz、isl-0.14.tar.bz2、gmp-4.3.2.tar

    gcc安装依赖包mpfr-2.4.2.tar.bz2、mpc-0.8.1.tar.gz、isl-0.14.tar.bz2、gmp-4.3.2.tar

    Linux源码编译ARM进阶-at91sam9x25说明.pdf

    Linux源码编译ARM进阶-at91sam9x25说明

Global site tag (gtag.js) - Google Analytics