* Add support for ffmpeg 4.2
* Parse the complete ffmpeg version instead of only the first 2 digits
* Make max and min version optional
* Remove max limitation (for now)
* Style improvements
* Fixed the release build
* Documented all public/internal members of Jellyfin.Server
* Enable TreatWarningsAsErrors for debug builds for Jellyfin.Server
This will ensure that any new public/internal members of Jellyfin.Server
are documented
This fixesjellyfin/jellyfin#1446. I am not an expert in this section of
code, but I cannot think of a need to do path substitution during
subtitle encoding.
1) Reworked FFmpeg and FFprobe path discovery (CLI switch, Custom xml, system $PATH, UI update trigger). Removed FFMpeg folder from Emby.Server.Implementations. All path discovery now in MediaEncoder.
2) Always display FFmpeg path to user in Transcode page.
3) Allow user to remove a Custome FFmpeg path and return to using system $PATH (or --ffmpeg if available).
4) Remove unused code associated with 'prebuilt' FFmpeg.
5) Much improved logging during path discovery.
Addressed review comments from JustAMan. Removed code to determine experimental version. Store major and minor as two ints. Allow control of a min and max recommended version.
Three routes to determine FFmpeg version:
1) Grab the 'ffmpeg version x.y' from from the -version output. This should work for all pre-built binaries.
2) Compare the library versions against known contents of FFmpeg versions. This is fallback aimed at custom builds.
3) Compare libavcodec version to determine if newer than latest known release. This suggests user is running within latest/HEAD/master build.