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...
Status: RESOLVED FIXED
Alias: None
Product: Jogl
Classification: JogAmp
Component: video (show other bugs)
Version: 2.5.0
Hardware: All all
: P4 major
Assignee: Sven Gothel
URL:
: 1356 (view as bug list)
Depends on:
Blocks:
 
Reported: 2020-01-03 02:24 CET by Sven Gothel
Modified: 2023-02-25 18:21 CET (History)
1 user (show)

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


Attachments

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.
    
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.
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.