[mythtv] FFmpeg plans

David Engel david at istwok.net
Sun Apr 29 20:08:06 UTC 2018

On Sat, Apr 28, 2018 at 04:08:19PM -0400, Peter Bennett wrote:
> To David and other devs
> I have separated the MythTV configure from the FFmpeg configure so that they
> no longer need to be merged when bringing in new FFmpeg versions. see ticket
> https://code.mythtv.org/trac/ticket/13259 . I will commit this to master
> shortly, once I see that no compile errors caused by this come from the
> build slaves and my testing is all successful.
> I would like to propose that we incorporate FFmpeg master branch into MythTV
> instead of periodically merging release branches. Also I would like to merge
> the FFmpeg git into ours, so that bringing in FFmpeg updates becomes a git
> pull operation. I am not a git expert but I think this should work:
> 1. Delete mythtv/external/FFmpeg in mythtv
> From git root:
> git rm -r mythtv/external/FFmpeg
> 2. Create a subtree of FFmpeg master
> From git root:
> git subtree add -P mythtv/external/FFmpeg
> https://github.com/FFmpeg/FFmpeg.git master [--squash]
> 3. Apply our FFmpeg customizations and commit them.
> 4. Later, when we want to pull subsequent FFmpeg updates, run this
> From git root
> git subtree pull -P mythtv/external/FFmpeg
> https://github.com/FFmpeg/FFmpeg.git master [--squash]
> I will test this in the ffmpeg-resync branch first to make sure it all
> works.
> Notes: Many articles recommend the --squash flag to suppress importing the
> history of the other project. Does anybody have opinions about this?
> See
> https://www.atlassian.com/blog/git/alternatives-to-git-submodule-git-subtree
> and man git-subtree.
> It is recommended but not necessary to separate commits to FFmpeg from
> commits to the rest of the system. This is mainly in case you need to submit
> updates back to the main FFmpeg repository, which we would not likely be
> doing.
> Please let me have your opinions or comments on this. Also, let me know if I
> have missed something in git that may prevent this from working correctly.

I'm not familiar enough with the differences between using subtree and
submodule to comment about that yet.

Likewise, I'm not sure that FFmpeg's master branch is the best choice.
How do you propose to handle post-release fixes from FFmpeg?  Looking
at FFmpeg's release branch for 3.4, it saw a lot of fixes spanning 4
months after the initial releases.  Perhaps Aman could shed some light
on how FFmpeg handles their release and master branches and suggest
the best one to track.

David Engel
david at istwok.net

More information about the mythtv-dev mailing list