Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
cmake: make external, shared ffmpeg default #10479
Since our own ffmpeg is - as of v3.1 - essentially vanilla (-1 unimportant build related commit), lets use external, shared ffmpeg libs by default.
I have left out autotools on purpose as incentive for packagers to switch to cmake.
fetzerch left a comment
I've mostly looked at the cmake module, others know better if we want internal or external ffmpeg by default.
One additional thing I would like to get rid of is the ffmpeg link wrapper (https://github.com/xbmc/xbmc/blob/master/project/cmake/CMakeLists.txt#L391). Don't yet have a good idea how, but if you have one, let me know.
My take on this from a technical level (without politics):
As a Kodi-Supporter especially on the bugtracker and the forum I don't want to fix bugs, that I solved with upstream ffmpeg again and again. That means: Though we work on getting fixes included with upstream the very same day - it won't be always possible and we will be "shipping" a custom kodi ffmpeg version, which then still is mandatory for distributions as everything else means known (!) (cause we obviously fixed bugs) breakage. Same accounts for cherry-picks we do from upstream, e.g.: hevc-10 bit fixes for dxva, or VAAPI / VP9 enhancements, which might break compatibility with distributions as certain fields are not defined (good case as it breaks in the compiler) or certain code paths (e.g. format queries return NULL) -> runtime segfault not happening for us and so on.
There are also other things besides the "versioning", which is: missing options. If you use an ffmpeg without mjpeg, png encoder support, our Image handling won't work. If you don't enable ffmpeg's dts-hd decoder, we won't display metadata correctly anymore. So if you see the same version does not mean we run on this build, that's perhaps the biggest technical difference not yet named: versioning is not enough to make sure that everything is fine.
The message should not be: kodi is now "supporting" your distribution's specific ffmpeg version, cause we can't do that out of stated reasons.
Btw. ffmpeg has deprecated codec_info and when fernet and I are done with v17 we will transition ffmpeg to codecpar - this will break backwards compatibility to every ffmpeg version < 3.1. Distributions need to be aware of this. Same accounts for all the avdecode5 methods.
@fetzerch this is ready from my side, can you please check again?
the following changed:
jenkins build this please