Currently our FFMPEGMediaPlayer only supports FFmpeg up to version 3.
Support using the current FFmpeg version 4.*,
which is used in Debian-10 and other distributions today.
Also take care of optional non-system ffmpeg libraries,
potential packaged w/ JogAmp.
For this, we should provide a choice via properties and
allow loading an internal library name upfront, e.g. 'internal_avutil'.
This will also resolve Bug 1356.
*** Bug 1356 has been marked as a duplicate of this bug. ***
jogl commit 2be7001101dbb16e5264c9c38b9764ba1e39ab5c
Bug 1420: Add FFMpeg 4.* versioned lib-names and provide optional internal lib lookup
New property 'jogl.ffmpeg.lib' may be set to 'internal',
setting PREFER_SYSTEM_LIBS:=false (default it true)
Non system internal libraries are named 'internal_<basename>',
System default libraries are named '<basename>',
If PREFER_SYSTEM_LIBS is true (default),
we lookup the default library first,
then the versioned library names and last the internal library.
If PREFER_SYSTEM_LIBS is false,
we lookup the internal library first,
then the versioned library names and last the default library.
TODO: Resolve FFmpeg 4.* API differences to previous 3.* version.
Date: Thu Feb 23 22:18:39 2023 +0100
FFMPEGMediaPlayer: Add implementation update for FFmpeg version 4.* (Debian 11), 5.* (Debian 12) and 6.* (Current Development trunk)
From here on, libav support has been dropped.
Required FFmpeg libraries to be fully matched by their major runtime- and compiletime-versions are:
Library avdevice is optional and only used for video input devices (camera).
Library avresample has been removed, since FFmpeg dropped it as well in version 6.*
and swresample is preferred for lower versions.
The matching major-versions of each library to the FFmpeg version
is documented within FFMPEGMediaPlayer class API-doc.
Each implementation version uses the non-deprecated FFmpeg code-path
and compilation using matching header files is warning-free.