跳到内容

Kdenlive/开发者手册

来自维基教科书,一个开放的世界中的开放书籍

(此页面只是一个框架,其中包含许多括号中的注释,这些注释是指示今天晚些时候进一步重写的提示;请不要在 2008-04-25 之前对它的内容提出投诉 :) )

此页面面向希望偶尔或作为 Kdenlive 开发者为 Kdenlive 贡献代码的人员。

目标受众

[编辑 | 编辑源代码]

本手册面向仅对进行有限数量的特定修复感兴趣的偶尔贡献者,以及愿意在(或多或少)定期基础上处理错误追踪器条目的常规开发者

贡献者和开发者需要的设置相同,他们必须

  • 安装 svn;
  • 通过 svn 使用最新的 kdenlive 源代码;
  • 拥有所有所需库的开发版本(至少是头文件,可能还有源代码);
  • 订阅 kdenlive devel 邮件列表

开发者还需要

  • 一个有效的 sourceforge.net 帐户(需要注册为 kdenlive 开发者)
  • 一个 kdenlive 开发者帐户(由项目管理员授予)

获取 Kdenlive 源代码

[编辑 | 编辑源代码]

可以使用 kdenlive svn 的 svn Web 界面检索 Kdenlive 源代码:http://kdenlive.svn.sourceforge.net/ 检查 kdenlive 的 kde3 版本 kde4 版本(现在大部分工作都在这里完成)

svn co https://kdenlive.svn.sourceforge.net/svnroot/kdenlive/branches/KDE4

警告 : 针对 kde3 的 kdenlive 将不再维护,因此您需要安装一个最小的 KDE4 环境。

另请参阅 获取和安装 Kdenlive

第一次

cd <somedir>
svn co ...

下次

cd <somedir>kdenlive (make sure people notice it's <somedir>/kdenlive, not <somedir>)
svn update

当您的修改与 svn 版本冲突时,请解决它(使用 svn resolve 的示例)或在 Google 上搜索“svn resolve

(添加关于开发者当前修改相对于 svn 更新的说明:何时手动合并,如何合并)

创建 Kdenlive 补丁

[编辑 | 编辑源代码]

对于单个文件,请使用文件的完整路径运行“svn diff”。示例

 svn diff kdenlive/krender.cpp

您可以一次比较多个文件

 svn diff 'file1.cpp file2.cpp ...'

您可以一次比较整个目录

 svn diff 'directory' 

以创建补丁文件

 svn diff kdenlive/krender.cpp  > my-first.patch

当然,您可以混合匹配,例如为一堆文件和目录创建单个补丁;但补丁越大,人们就越难审查它。作为一项指南,补丁应该只包含与单个问题相关的修改。如果您的本地源代码树包含多个问题的修改,请为每个问题制作一个补丁。

提交 Kdenlive 补丁

[编辑 | 编辑源代码]

偶尔贡献者必须将补丁提交到 devel 邮件列表(http://sourceforge.net/mail/?group_id=46786)以供审查和包含。

开发者可以直接提交 svn 更改。

IRC 聊天

[编辑 | 编辑源代码]

如果您有疑问或提示,可以尝试在 #kdenlive-dev 上询问,如果开发者在场。

特定平台的开发者说明

[编辑 | 编辑源代码]

贡献者和开发者:随时更新/添加特定平台的说明。

Mandriva 2008.1 (Spring) x86_64

[编辑 | 编辑源代码]

截至 2008-04-24,Mandriva 2008.1/x86_64 提供 MLT(++) 版本 0.2.5,但开发库仍然是版本 0.2.2,这对于 kdenlive 来说太旧了!这意味着在 Mandriva 2008.1/x86_64 上的 kdenlive 开发者还必须通过 SVN 获取 MLT 并将其在本地编译(添加关于如何将用户生成的 MLT(++) 库用于 kdenlive 调试,同时保留生产库和 kdenlive 不变的详细信息)。

Mdv2008.1 的 ffmpeg 也缺少 swscale 支持(除了其他内容),因此它也可以从重新编译中受益。

  • 在 Mdv2008.1/x86_64 上获取和配置 ffmpeg
 svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

我从 Mdv2008.1/x86_64 ffmpeg 设置和 [[Kdenlive/Getting_and_installing|获取和安装 Kdenlive] 页面合并的 ./configure 设置中获得了我的 ./configure 设置,其中包含以下值得注意的要点

  • 强制将 --shlibdir 设置为 /usr/lib64,否则动态库最终会出现在 /usr/lib 中。
  • 强制将 --incdir 设置为 /usr/include,否则 pkg-config 文件(*.pc)将包含一个非法的“$PREFIX”。
  • 禁用静态库,因为它们没有用。
  • 删除了 libogg 和一些其他 ffmpeg 不再识别的库。
  • 将 --enable-pp 更改为 --enable-postproc,并将 --enable-swscaler 更改为 --enable-swscale。
 ./configure --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include --enable-shared --disable-static --enable-liba52 --enable-postproc --enable-gpl --enable-pthreads --enable-libnut --enable-libtheora --enable-libvorbis --enable-x11grab --enable-libmp3lame --enable-libfaad --enable-libfaac --enable-libx264 --enable-libxvid --enable-libamr_nb --enable-libamr_wb --enable-swscale --enable-nonfree

make 和 make install 步骤在我看来进行得很好。新安装的 ffmpeg 和库似乎可以正常工作。 :)

  • 在 Mdv2008.1/x86_64 上获取和配置 mlt
 svn co https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt mlt

根据建议的配置设置,我启用了 mmx(没有理由不支持它),使用了 --avformat-shared(使用我刚安装的 ffmpeg 库),并禁用了 frei0r(在我的系统上不可用)、gtk2(我不使用 Gtk)、jackrack(我不使用 jack)和 qimage(由于某种原因,如果我保持启用状态,它无法找到一些 qt-mt 库;也许这是 KDE3 与 KDE4 的问题;我仍然使用 KDE3)。

 ./configure --prefix=/usr --libdir=/usr/lib64 --enable-gpl --avformat-shared --enable-motion-est --disable-frei0r
 --disable-gtk2 --disable-jackrack --disable-qimage

同样,make 和 make install 进行得很好。

  • 在 Mdv2008.1/x86_64 上获取和配置 mlt++
 svn co https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt++ mlt++

我只需要确保库目录是 /usr/lib64(默认情况下将是 /usr/lib)。

 ./configure --libdir=/usr/lib64

同样,make 和 make install 进行得很好。


  • 在 Mdv2008.1/x86_64 上获取和配置 Kdenlive
 svn co https://kdenlive.svn.sourceforge.net/svnroot/kdenlive/trunk/kdenlive

...

Fedora 10 (Cambridge) x86_64

[编辑 | 编辑源代码]

这与 Mandriva 安装非常相似,因此我只是从上面进行了一些剪切粘贴。从 Fedora 7 开始,我无法编译/使用 kdenlive。今天我在 Fedora 10 预览版上做到了,这些是我遵循的步骤 (意大利语翻译)

  • 操作系统和存储库

由于 Fedora 10 仍然是预览版,因此找到最新的存储库并不奇怪:然后我遇到了全新的 RpmFusion 存储库,其中包含几乎所有需要的依赖项。

  • 已安装的开发包
 yum install cmake kdelibs-devel ladspa-devel libdv-devel libsamplerate libquicktime-devel libtheora-devel
 jack-audio-connection-kit-devel jack-rack soprano-devel libmad-devel faad2-devel faac-devel lame-devel lame-libs 

也许我错过了很多其他...

  • 获取和配置 ffmpeg
 svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
 cd ffmpeg
 ./configure --enable-gpl --enable-shared --enable-pthreads --enable-libmp3lame --enable-libfaac --enable-libfaad
 --enable-libvorbis --enable-swscale --prefix=/usr

请注意,据我所知,--prefix 必须与 mlt 相同

 make && make install

构建完美结束。

  • 获取和配置 frei0r
 wget http://propirate.net/frei0r/latest.tar.gz
 tar xvzf latest.tar.gz
 cd frei0r-plugins.1.1.22/
 ./configure
 
 make && make install
  • 获取和配置 Mlt
 svn co https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt mlt

然后我发现我必须修复 pkg-config 路径,以便让 mlt 配置找到 avformat 库(也许我在上面的 --prefix 上出了问题:但我并不确定)

 PKG_CONFIG_PATH=/usr/lib/pkgconfig/
 export PKG_CONFIG_PATH 

为了使用 Qt4,需要调整 qimage 库路径(请考虑结尾处的 P.S.)

 ./configure --prefix=/usr --enable-gpl --qimage-libdir=/usr/lib64/ --qimage-includedir=/usr/include/Qt --avformat-swscale
 --disable-mmx --disable-sox

请注意,根据我的经验,如果不禁用 mmx 和 sox,编译将退出并出现错误。

同样,make 和 make install 进行得很好。

  • 获取和配置 mlt++
 svn co https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt++ mlt++
 ./configure --prefix=/usr

同样,make 和 make install 进行得很好。

  • 获取和配置 Kdenlive
 svn co https://kdenlive.svn.sourceforge.net/svnroot/kdenlive/branches/KDE4
 cd KDE4
 mkdir build && cd build
 cmake .. -DCMAKE_INSTALL_PREFIX=/usr
 make && make install

完成!

P.S.(最新消息):但是,同样的过程在我的家用台式机上有效,而在办公室的笔记本电脑上无效;似乎 mlt 在该笔记本电脑上没有正确检测到 Qt4 包含文件,而是针对 qt3 构建,因此在启动时崩溃。 :-(

华夏公益教科书