[mythtv] FFmpeg plans

Peter Bennett pb.mythtv at gmail.com
Fri May 11 17:51:26 UTC 2018


In my own copy of MythTV repository, I tried using a subtree to include 
FFmpeg. I hit up against a few problems -

I had wanted to try importing a particular commit from FFmpeg, but I was 
unable to do that. I could only import the latest version of a branch. 
Also I could see no way of cherry-picking FFmpeg commits into our copy.

git subtree add -P mythtv/external/FFmpeg 
https://github.com/FFmpeg/FFmpeg.git 7e3a070 --squash
fatal: Couldn't find remote ref 7e3a070

I tried adding it as a remote, with the same result

git remote add ffmpeg https://github.com/FFmpeg/FFmpeg.git
git fetch ffmpeg
git subtree add -P mythtv/external/FFmpeg ffmpeg 7e3a070 --squash
fatal: Couldn't find remote ref 7e3a070

If you replace the commit id with a branch name it works

git subtree add -P mythtv/external/FFmpeg 
https://github.com/FFmpeg/FFmpeg.git release/4.0 --squash
worked

I do not want to be forever constrained to only updating to the latest 
commit of a branch in FFmpeg.

I have now created my own copy of FFmpeg repository and applied our 
changes to that. Perhaps this is a better solution. We could maintain an 
ffmpeg repository in MythTV and either copy from it as needed after 
merging from the main FFmpeg, or else use a subtree based on our own 
FFmpeg. We could create a mythtv-master branch in the private FFmpeg for 
the subtree, and merge or cherry-pick to that as needed. This way we 
would a better workfolw and accurate tracking of who contributed changes 
in future. Currently the tracking of contributions to MythTV's copy of 
FFmpeg is inaccurate, incorrectly showing most things having been 
contributed by the various people who have done the FFmpeg resync.

We could also make a submodule instead of a subtree from our private 
FFmpeg, but that means that people who access MythTV source would have 
to run an explicit command to pull in the submodule data and to pull in 
updates from it when needed.

On the current merge:
I am using FFmpeg master as of yesterday. The recent fixes to mediacodec 
are not in the release branch. After applying the MythTV modifications 
(5680 lines of patches) there were 12 files with conflicts. Most were 
easy to fix, but FFmpeg has redesigned the code for registering demuxers 
so I had to make some changes to the code for registering 
ff_mythtv_mpegts_demuxer and ff_mythtv_mpegtsraw_demuxer.

It now has compile errors in the mythtv-mpegts demuxer code caused by 
undeclared functions and macros, presumably deprecated things removed 
from FFmpeg. I will have to fix these. The mythtv-mpegts demuxer code 
also uses a lot of deprecated functions.

Peter


More information about the mythtv-dev mailing list