Bug 1420 - Enable FFmpeg 4, 5 and 6 in FFMPEGMediaPlayer and allow loading provided libs (option)
Summary: Enable FFmpeg 4, 5 and 6 in FFMPEGMediaPlayer and allow loading provided libs...
Alias: None
Product: Jogl
Classification: JogAmp
Component: video (show other bugs)
Version: 2.5.0
Hardware: All all
: P4 major
Assignee: Sven Gothel
: 1356 (view as bug list)
Depends on:
Reported: 2020-01-03 02:24 CET by Sven Gothel
Modified: 2023-02-25 18:21 CET (History)
1 user (show)

See Also:
SCM Refs:
2be7001101dbb16e5264c9c38b9764ba1e39ab5c 2ecf00d7733c473358b652c50b83cb95f65174ff
Workaround: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Sven Gothel 2020-01-03 02:24:58 CET
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.
Comment 1 Sven Gothel 2020-01-03 02:26:35 CET
*** Bug 1356 has been marked as a duplicate of this bug. ***
Comment 2 Sven Gothel 2020-01-03 02:33:48 CET
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>',
e.g. 'internal_avutil'.
System default libraries are named '<basename>',
e.g. 'avutil'.
If PREFER_SYSTEM_LIBS is true (default),
we lookup the default library first,
then the versioned library names and last the internal library.
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.
Comment 3 Sven Gothel 2023-02-25 18:21:14 CET
commit 2ecf00d7733c473358b652c50b83cb95f65174ff
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:
    - avcodec
    - avformat
    - avutil
    - swresample
    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.