射手播放器 开发指南

出自射手网Wiki

射手播放器 开发指南

在2009年12月3日 (四) 01:37由Michael_He (对话 | 贡献)所做的修订版本
跳转到: 导航, 搜索

目录

编译

编译环境

  • 编译SVN下载的代码必须准备以下编译环境
  • Visual Studio 2008
  • yasm (用于编译libflac等。下载后将exe改名为 yasm.exe 放入PATH路径中,例如 C:\Windows 或者 libflac 目录中)

http://www.tortall.net/projects/yasm/wiki/Download

  • MS Windows Platform SDK (建议使用最新版 即6.1+)

ed2k://|file|Windows.Platform.SDK.6.0.6001.18000.367.KRMSDK_EN.iso|1394618368|3FFC5D877F3D9603320047E108A1DD42|h=C4BCY52SM3XSX5MUYUSZCOSVKY6LXHUF|/

  • DirectX SDK 04年10月版 (因为需要DirectX7兼容代码)

ed2k://|file|dxsdk_2004oct.exe|232472576|A1A7BDE262EE9EADD48BC527E322F74B|h=YY2FGNUDSIRMB7LCFUPKBA3N7LMLP2DV|/

也可直接从Microsoft网站上下载: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=b7bc31fa-2df1-44fd-95a4-c2555446aed4

  • DirextX SDK 最新版

ed2k://|file|DXSDK_Mar09.exe|539195824|4F50D0889920FF3441203D3F85D878B2|h=C2WWIP2FSQGAWTJR3W7EJJWBUTHDSUCO|/

  • TortoiseSVN客户端 (SubWCRev.exe 用于在每次编译时生成revision.h)

http://tortoisesvn.net/downloads

  • Inter C++ Compiler (可选。建议 v11+ , 嵌入VS2008)

下载代码

  • 假设系统中已经安装 TortoiseSVN 客户端
  • 在硬盘上创建一个目录,起个名字例如 “splayer”
  • 在这个目录上点击右键,应该能看到 TortoiseSVN 的 “SVN Checkout” 项目,点击它
  • 在svn远程地址中填写 svn://svn.splayer.org/ 然后确认
  • 等待代码下载完毕即可

开始编译

  • 启动Visual Studio 2008后,打开项目src目录中的主sln项目文件。(首次打开时可能会提示缺少一些vcprj文件,忽略即可)
  • 注意刚刚安装的SDK应该在VS2008的相关环境include和lib路径中 (菜单 -> Tools -> Options -> Projects and Solutions -> VC++ Directories -> Include Files / Library Files)
  • 编译类型选择Release Unicode
  • 在 mplayerc 的项目属性中(project properties)
  • 注意 Build Event -> Per-build event 中生成 revision.h 的脚本,需要的可执行程序位置(C:\Program Files\TortoiseSVN\bin\SubWCRev.exe)应该与TortoiseSVN客户端实际安装的位置一致
  • 开始 Build mplayerc

常见问题

  • 编译时提示缺少 xxxxxx.lib 文件

  解决: 大部分lib文件都应该位于代码树的 /lib 目录中,如果误删除了,可以通过 svn update 获取

  • 编译时提示 error C1047 : The object or library file '......' was created with an older compiler than other objects; rebuild old objects and libraries

  解决: 进入项目属性,关闭 Whole Program Optimize 项目

  • 编译时提示缺少 xxxxx 文件

  解决:搜索/include目录看看。当然,有些时候可能只是清理代码后忘记从项目中删除该文件的链接,手动清除一下即可。有些时候可能只是忘记了commit新的文件~~ ^_^

加入开发

  • 参考阅读 射手播放器开发计划 TODO表 选择一个开发方向
  • 对代码作出你的修改
  • 使用 SVN 客户端的 Create Patch 功能创建 Patch 文件 (该Patch文件包含你作出的修改,也是一个考核标准)
  • 将Patch文件通过Email发送到 tomasen@gmail.com 或 splayer.dev@qq.com ,别忘了留下你的联系方式
  • 如果Patch通过评估,将会被合并入当前代码树。
  • 提交Patch并有兴趣加入核心开发的朋友,可以获得 SVN commit权限和密码

高级编译

更改和优化 。。。(待补充)


项目模块简介

主界面和功能

mplayerc项目下的Mainfrm.cpp是主界面的启动位置

渲染器

mplayerc项目下的 DX7 / DX9AllocatorPresenter.cpp

解码器

filters -> transform -> mpcvideodec

为什么一些项目只有类库但没有源码

  • 射手播放器诞生以来,违反GPL授权协议的,对射手播放器代码抄袭行为不断。其中有一些老牌的所谓播放器,甚至还包括非常非常知名的大公司。面对国内GPL维权无门,各方对开源协议的肆意践踏,射手播放器只好少许保护一下自己,对部分原创的扩展组件暂不向公众直接展示源码。部分源码开放规则还在策划中以适应中国的法律规则。走例如Zend之于php的道路。
赞助商链接:
个人工具