FFmpeg - 修改提交流程

1 搭建自己的修改环境

修改本身是不可以直接push进FFmpeg的原始仓库里的,所以首先应该Fork一个自己的仓库并建立专用的提交分支。

  • 一定不要仅在本地反复修改,保留多版本提交信息
  • 及时同步原仓库的master,始终保持最新状态提交
  • 更新等操作教程:Git - 分支间更新、同步与提交小技巧

2 开始进行修改

2.1 准备工作
  • 确保base最新!!!
  • 修改前先编译运行,成功后再进行修改
  • 及时clean,不建议保留无关文件
  • 阅读官方引导文档:FFmpeg Developer
2.2 进行修改
  • 修改时尽量与官方格式保持一致
  • 不允许添加任何行尾空白字符(主要是空格)
  • Makefile外不允许使用TAB
  • API更改需要写入所属模块的logdoc
  • 更改需要在相关的version.h中进行迭代
  • 遵从官方的其他格式指引:Coding Rules
迭代分级:
VERSION_MAJOR - 巨大更改,本次修改后失去向前兼容性
VERSION_MINOR - 正常更改,本次修改影响版本API
VERSION_MICRO - 微小更改,本修修改无其他影响
高版本修改时需要重置低位,如 MINOR++ => MICRO =back-to=> 100
  • 更改尽可能小,不需要划分成原子更改但必须保真每一次更改为当前最简更改
  • 更改不能破坏原功能,完成后应该可以重新编译运行并通过FATE测试:make fate
2.3 进行提交
  • 注册ffmpeg-devel邮箱列表:ffmpeg-devel info page
  • 使用git commit -s -m "[change part] : [change message]"签名后提交
  • 使用git format-patch -v[x] -[n]生成补丁,x是版本,n是打包commit的数量
  • 使用自带工具tool/pacheck检查patch规范,按提示进行修改
  • 按照官方check list进行检查:Patch submission checklist
  • 使用git send-email --compose --no-chain-reply-to --suppress-from --to [email protected] 0001-xxx.patch
示例:
$ git commit -s -m "lavc, doc: add avs2 codec"
... # other changes
$ git commit -s -m "lavc,doc,configure: add libdavs2 video decoder"
$ git format-patch -v3 -2
$ git send-email --compose --no-chain-reply-to --suppress-from --to [email protected] v3-0001-lavc-doc-add-avs2-codec.patch v3-0002-lavc-doc-configure-add-libdavs2-video-decoder.patch
... # other steps
  • 必须确保通过了FATE测试
  • 确保send-email返回正确信息
2.4 后续内容
  • 提交成功后应该可以在FFmpeg Patch Work中查找到自己的提交信息,没有查到或不全不要急着重复提交,延时很大
  • 时刻关注注册mail-list的邮箱账户,找到与自己有关的,修改/回复Reviewer的问题,可以直接用邮箱客户端引用来信,并在其基础上添加留言
  • 最终确认接受后不需要自己提交

流程笔记,待更新,欢迎留言指正

你可能感兴趣的:(FFmpeg - 修改提交流程)