Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QtAV is not compatible with the latest ffmpeg #1377

Open
ElderOrb opened this issue Jun 6, 2021 · 18 comments
Open

QtAV is not compatible with the latest ffmpeg #1377

ElderOrb opened this issue Jun 6, 2021 · 18 comments

Comments

@ElderOrb
Copy link
Contributor

ElderOrb commented Jun 6, 2021

Attempts to build it result in a lot of compilation errors

@wang-bin
Copy link
Owner

wang-bin commented Jun 7, 2021

yes. the apis used by qtav are deprecated in ffmpeg4.x, and removed in ffmpeg 5.x

@berolinux
Copy link

This is a (not fully complete) attempt at a minimally invasive patch to support ffmpeg 5.0.
QtAV-1.13.0-ffmpeg-5.0.patch.txt

It compiles, but crashes after playing a few frames. Probably one of the AVStream->codec -> AVStream->codecpar shortcuts I've taken is too much. Got to debug this some more (or pass it to someone who has more time than myself, which is why I'm publishing the incomplete patch...)

@cgilles
Copy link
Contributor

cgilles commented Mar 16, 2022

@wang-bin

Any feedback to review and improve this patch from @berolinux to support ffmpeg 5 API ?

Thanks in advance

@rezso
Copy link
Contributor

rezso commented Mar 17, 2022

@cgilles I can build QtAV with ffmpeg5 at commit fdc613d with this patch.

@cgilles
Copy link
Contributor

cgilles commented Mar 17, 2022

@rezso : this commit : fdc613d

Really ??? Do you mean to switch to mdk-sdk framework ? Definitively not for me...

Gilles Caulier

@rezso
Copy link
Contributor

rezso commented Mar 17, 2022

@cgilles : No. I tried the QtAV lib, not the mdk-sdk framework. But QtAV is needed for me only for digikam build, so not an important thing.

@cgilles
Copy link
Contributor

cgilles commented Mar 17, 2022

ok, so you build QtAV with ffmpeg 5, and did you use it ? It works as expected to read video ?

@cgilles
Copy link
Contributor

cgilles commented Mar 24, 2022

I just tried to compile QtAv code from git/master against ffmpeg code from git/master (aka future 5.1). QtAv do not compile at all:

Scanning dependencies of target QtAV_autogen
[  1%] Automatic MOC for target QtAV
[  1%] Built target QtAV_autogen
[  2%] Generating qrc_shaders.cpp
[  2%] Generating qrc_QtAV.cpp
Scanning dependencies of target QtAV
[  4%] Building CXX object src/CMakeFiles/QtAV.dir/QtAV_autogen/mocs_compilation.cpp.o
[  4%] Building CXX object src/CMakeFiles/QtAV.dir/capi/ass_api.cpp.o
[  5%] Building CXX object src/CMakeFiles/QtAV.dir/subtitle/SubtitleProcessorLibASS.cpp.o
[  6%] Building CXX object src/CMakeFiles/QtAV.dir/capi/openal_api.cpp.o
[  7%] Building CXX object src/CMakeFiles/QtAV.dir/output/audio/AudioOutputOpenAL.cpp.o
[  8%] Building CXX object src/CMakeFiles/QtAV.dir/AudioResamplerFF.cpp.o
In file included from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp: In member function ‘virtual bool QtAV::AudioResamplerFF::prepare()’:
/home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:131:100: warning: ‘int64_t av_get_default_channel_layout(int)’ is deprecated [-Wdeprecated-declarations]
  131 |             d.in_format.setChannelLayoutFFmpeg(av_get_default_channel_layout(d.in_format.channels())); //from mplayer2
      |                                                                                                    ^
In file included from /usr/include/libavutil/frame.h:33,
                 from /usr/include/libavutil/hwcontext.h:23,
                 from /usr/include/libavcodec/codec.h:27,
                 from /usr/include/libavformat/avformat.h:313,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/AVCompat.h:47,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/AudioResampler_p.h:26,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:24,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/usr/include/libavutil/channel_layout.h:457:9: note: declared here
  457 | int64_t av_get_default_channel_layout(int nb_channels);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:134:104: warning: ‘int av_get_channel_layout_nb_channels(uint64_t)’ is deprecated [-Wdeprecated-declarations]
  134 |             d.in_format.setChannels(av_get_channel_layout_nb_channels(d.in_format.channelLayoutFFmpeg()));
      |                                                                                                        ^
In file included from /usr/include/libavutil/frame.h:33,
                 from /usr/include/libavutil/hwcontext.h:23,
                 from /usr/include/libavcodec/codec.h:27,
                 from /usr/include/libavformat/avformat.h:313,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/AVCompat.h:47,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/AudioResampler_p.h:26,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:24,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/usr/include/libavutil/channel_layout.h:449:5: note: declared here
  449 | int av_get_channel_layout_nb_channels(uint64_t channel_layout);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:141:96: warning: ‘int64_t av_get_default_channel_layout(int)’ is deprecated [-Wdeprecated-declarations]
  141 |         d.in_format.setChannelLayoutFFmpeg(av_get_default_channel_layout(d.in_format.channels()));
      |                                                                                                ^
In file included from /usr/include/libavutil/frame.h:33,
                 from /usr/include/libavutil/hwcontext.h:23,
                 from /usr/include/libavcodec/codec.h:27,
                 from /usr/include/libavformat/avformat.h:313,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/AVCompat.h:47,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/AudioResampler_p.h:26,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:24,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/usr/include/libavutil/channel_layout.h:457:9: note: declared here
  457 | int64_t av_get_default_channel_layout(int nb_channels);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:145:106: warning: ‘int av_get_channel_layout_nb_channels(uint64_t)’ is deprecated [-Wdeprecated-declarations]
  145 |             d.out_format.setChannels(av_get_channel_layout_nb_channels(d.out_format.channelLayoutFFmpeg()));
      |                                                                                                          ^
In file included from /usr/include/libavutil/frame.h:33,
                 from /usr/include/libavutil/hwcontext.h:23,
                 from /usr/include/libavcodec/codec.h:27,
                 from /usr/include/libavformat/avformat.h:313,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/AVCompat.h:47,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/AudioResampler_p.h:26,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:24,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/usr/include/libavutil/channel_layout.h:449:5: note: declared here
  449 | int av_get_channel_layout_nb_channels(uint64_t channel_layout);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:157:98: warning: ‘int64_t av_get_default_channel_layout(int)’ is deprecated [-Wdeprecated-declarations]
  157 |         d.out_format.setChannelLayoutFFmpeg(av_get_default_channel_layout(d.out_format.channels()));
      |                                                                                                  ^
In file included from /usr/include/libavutil/frame.h:33,
                 from /usr/include/libavutil/hwcontext.h:23,
                 from /usr/include/libavcodec/codec.h:27,
                 from /usr/include/libavformat/avformat.h:313,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/AVCompat.h:47,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/AudioResampler_p.h:26,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:24,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/usr/include/libavutil/channel_layout.h:457:9: note: declared here
  457 | int64_t av_get_default_channel_layout(int nb_channels);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:179:69: warning: ‘SwrContext* swr_alloc_set_opts(SwrContext*, int64_t, AVSampleFormat, int, int64_t, AVSampleFormat, int, int, void*)’ is deprecated [-Wdeprecated-declarations]
  179 |                                    , 0 /*log_offset*/, 0 /*log_ctx*/);
      |                                                                     ^
In file included from /home/gilles/Devel/QtAV/src/QtAV/private/AVCompat.h:74,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/AudioResampler_p.h:26,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerTemplate.cpp:24,
                 from /home/gilles/Devel/QtAV/src/AudioResamplerFF.cpp:23:
/usr/include/libswresample/swresample.h:260:20: note: declared here
  260 | struct SwrContext *swr_alloc_set_opts(struct SwrContext *s,
      |                    ^~~~~~~~~~~~~~~~~~
[  9%] Building CXX object src/CMakeFiles/QtAV.dir/AVCompat.cpp.o
[ 10%] Building CXX object src/CMakeFiles/QtAV.dir/QtAV_Global.cpp.o
/home/gilles/Devel/QtAV/src/subtitle/SubtitleProcessorLibASS.cpp: In function ‘void QtAV::ass_msg_cb(int, const char*, __va_list_tag*, void*)’:
/home/gilles/Devel/QtAV/src/subtitle/SubtitleProcessorLibASS.cpp:118:73: warning: ‘QString& QString::vsprintf(const char*, __va_list_tag*)’ is deprecated: Use vasprintf(), arg() or QTextStream instead [-Wdeprecated-declarations]
  118 |     QString msg(QStringLiteral("{libass} ") + QString().vsprintf(fmt, va)); //QString.vsprintf() may crash at strlen().
      |                                                                         ^
In file included from /usr/include/qt5/QtCore/qhashfunctions.h:44,
                 from /usr/include/qt5/QtCore/qlist.h:47,
                 from /usr/include/qt5/QtCore/QList:1,
                 from /home/gilles/Devel/QtAV/src/QtAV/private/SubtitleProcessor.h:25,
                 from /home/gilles/Devel/QtAV/src/subtitle/SubtitleProcessorLibASS.cpp:22:
/usr/include/qt5/QtCore/qstring.h:391:14: note: declared here
  391 |     QString &vsprintf(const char *format, va_list ap) Q_ATTRIBUTE_FORMAT_PRINTF(2, 0);
      |              ^~~~~~~~
In file included from /home/gilles/Devel/QtAV/build/src/QtAV_autogen/NWVRT4SIGP/../../../../src/codec/video/VideoDecoderFFmpegBase.h:26,
                 from /home/gilles/Devel/QtAV/build/src/QtAV_autogen/NWVRT4SIGP/../../../../src/codec/video/VideoDecoderFFmpegHW.h:25,
                 from /home/gilles/Devel/QtAV/build/src/QtAV_autogen/NWVRT4SIGP/moc_VideoDecoderFFmpegHW.cpp:10,
                 from /home/gilles/Devel/QtAV/build/src/QtAV_autogen/mocs_compilation.cpp:32:
/home/gilles/Devel/QtAV/src/QtAV/private/AVDecoder_p.h: In static member function ‘static const char* QtAV::AVDecoderPrivate::getProfileName(AVCodecID, int)’:
/home/gilles/Devel/QtAV/src/QtAV/private/AVDecoder_p.h:81:42: error: invalid conversion from ‘const AVCodec*’ to ‘AVCodec*’ [-fpermissive]
   81 |         AVCodec *c = avcodec_find_decoder(id);
      |                      ~~~~~~~~~~~~~~~~~~~~^~~~
      |                                          |
      |                                          const AVCodec*
[ 11%] Building CXX object src/CMakeFiles/QtAV.dir/subtitle/CharsetDetector.cpp.o
/home/gilles/Devel/QtAV/src/AVCompat.cpp: In function ‘const char* get_codec_long_name(AVCodecID)’:
/home/gilles/Devel/QtAV/src/AVCompat.cpp:394:42: error: invalid conversion from ‘const AVCodec*’ to ‘AVCodec*’ [-fpermissive]
  394 |     AVCodec *codec = avcodec_find_decoder(id);
      |                      ~~~~~~~~~~~~~~~~~~~~^~~~
      |                                          |
      |                                          const AVCodec*
/home/gilles/Devel/QtAV/src/AVCompat.cpp:397:33: error: invalid conversion from ‘const AVCodec*’ to ‘AVCodec*’ [-fpermissive]
  397 |     codec = avcodec_find_encoder(id);
      |             ~~~~~~~~~~~~~~~~~~~~^~~~
      |                                 |
      |                                 const AVCodec*
make[2]: *** [src/CMakeFiles/QtAV.dir/build.make:175: src/CMakeFiles/QtAV.dir/AVCompat.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [src/CMakeFiles/QtAV.dir/build.make:97: src/CMakeFiles/QtAV.dir/QtAV_autogen/mocs_compilation.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:136: src/CMakeFiles/QtAV.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

@wang-bin: so this entry still valid and need to be fixed. Please review the patch from @ElderOrb

Best

Gilles Caulier

@papoteur-mga
Copy link

papoteur-mga commented Jun 10, 2022

Hello,
I trying to package QtAV for Mageia 9. We have switched to ffmpeg 5.
Thus I applied the berolinux's patch above to the latest release 1.13.0.
It seems that compilation passes with ffmpeg part, but I'm stick with this error:

make[1]: Entering directory '/builddir/build/BUILD/QtAV-1.13.0/src'
g++ -c -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -fno-strict-aliasing -DPIC -fPIC -Wall -Wextra -D_REENTRANT -fPIC -DBUILD_QTAV_LIB -DLINK_UCHARDET -DQTAV_HAVE_CAPI=1 -DQTAV_HAVE_SSE4_1=1 -DQTAV_HAVE_SSE2=1 -DQTAV_HAVE_EGL_CAPI=1 -D__STDC_CONSTANT_MACROS -DQTAV_HAVE_X11=1 -DQTAV_HAVE_SWRESAMPLE=1 -DQTAV_HAVE_AVDEVICE=1 -DQTAV_HAVE_AVFILTER=1 -DQTAV_HAVE_OPENAL=1 -DQTAV_HAVE_PULSEAUDIO=1 -DQTAV_HAVE_CUDA=1 -DQTAV_HAVE_QT_EGL=1 -DQTAV_HAVE_LIBASS=1 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -I/usr/include/qt5 -I. -I/builddir/build/BUILD/QtAV-1.13.0 -IQtAV -I../contrib/capi -Icuda -Icuda/dllapi -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I../.moc/5.15.2/QtAV -I/usr/lib64/qt5/mkspecs/linux-g++ -o ../.obj/QtAV_linux_x86_64/VideoDecoderCUDA.o codec/video/VideoDecoderCUDA.cpp
make[1]: Leaving directory '/builddir/build/BUILD/QtAV-1.13.0/src'
In file included from ./cuda/helper_cuda.h:25,
                 from codec/video/VideoDecoderCUDA.cpp:44:
./cuda/dllapi/nv_inc.h:30:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   30 | #if !NV_CONFIG(DLLAPI_CUDA) && !defined(CUDA_LINK)
      | ^~~~~~~~~~~~~~~~~~~~~
./cuda/dllapi/nv_inc.h:35:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   35 | #if NV_CONFIG(DLLAPI_CUDA)
      | ^~~~~~~~~~~~~~~~~~~~~
./cuda/dllapi/nv_inc.h:61:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   61 | #if NV_CONFIG(DLLAPI_CUDA)
      | ^~~~~~~~~~~~~~~~~~~~~
./cuda/helper_cuda.h:26:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   26 | #if NV_CONFIG(DLLAPI_CUDA)
      | ^~~~~~~~~~~~~~~~~~~~~
In file included from codec/video/VideoDecoderCUDA.cpp:45:
./cuda/cuda_api.h:48:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   48 | #if !NV_CONFIG(DLLAPI_CUDA) && !defined(CUDA_LINK)
      | ^~~~~~~~~~~~~~~~~~~~~
codec/video/VideoDecoderCUDA.cpp:323:5: error: 'AVBitStreamFilterContext' does not name a type
  323 |     AVBitStreamFilterContext *bsf; //TODO: rename bsf_ctx
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
codec/video/VideoDecoderCUDA.cpp: In constructor 'QtAV::VideoDecoderCUDAPrivate::VideoDecoderCUDAPrivate()':
codec/video/VideoDecoderCUDA.cpp:167:9: error: 'bsf' was not declared in this scope
  167 |         bsf = 0;
      |         ^~~
codec/video/VideoDecoderCUDA.cpp: In destructor 'virtual QtAV::VideoDecoderCUDAPrivate::~VideoDecoderCUDAPrivate()':
codec/video/VideoDecoderCUDA.cpp:186:13: error: 'bsf' was not declared in this scope
  186 |         if (bsf)
      |             ^~~
codec/video/VideoDecoderCUDA.cpp:187:13: error: 'av_bitstream_filter_close' was not declared in this scope
  187 |             av_bitstream_filter_close(bsf);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~
codec/video/VideoDecoderCUDA.cpp: In member function 'virtual bool QtAV::VideoDecoderCUDA::decode(const QtAV::Packet&)':
codec/video/VideoDecoderCUDA.cpp:391:11: error: 'class QtAV::VideoDecoderCUDAPrivate' has no member named 'bsf'
  391 |     if (d.bsf) {
      |           ^~~
codec/video/VideoDecoderCUDA.cpp:394:49: error: 'class QtAV::VideoDecoderCUDAPrivate' has no member named 'bsf'
  394 |         filtered = av_bitstream_filter_filter(d.bsf, d.codec_ctx, NULL, &outBuf, &outBufSize
      |                                                 ^~~
codec/video/VideoDecoderCUDA.cpp:394:20: error: 'av_bitstream_filter_filter' was not declared in this scope
  394 |         filtered = av_bitstream_filter_filter(d.bsf, d.codec_ctx, NULL, &outBuf, &outBufSize
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~
codec/video/VideoDecoderCUDA.cpp: In member function 'void QtAV::VideoDecoderCUDAPrivate::setBSF(AVCodecID)':
codec/video/VideoDecoderCUDA.cpp:782:14: error: 'bsf' was not declared in this scope
  782 |         if (!bsf)
      |              ^~~
codec/video/VideoDecoderCUDA.cpp:783:19: error: 'av_bitstream_filter_init' was not declared in this scope
  783 |             bsf = av_bitstream_filter_init("h264_mp4toannexb");
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/qt5/QtCore/qmetatype.h:45,
                 from /usr/include/qt5/QtCore/QMetaType:1,
                 from ./QtAV/QtAV_Global.h:27,
                 from ./QtAV/AVError.h:24,
                 from ./QtAV/AVDecoder.h:25,
                 from ./QtAV/VideoDecoder.h:25,
                 from codec/video/VideoDecoderCUDA.cpp:22:
codec/video/VideoDecoderCUDA.cpp:784:18: error: 'bsf' was not declared in this scope
  784 |         Q_ASSERT(bsf && "h264_mp4toannexb bsf not found");
      |                  ^~~
/usr/include/qt5/QtCore/qglobal.h:857:56: note: in definition of macro 'Q_ASSERT'
  857 | #    define Q_ASSERT(cond) static_cast<void>(false && (cond))
      |                                                        ^~~~
codec/video/VideoDecoderCUDA.cpp:786:14: error: 'bsf' was not declared in this scope
  786 |         if (!bsf)
      |              ^~~
codec/video/VideoDecoderCUDA.cpp:787:19: error: 'av_bitstream_filter_init' was not declared in this scope
  787 |             bsf = av_bitstream_filter_init("hevc_mp4toannexb");
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~
codec/video/VideoDecoderCUDA.cpp:788:18: error: 'bsf' was not declared in this scope
  788 |         Q_ASSERT(bsf && "hevc_mp4toannexb bsf not found");
      |                  ^~~
/usr/include/qt5/QtCore/qglobal.h:857:56: note: in definition of macro 'Q_ASSERT'
  857 | #    define Q_ASSERT(cond) static_cast<void>(false && (cond))
      |                                                        ^~~~
codec/video/VideoDecoderCUDA.cpp:790:13: error: 'bsf' was not declared in this scope
  790 |         if (bsf) {
      |             ^~~
codec/video/VideoDecoderCUDA.cpp:791:13: error: 'av_bitstream_filter_close' was not declared in this scope
  791 |             av_bitstream_filter_close(bsf);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile.libQtAV:1409: ../.obj/QtAV_linux_x86_64/VideoDecoderCUDA.o]

The build is done with qmake. I tried with cmake, but got another error. The process build is more or less with this spec file, by adding the patch : https://svnweb.mageia.org/packages/cauldron/qtav/current/SPECS/qtav.spec?view=markup
Any clue?
Compiler is GCC 12.

@bambu123
Copy link

bambu123 commented Feb 7, 2023

I use @berolinux's patch and add some more patches in this fork: https://github.com/cmguo/QtAV.

@papoteur-mga
Copy link

I use @berolinux's patch and add some more patches in this fork: https://github.com/cmguo/QtAV.

Thanks for your contribution.
I got a tarball from your repository, but the build fails with:

usr/bin/c++ -fPIC -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables  -DNDEBUG -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id=sha1 -Wl,--enable-new-dtags -shared -Wl,-soname,libQtAV.so.1 -o ../lib/libQtAV.so.1.13.0 CMakeFiles/QtAV.dir/QtAV_autogen/mocs_compilation.cpp.o CMakeFiles/QtAV.dir/capi/ass_api.cpp.o CMakeFiles/QtAV.dir/subtitle/SubtitleProcessorLibASS.cpp.o CMakeFiles/QtAV.dir/capi/openal_api.cpp.o CMakeFiles/QtAV.dir/output/audio/AudioOutputOpenAL.cpp.o CMakeFiles/QtAV.dir/AudioResamplerFF.cpp.o CMakeFiles/QtAV.dir/AVCompat.cpp.o CMakeFiles/QtAV.dir/QtAV_Global.cpp.o CMakeFiles/QtAV.dir/subtitle/CharsetDetector.cpp.o CMakeFiles/QtAV.dir/subtitle/PlainText.cpp.o CMakeFiles/QtAV.dir/subtitle/PlayerSubtitle.cpp.o CMakeFiles/QtAV.dir/subtitle/Subtitle.cpp.o CMakeFiles/QtAV.dir/subtitle/SubtitleProcessor.cpp.o CMakeFiles/QtAV.dir/subtitle/SubtitleProcessorFFmpeg.cpp.o CMakeFiles/QtAV.dir/subtitle/SubImage.cpp.o CMakeFiles/QtAV.dir/utils/GPUMemCopy.cpp.o CMakeFiles/QtAV.dir/utils/Logger.cpp.o CMakeFiles/QtAV.dir/AudioThread.cpp.o CMakeFiles/QtAV.dir/utils/internal.cpp.o CMakeFiles/QtAV.dir/AVThread.cpp.o CMakeFiles/QtAV.dir/AudioFormat.cpp.o CMakeFiles/QtAV.dir/AudioFrame.cpp.o CMakeFiles/QtAV.dir/AudioResampler.cpp.o CMakeFiles/QtAV.dir/AudioResamplerTemplate.cpp.o CMakeFiles/QtAV.dir/codec/audio/AudioDecoder.cpp.o CMakeFiles/QtAV.dir/codec/audio/AudioDecoderFFmpeg.cpp.o CMakeFiles/QtAV.dir/codec/audio/AudioEncoder.cpp.o CMakeFiles/QtAV.dir/codec/audio/AudioEncoderFFmpeg.cpp.o CMakeFiles/QtAV.dir/codec/AVDecoder.cpp.o CMakeFiles/QtAV.dir/codec/AVEncoder.cpp.o CMakeFiles/QtAV.dir/AVMuxer.cpp.o CMakeFiles/QtAV.dir/AVDemuxer.cpp.o CMakeFiles/QtAV.dir/AVDemuxThread.cpp.o CMakeFiles/QtAV.dir/ColorTransform.cpp.o CMakeFiles/QtAV.dir/Frame.cpp.o CMakeFiles/QtAV.dir/FrameReader.cpp.o CMakeFiles/QtAV.dir/filter/Filter.cpp.o CMakeFiles/QtAV.dir/filter/FilterContext.cpp.o CMakeFiles/QtAV.dir/filter/FilterManager.cpp.o CMakeFiles/QtAV.dir/filter/LibAVFilter.cpp.o CMakeFiles/QtAV.dir/filter/SubtitleFilter.cpp.o CMakeFiles/QtAV.dir/filter/EncodeFilter.cpp.o CMakeFiles/QtAV.dir/ImageConverter.cpp.o CMakeFiles/QtAV.dir/ImageConverterFF.cpp.o CMakeFiles/QtAV.dir/Packet.cpp.o CMakeFiles/QtAV.dir/PacketBuffer.cpp.o CMakeFiles/QtAV.dir/AVError.cpp.o CMakeFiles/QtAV.dir/AVPlayer.cpp.o CMakeFiles/QtAV.dir/AVPlayerPrivate.cpp.o CMakeFiles/QtAV.dir/AVTranscoder.cpp.o CMakeFiles/QtAV.dir/AVClock.cpp.o CMakeFiles/QtAV.dir/VideoCapture.cpp.o CMakeFiles/QtAV.dir/VideoFormat.cpp.o CMakeFiles/QtAV.dir/VideoFrame.cpp.o CMakeFiles/QtAV.dir/io/MediaIO.cpp.o CMakeFiles/QtAV.dir/io/QIODeviceIO.cpp.o CMakeFiles/QtAV.dir/output/audio/AudioOutput.cpp.o CMakeFiles/QtAV.dir/output/audio/AudioOutputBackend.cpp.o CMakeFiles/QtAV.dir/output/audio/AudioOutputNull.cpp.o CMakeFiles/QtAV.dir/output/video/VideoRenderer.cpp.o CMakeFiles/QtAV.dir/output/video/VideoOutput.cpp.o CMakeFiles/QtAV.dir/output/video/QPainterRenderer.cpp.o CMakeFiles/QtAV.dir/output/AVOutput.cpp.o CMakeFiles/QtAV.dir/output/OutputSet.cpp.o CMakeFiles/QtAV.dir/Statistics.cpp.o CMakeFiles/QtAV.dir/codec/video/VideoDecoder.cpp.o CMakeFiles/QtAV.dir/codec/video/VideoDecoderFFmpegBase.cpp.o CMakeFiles/QtAV.dir/codec/video/VideoDecoderFFmpeg.cpp.o CMakeFiles/QtAV.dir/codec/video/VideoDecoderFFmpegHW.cpp.o CMakeFiles/QtAV.dir/codec/video/VideoEncoder.cpp.o CMakeFiles/QtAV.dir/codec/video/VideoEncoderFFmpeg.cpp.o CMakeFiles/QtAV.dir/VideoThread.cpp.o CMakeFiles/QtAV.dir/VideoFrameExtractor.cpp.o CMakeFiles/QtAV.dir/opengl/ConvolutionShader.cpp.o CMakeFiles/QtAV.dir/opengl/Geometry.cpp.o CMakeFiles/QtAV.dir/opengl/GeometryRenderer.cpp.o CMakeFiles/QtAV.dir/opengl/OpenGLHelper.cpp.o CMakeFiles/QtAV.dir/opengl/OpenGLTypes.cpp.o CMakeFiles/QtAV.dir/opengl/OpenGLVideo.cpp.o CMakeFiles/QtAV.dir/opengl/ShaderManager.cpp.o CMakeFiles/QtAV.dir/opengl/SubImagesGeometry.cpp.o CMakeFiles/QtAV.dir/opengl/SubImagesRenderer.cpp.o CMakeFiles/QtAV.dir/opengl/VideoShader.cpp.o CMakeFiles/QtAV.dir/opengl/VideoShaderObject.cpp.o CMakeFiles/QtAV.dir/opengl/gl_api.cpp.o CMakeFiles/QtAV.dir/filter/GLSLFilter.cpp.o CMakeFiles/QtAV.dir/output/video/OpenGLRendererBase.cpp.o CMakeFiles/QtAV.dir/output/video/OpenGLWindowRenderer.cpp.o CMakeFiles/QtAV.dir/output/audio/AudioOutputPortAudio.cpp.o CMakeFiles/QtAV.dir/output/audio/AudioOutputPulse.cpp.o CMakeFiles/QtAV.dir/qrc_QtAV.cpp.o CMakeFiles/QtAV.dir/qrc_shaders.cpp.o  -L/builddir/build/BUILD/QtAV-master/external/lib -lass -lopenal -lportaudio -lpulse /usr/lib64/libQt5Gui.so.5.15.7 -lavformat -lavcodec -lswscale -lavutil -lavfilter -lavdevice -lswresample /usr/lib64/libQt5Core.so.5.15.7 
/usr/bin/ld: CMakeFiles/QtAV.dir/opengl/GeometryRenderer.cpp.o: in function `QtAV::GeometryRenderer::render()':
/builddir/build/BUILD/QtAV-master/src/opengl/GeometryRenderer.cpp:270: undefined reference to `glDrawElements'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/GeometryRenderer.cpp:272: undefined reference to `glDrawArrays'
/usr/bin/ld: CMakeFiles/QtAV.dir/opengl/OpenGLHelper.cpp.o: in function `QtAV::OpenGLHelper::GLSLVersion()':
/builddir/build/BUILD/QtAV-master/src/opengl/OpenGLHelper.cpp:140: undefined reference to `glGetString'
/usr/bin/ld: CMakeFiles/QtAV.dir/opengl/OpenGLHelper.cpp.o: in function `QtAV::OpenGLHelper::test_gl_param(QtAV::OpenGLHelper::gl_param_t const&, bool*)':
/builddir/build/BUILD/QtAV-master/src/opengl/OpenGLHelper.cpp:357: undefined reference to `glGenTextures'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLHelper.cpp:358: undefined reference to `glBindTexture'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLHelper.cpp:359: undefined reference to `glGetError'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLHelper.cpp:360: undefined reference to `glTexImage2D'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLHelper.cpp:361: undefined reference to `glGetError'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLHelper.cpp:382: undefined reference to `glDeleteTextures'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLHelper.cpp:367: undefined reference to `glDeleteTextures'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLHelper.cpp:378: undefined reference to `glDeleteTextures'
/usr/bin/ld: CMakeFiles/QtAV.dir/opengl/OpenGLVideo.cpp.o: in function `QtAV::OpenGLVideo::fill(QColor const&)':
/builddir/build/BUILD/QtAV-master/src/opengl/OpenGLVideo.cpp:340: undefined reference to `glClearColor'
/usr/bin/ld: CMakeFiles/QtAV.dir/opengl/OpenGLVideo.cpp.o: in function `QtAV::OpenGLVideo::setOpenGLContext(QOpenGLContext*)':
/builddir/build/BUILD/QtAV-master/src/opengl/OpenGLVideo.cpp:233: undefined reference to `glGetString'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLVideo.cpp:234: undefined reference to `glGetString'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLVideo.cpp:235: undefined reference to `glGetString'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLVideo.cpp:236: undefined reference to `glGetString'
/usr/bin/ld: CMakeFiles/QtAV.dir/opengl/OpenGLVideo.cpp.o: in function `QtAV::OpenGLVideo::render(QRectF const&, QRectF const&, QMatrix4x4 const&)':
/builddir/build/BUILD/QtAV-master/src/opengl/OpenGLVideo.cpp:359: undefined reference to `glViewport'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLVideo.cpp:367: undefined reference to `glEnable'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/OpenGLVideo.cpp:374: undefined reference to `glDisable'
/usr/bin/ld: CMakeFiles/QtAV.dir/opengl/OpenGLVideo.cpp.o: in function `QtAV::OpenGLVideo::setViewport(QRectF const&)':
/builddir/build/BUILD/QtAV-master/src/opengl/OpenGLVideo.cpp:286: undefined reference to `glViewport'
/usr/bin/ld: CMakeFiles/QtAV.dir/opengl/OpenGLVideo.cpp.o: in function `QtAV::OpenGLVideo::fill(QColor const&)':
/builddir/build/BUILD/QtAV-master/src/opengl/OpenGLVideo.cpp:341: undefined reference to `glClear'
/usr/bin/ld: CMakeFiles/QtAV.dir/opengl/SubImagesRenderer.cpp.o: in function `QtAV::SubImagesRenderer::uploadTexture(QtAV::SubImagesGeometry*)':
/builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:123: undefined reference to `glBindTexture'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:124: undefined reference to `glTexParameteri'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:125: undefined reference to `glTexParameteri'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:126: undefined reference to `glTexParameteri'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:127: undefined reference to `glTexParameteri'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:128: undefined reference to `glTexImage2D'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:133: undefined reference to `glTexSubImage2D'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:136: undefined reference to `glBindTexture'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:114: undefined reference to `glGenTextures'
/usr/bin/ld: CMakeFiles/QtAV.dir/opengl/SubImagesRenderer.cpp.o: in function `QtAV::SubImagesRenderer::render(QtAV::SubImageSet const&, QRect const&, QMatrix4x4 const&)':
/builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:91: undefined reference to `glBindTexture'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:94: undefined reference to `glEnable'
/usr/bin/ld: /builddir/build/BUILD/QtAV-master/src/opengl/SubImagesRenderer.cpp:102: undefined reference to `glDisable'
/usr/bin/ld: CMakeFiles/QtAV.dir/opengl/VideoShader.cpp.o: in function `QtAV::VideoShader::build(QOpenGLShaderProgram*)':
/builddir/build/BUILD/QtAV-master/src/opengl/VideoShader.cpp:443: undefined reference to `glGetIntegerv'

I tried also with the option BUILD_QT5OPENGL=OFF, but fails in the same manner.

@bambu123
Copy link

bambu123 commented Feb 8, 2023

@papoteur-mga Try building with the "Qt Creator".

@papoteur-mga
Copy link

@papoteur-mga Try building with the "Qt Creator".

Hum, this is not really an option. The goal is to have it packaged in Mageia distribution, thus to be build by our buildsystem.

@papoteur-mga
Copy link

I have tried in the targeted system, importing the last snapshot in qt-creator.
And indeed, this works.
I installed the libraries already listed for the build. This includes GL, EGL, GLES, GLES2 and GLES3.
Thus it seems that the libraries are found from within qt-creator, but when building as standalone.

1 similar comment
@papoteur-mga
Copy link

I have tried in the targeted system, importing the last snapshot in qt-creator.
And indeed, this works.
I installed the libraries already listed for the build. This includes GL, EGL, GLES, GLES2 and GLES3.
Thus it seems that the libraries are found from within qt-creator, but when building as standalone.

@papoteur-mga
Copy link

I found that a difference with our standalone build and within qt-creator is the build type.
In qt-creator I successfull build in Release and Debug mode, but fail in Release With Debug Information with

/home/yves/cauldron/qtav/SOURCES/QtAV-master/src/capi/ass_api.cpp:26:10: fatal error: capi.h: No such file or directory
   26 | #include "capi.h"
      |          ^~~~~~~~

This is the latest build mode that we use.

@TuringApple73
Copy link

Hello, I trying to package QtAV for Mageia 9. We have switched to ffmpeg 5. Thus I applied the berolinux's patch above to the latest release 1.13.0. It seems that compilation passes with ffmpeg part, but I'm stick with this error:

make[1]: Entering directory '/builddir/build/BUILD/QtAV-1.13.0/src'
g++ -c -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -fno-strict-aliasing -DPIC -fPIC -Wall -Wextra -D_REENTRANT -fPIC -DBUILD_QTAV_LIB -DLINK_UCHARDET -DQTAV_HAVE_CAPI=1 -DQTAV_HAVE_SSE4_1=1 -DQTAV_HAVE_SSE2=1 -DQTAV_HAVE_EGL_CAPI=1 -D__STDC_CONSTANT_MACROS -DQTAV_HAVE_X11=1 -DQTAV_HAVE_SWRESAMPLE=1 -DQTAV_HAVE_AVDEVICE=1 -DQTAV_HAVE_AVFILTER=1 -DQTAV_HAVE_OPENAL=1 -DQTAV_HAVE_PULSEAUDIO=1 -DQTAV_HAVE_CUDA=1 -DQTAV_HAVE_QT_EGL=1 -DQTAV_HAVE_LIBASS=1 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -I/usr/include/qt5 -I. -I/builddir/build/BUILD/QtAV-1.13.0 -IQtAV -I../contrib/capi -Icuda -Icuda/dllapi -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I../.moc/5.15.2/QtAV -I/usr/lib64/qt5/mkspecs/linux-g++ -o ../.obj/QtAV_linux_x86_64/VideoDecoderCUDA.o codec/video/VideoDecoderCUDA.cpp
make[1]: Leaving directory '/builddir/build/BUILD/QtAV-1.13.0/src'
In file included from ./cuda/helper_cuda.h:25,
                 from codec/video/VideoDecoderCUDA.cpp:44:
./cuda/dllapi/nv_inc.h:30:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   30 | #if !NV_CONFIG(DLLAPI_CUDA) && !defined(CUDA_LINK)
      | ^~~~~~~~~~~~~~~~~~~~~
./cuda/dllapi/nv_inc.h:35:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   35 | #if NV_CONFIG(DLLAPI_CUDA)
      | ^~~~~~~~~~~~~~~~~~~~~
./cuda/dllapi/nv_inc.h:61:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   61 | #if NV_CONFIG(DLLAPI_CUDA)
      | ^~~~~~~~~~~~~~~~~~~~~
./cuda/helper_cuda.h:26:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   26 | #if NV_CONFIG(DLLAPI_CUDA)
      | ^~~~~~~~~~~~~~~~~~~~~
In file included from codec/video/VideoDecoderCUDA.cpp:45:
./cuda/cuda_api.h:48:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   48 | #if !NV_CONFIG(DLLAPI_CUDA) && !defined(CUDA_LINK)
      | ^~~~~~~~~~~~~~~~~~~~~
codec/video/VideoDecoderCUDA.cpp:323:5: error: 'AVBitStreamFilterContext' does not name a type
  323 |     AVBitStreamFilterContext *bsf; //TODO: rename bsf_ctx
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
codec/video/VideoDecoderCUDA.cpp: In constructor 'QtAV::VideoDecoderCUDAPrivate::VideoDecoderCUDAPrivate()':
codec/video/VideoDecoderCUDA.cpp:167:9: error: 'bsf' was not declared in this scope
  167 |         bsf = 0;
      |         ^~~
codec/video/VideoDecoderCUDA.cpp: In destructor 'virtual QtAV::VideoDecoderCUDAPrivate::~VideoDecoderCUDAPrivate()':
codec/video/VideoDecoderCUDA.cpp:186:13: error: 'bsf' was not declared in this scope
  186 |         if (bsf)
      |             ^~~
codec/video/VideoDecoderCUDA.cpp:187:13: error: 'av_bitstream_filter_close' was not declared in this scope
  187 |             av_bitstream_filter_close(bsf);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~
codec/video/VideoDecoderCUDA.cpp: In member function 'virtual bool QtAV::VideoDecoderCUDA::decode(const QtAV::Packet&)':
codec/video/VideoDecoderCUDA.cpp:391:11: error: 'class QtAV::VideoDecoderCUDAPrivate' has no member named 'bsf'
  391 |     if (d.bsf) {
      |           ^~~
codec/video/VideoDecoderCUDA.cpp:394:49: error: 'class QtAV::VideoDecoderCUDAPrivate' has no member named 'bsf'
  394 |         filtered = av_bitstream_filter_filter(d.bsf, d.codec_ctx, NULL, &outBuf, &outBufSize
      |                                                 ^~~
codec/video/VideoDecoderCUDA.cpp:394:20: error: 'av_bitstream_filter_filter' was not declared in this scope
  394 |         filtered = av_bitstream_filter_filter(d.bsf, d.codec_ctx, NULL, &outBuf, &outBufSize
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~
codec/video/VideoDecoderCUDA.cpp: In member function 'void QtAV::VideoDecoderCUDAPrivate::setBSF(AVCodecID)':
codec/video/VideoDecoderCUDA.cpp:782:14: error: 'bsf' was not declared in this scope
  782 |         if (!bsf)
      |              ^~~
codec/video/VideoDecoderCUDA.cpp:783:19: error: 'av_bitstream_filter_init' was not declared in this scope
  783 |             bsf = av_bitstream_filter_init("h264_mp4toannexb");
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/qt5/QtCore/qmetatype.h:45,
                 from /usr/include/qt5/QtCore/QMetaType:1,
                 from ./QtAV/QtAV_Global.h:27,
                 from ./QtAV/AVError.h:24,
                 from ./QtAV/AVDecoder.h:25,
                 from ./QtAV/VideoDecoder.h:25,
                 from codec/video/VideoDecoderCUDA.cpp:22:
codec/video/VideoDecoderCUDA.cpp:784:18: error: 'bsf' was not declared in this scope
  784 |         Q_ASSERT(bsf && "h264_mp4toannexb bsf not found");
      |                  ^~~
/usr/include/qt5/QtCore/qglobal.h:857:56: note: in definition of macro 'Q_ASSERT'
  857 | #    define Q_ASSERT(cond) static_cast<void>(false && (cond))
      |                                                        ^~~~
codec/video/VideoDecoderCUDA.cpp:786:14: error: 'bsf' was not declared in this scope
  786 |         if (!bsf)
      |              ^~~
codec/video/VideoDecoderCUDA.cpp:787:19: error: 'av_bitstream_filter_init' was not declared in this scope
  787 |             bsf = av_bitstream_filter_init("hevc_mp4toannexb");
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~
codec/video/VideoDecoderCUDA.cpp:788:18: error: 'bsf' was not declared in this scope
  788 |         Q_ASSERT(bsf && "hevc_mp4toannexb bsf not found");
      |                  ^~~
/usr/include/qt5/QtCore/qglobal.h:857:56: note: in definition of macro 'Q_ASSERT'
  857 | #    define Q_ASSERT(cond) static_cast<void>(false && (cond))
      |                                                        ^~~~
codec/video/VideoDecoderCUDA.cpp:790:13: error: 'bsf' was not declared in this scope
  790 |         if (bsf) {
      |             ^~~
codec/video/VideoDecoderCUDA.cpp:791:13: error: 'av_bitstream_filter_close' was not declared in this scope
  791 |             av_bitstream_filter_close(bsf);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile.libQtAV:1409: ../.obj/QtAV_linux_x86_64/VideoDecoderCUDA.o]

The build is done with qmake. I tried with cmake, but got another error. The process build is more or less with this spec file, by adding the patch : https://svnweb.mageia.org/packages/cauldron/qtav/current/SPECS/qtav.spec?view=markup Any clue? Compiler is GCC 12.

Have you solved this problem? How to solve it?

@papoteur-mga
Copy link

Hello, I trying to package QtAV for Mageia 9. We have switched to ffmpeg 5. Thus I applied the berolinux's patch above to the latest release 1.13.0. It seems that compilation passes with ffmpeg part, but I'm stick with this error:

Have you solved this problem? How to solve it?

I use now this repository:
https://github.com/cmguo/QtAV
However, the project compiles in Debug or Release mode within QtCreator, but not in RelWithDebInfo. See errors above.

clrpackages pushed a commit to clearlinux-pkgs/digikam that referenced this issue May 10, 2023
….0.0

Anjani Kumar (202):
      Fix QMap::unite() deprecation warning in
      Fix deprecated declarations of QMap in faceengine , facetags, and related
      Revert "Fix QMap::unite() deprecation warning in"
      Fix deprecated QMap::unite() in presentation plugin
      Fix QProcess deprecated warning in cameracontroller backend
      Fix QProcess depracated warning in cameracontroller on windows
      Remove unnecessary code
      Fix QHash deprecated declarations in FilterAction
      Replace FilterAction::setParameter() with FilterAction::addParameter() in borderfilter
      Replace FilterAction::setParameter() with FilterAction::addParamter() in icctransformfilter
      Reformat code
      Correct comments
      Reformat code
      Fix deprecated QFlag constructor use
      Fix deprecated QLabel::pixmap() usages
      Fix deprecated QTimeLine::setCurveShape() usage
      Fix deprecated QTabletEvent constructor use
      Fix deprecated QWheelEvent::pos() use in glviewerwidget
      Fix QWheelEvent::pos() deprecated use in graphicsdimgview
      Fix QWheelEvent deprecated constructor use in itemviewcategorized
      Fix QWheelEvent deprecated x() & y() in sketchwidget
      Fix deprecated QWheelEvent constructor in dwitemdelegatepool
      Fix QButtonGroup deprecated signals in widgets
      Fix deprecated QPrinter::setOrientation() usages
      Fix deprecated QPrinter usages in Print Creator
      Fix QImage deprecated transformed() usages
      Use Qt::endl in database
      Use Qt::endl in dplugins
      Use Qt::endl in rawengine
      Use Qt::endl in maintenance
      Use Qt::endl in metadataengine
      Use Qt::endl in dimg
      Use Qt::endl in showfoto
      Use Qt::endl in tests
      Fix QString::split() deprecated calls in database
      Fix QString::split() deprecated calls in threadimageio
      Fix QString::split() deprecated calls in dplugins
      Fix QString::split() deprecated calls in utilities
      Fix QString::split() deprecated calls in core/libs
      Fix QString::split() deprecated calls in remaining places
      Replace matrix() with transform()
      Add QT_VERSION check for new QButtonGroup signals
      Add QT_VERSION checks for QWheelEvent
      Add QT_VERSION check for new QLabel::pixmap()
      Add QT_VERSION check for new QFlag constructor
      Add QT_VERSION checks for new QString::split() in database
      Add QT_VERSION checks for new QString::split() in threadimageio
      Add QT_VERSION check on new QString::split() in dplugins
      Add QT_VERSION check for new QString::split() in utilities
      Add QT_VERSION check for new QString::split() in core/libs
      Define QT_ENDL macro to correctly use endl or Qt::endl
      Add comment for QT_ENDL
      Use QT_ENDL macro in dimg
      Use QT_ENDL macro in database
      Use QT_ENDL macro in dplugins
      Use QT_ENDL macro in tests
      Use QT_ENDL macro in maintenance
      Use QT_ENDL macro in showfoto
      Use QT_ENDL in core/libs(remaining places)
      Add missing header
      Define and use macros for Qt::SplitBehavior in QString::split() calls
      Replace qSort() with std::sort()
      Suppress cppcheck STL std::accumulate warnings
      Suppress cppcheck warnings of std::any_of
      Suppress cppcheck warnings for std::count_if
      Suppress cppcheck warnings of std::find_if
      Fix QSet issues by using only QSet constructor to make QSet objects
      Use QRandomGenerator in BQM watermark
      Remove qsrand
      Fix remaining qrand calls
      Port class RandomNumberGenerator to drop boost::random
      Use QRandomGenerator in o1.cpp
      Replace QString::SkipEmptyParts with new macro in exiftool
      Replace removed QDateTime constructor with new function
      Port dbjobsthread.cpp to not use deprecated const_iterator "+" operator
      Remove deprecated QMutex usage
      Replace deprecated QHash::values() with raw loop
      Use const iterators
      Isolate rajce plugin
      Remove Qt X11Extras module
      Use QT_ENDL macro
      Configure cmake with Qt6
      Dummy WelcomPageView for compilation with Qt6
      Dummy Generic WebWidget
      Use i18n
      Add nowebwidget to digikam gui target
      Fix includes
      Fix linking
      Isolate inatbrowser for Qt6
      Add API for QWebEngineView
      Use dummy widget in vkontake_authenticationdialog
      Don't compile webbrowserdlg if no Web Module is found
      Add dummy API in DNoWebDialog class
      Fix No webengine case in htmlfinalpage
      Fix no WebEngine case in Onedrive talker
      Fix No Web Module case in ptalker
      Fix No Web module use dxmlguiwindow
      Fix No Web module usage in browser_gui test
      Fix No Web module usage in flickrtalker
      Fix compilation with Qt6
      Add dummy API to dnowebwidget for HTMLWidget
      Use dummy API from DNoWebWidget when no web module is found
      Correct preprocessor check
      Dont fine QtAV and Marble on Qt6
      Port digiKam targets to Qt6
      Port cmake MacroDPlugins
      Port cmake include dirs in bqm/colors
      Port cmake include dirs in bqm/convert
      Port cmake include dirs in bqm/decorate
      Port cmake include dirs in bqm/enhance
      Port cmake include dirs in bqm/filters
      Port cmake include dirs in bqm/transform
      Port cmake include dirs in bqm/metadata
      Port cmake include dirs in bqm/custom
      Port cmake include dirs in dimg
      Port cmake include dirs in editor/colors
      Port cmake include dirs in editor/decorate
      Port cmake include dirs in editor/enhance
      Port cmake include dirs in editor/file
      Port cmake include dirs in editor/filters
      Port cmake include dirs in editor/transform
      Port cmake include dirs in generic/import
      Port cmake include dirs in generic/metadata
      Port cmake include dirs in generic/tools
      Port cmake include dirs in generic/view
      Port cmake include dirs in generic/webservices
      Port cmake include dirs in generic/webservices/box
      Port cmake include dirs in generic/webservices/dropbox
      Port cmake include dirs in generic/webservices/filecopy
      Port cmake include dirs in generic/webservices/flickr
      Port cmake include dirs in generic/webservices/filetransfer
      Port cmake include dirs in generic/webservices/google
      Port cmake include dirs in generic/webservices/imageshack
      Port cmake include dirs in generic/webservices/imgur
      Port cmake include dirs in generic/webservices/inaturalist
      Port cmake include dirs in generic/webservices/mediawiki
      Port cmake include dirs in generic/webservices/onedrive
      Port cmake include dirs in generic/webservices/pinterest
      Port cmake include dirs in generic/webservices/piwigo
      Port cmake include dirs in generic/webservices/smugmug
      Port cmake include dirs in generic/webservices/twitter
      Port cmake include dirs in generic/webservices/vkontake
      Port cmake include dirs in generic/webservices/yandexfotki
      Port cmake include dirs in rawimport
      Port cmake include dirs in core/libs
      Port cmake include dirs in core/showfoto
      Port cmake link targets in core/tests
      Port cmake include dirs in core/tests
      Port cmake include dirs in core/utilities
      Link Core5Compat
      Link Core5Compat
      Remove PRIVATE
      Link Core5Compat module
      Include Core5Compat in cmake
      Include Core5Compat in bqm/colors in cmake
      Include Core5Compat in bqm/convert in cmake
      Include Core5Compat in bqm/custom in cmake
      Include Core5Compat in bqm/decorate in cmake
      Include Core5Compat in bqm/enhance in cmake
      Include Core5Compat in bqm/filters in cmake
      Include Core5Compat in bqm/metadata in cmake
      Include Core5Compat in bqm/transform in cmake
      Include Core5Compat in dimg in cmake
      Include Core5Compat in editor/colors in cmake
      Include Core5Compat in editor/decorate in cmake
      Include Core5Compat in editor/enhance in cmake
      Include Core5Compat in editor/file in cmake
      Include Core5Compat in editor/filters in cmake
      Include Core5Compat in editor/transform in cmake
      Include Core5Compat in dplugins/generic in cmake
      Include Core5Compat in dplugins/rawimport in cmake
      Include Core5Compat in core/libs in cmake
      Include Core5Compat in core/tests in cmake
      Include Core5Compat in core/utilities in cmake
      Link Core5Compat module
      Fix Qt5 build
      Simplify cmake options for Web modules
      Fix cmake
      Fix cmake
      Port QRegExp to QRegularExpression in libs/database
      Port QRegExp to QRegularExpression in dplugins
      Port QRegExp to QRegularExpression in core/libs
      Port QStringRef to QStringView
      Port QRegExp::exactMatch()
      QRegExp: Port advancedrename tool
      Port advancedrenamemanager
      Port advancedrename tool parser modifiers
      Port advancedrename tool parser options
      Port albummodel unit test
      Port mediawiki tests
      Fix includes
      Port remaining possible QRegExp uses
      Port QTextCodec
      Fix regex pattern
      Port common advancedrename API to pass QRegularExpressionMatch result
      Port parser modifiers to comply with updated API
      Port advancedrename parser options to comply with updated API
      Fix object construction
      Add comment for observations
      Add TODO for QtAV and Marble dependencies in cmake
      Documentation
      Build host with Qt6  for appimage

Antoni Bella Pérez (2):
      Add l10n helpers and upercase fixes
      Typo in i18n plural

Antonio Rojas (2):
      Fix build with akonadi-contacts 22.04
      Fix build with FFmpeg 6

Ben Cooksley (3):
      Switch to new Gitlab CI infrastructure
      Fix KDE CI configuration
      We will be deprecating build.kde.org, ensure the appropriate jobs are enabled for Digikam

Daniel Novomeský (2):
      flatpak: add libde265
      3rdparty: upgrade libheif to 1.15.1

David Haslam (2):
      Settings: add options for color label and pick label visibility
      Visibility of color labels and pick labels.

Gilles Caulier (2616):
      fix maerge conflict with master
      fix merge master conflicts
      fix merge master conflicts
      Fix merge master conflicts
      Disable not yet ported to Qt6
      port Qt6++
      port Qt6++
      disable po download and build for the moment
      port Qt6++
      port Qt6++
      port Qt6++
      port Qt6++
      port Qt6++
      port Qt6++
      port Qt6++
      port Qt6++
      port Qt6++
      compiling with Qt6 require at least to be C++17 compliant
      As Kate editor, no use CXX extensions
      Qt6 port++
      Qt6 port++
      Qt6 port++
      GCC10 is crazy to compile DK code with Qt6. Try clang instead. CCBUGS:416704
      GCC10 is crazy to compile DK code with Qt6. Try clang instead. CCBUGS:416704
      There is no difference with clang. Revert to GCC. CCBUGS:416704
      Qt6 port++
      helper bootstrap to compile with Qt6
      Qt6 port++
      Qt6 port++: extra qt min version check before to find whole Qt5/6 components CCBUGS: 416704
      Qt6 port++
      polish
      port to Qt6 CCBUGS: 416704
      Qt6 port++ CCBUGS:416704
      Qt6 port++ CCBUGS: 416704
      Qt6 port++
      Why these macro has diseapear while merging master in this branch
      Qt6 port ++
      Qt6 port++ : Qt6::QtConcurrent::run() arguments are inverted. CCBUGS: 416704
      Qt6 port++ : Qt6::QtConcurrent::run() arguments are inverted. CCBUGS: 416704
      Restore compilation of rolling code
      Qt6 port++\nCCBUGS: 416704
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++: min Qt5 version to be compatible with Qt6 API: 5.14.0
      Qt6 port++
      Qt6 port++
      Qt6 port++: Qt6::QVariant do not support QMultiMap. So faces map to QVariant will be empty until we found a solution. By chance, this conversion is not yet used in digiKam core
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++: update internal O2 library to last code from github with Qt6 support
      Qt6 port++: update internal O2 library to last code from github with Qt6 support
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++: migrate from KDE4 page wil only avaialble for Qt5 version not Qt6
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++: fix keyboard modifier separator from + to |
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Now libdigikam core based on Qt6 compile and link:
      Qt6 port++
      Now digikamdatabase Qt6 based link properly:
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Now Showfoto Qt6 based is here :
      All BQM and DImg plugins compile fine
      All Image eDitor plugins compile fine now
      All RawImport plugins compile fine now
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Qt6 port++
      Install KF6::filemetadata and check if Baloo wrap code compile under Qt6
      Qt6 port++
      Qt6 port++
      \+/ DONE
      Qt6 port++ : enable unit-test compilations
      Qt6 port : All Unit-tests compile now.
      Hack to setup install variable not set with KF6
      more missing install var to set.
      Bump Qt6 port as 8.0.0-git version
      restore multicore compilation
      obsolete
      Qt6 port++
      NEWS file for 8.0.0 release
      Fix broken compilation with Qt5 and ICCSettings class.
      Fix broken compilation with Qt5
      fix linking stage with Qt5
      fix broken compilation with Qt5
      separate well private an public implementations
      Give credit to Anjani and Tran
      add note aboute this branch
      New digiKam and Showfoto 8.0.0 splash-creens from Thomas Steffen
      add location information
      copy xkbcommon file definitions in the bundle
      fix warnings with Qt6
      Print install path provided by ECM on the console and patch all install path used in cmake scripts use KDE prefix full paths
      rename internal function to prevent GCC warning about hidden method.
      typo
      Fix broken compilation
      typo
      fix compolation
      fix compilation
      silent intrusive boost pragma messages while compiling
      Qt::AA_EnableHighDpiScaling work only with Qt5. Under Qt6, this setting has no effect (feature is always enabled)
      fix qt6 deprecated
      fix GCC warnings
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      export install paths detection in a dedicated cmake macro
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port ++
      qt6 port ++
      qt6 port ++
      qt6 port ++
      qt6 port ++
      qt6 port ++
      qt6 port ++
      qt6 port ++
      qt6 port++: rename setModel() to setAlbumModels() to prevent hidden redefinition with Qt API
      qt6 port++
      qt6 port ++: reduce warnings from kservice headers
      qt6 port ++
      use ninja and ccache to speed-up compilation
      qt6 port ++
      qt6 port ++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++: reduce warnings from KService
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port++
      qt6 port ++
      Add Ninja support
      first stage to detect Qt6 silently
      use QT_ENDL macro
      qt6 port ++
      fix GCC warnings
      qt6 port ++
      this Qt compilation option can be enabled as with use now at least Qt 5.14.0 API
      KDE -> Plasma
      polish
      set min versions for Qt5 and Qt6
      try to use new CI
      use const ref
      add link to guide to port to new API
      polish
      update URLs
      fix urls and polish
      Fix crash due to wrong called method to setup search model.
      update
      Add Qt6 port TODO
      remove unecessary dependencies to Core5Compat from core/utilities
      core/test : remove unecessary Core5Compat dependency
      remove Core5Compat dependency in showfoto and digikam targets
      only digikam core (metaengine) and digikam gui (geolocation) objects still needs Core5Compat dependency
      No needs to link all dplugins with Core5Compat
      remove dplugins Core5Compat dependency
      port this Qt5::QTextCodec to Qt6::QStringEncoder
      wrong patch here...
      update
      KCodecs cannot be used to replace QTextCodec
      update
      update
      remove Qt6::Core5Compat dependency from libdigikamcore.
      update
      update
      Add FlowView digiKam and Shwofoto generic plugin to the bundles.
      Fix urls
      fix coding style
      use _WIN32 instead Q_OS_WIN
      revert libraw header patch for FreeBSD compilation and patch cmake script instead
      separate classes
      typo
      separate classes
      separate classes
      separate classes
      polish
      separate classes
      separate classes
      Exiv2 0.27.3 compile with C++17
      remove Core5compat dependency
      try to fix broken compilation with Qt5 under Freebsd about C++17 std
      must be enough with my last fix in metadata engine C++ support cmake patch
      try to fix libdng compilation under Windows: C++11 only
      Fix MSVC buimd
      Add hamburger menu drop-down button in all window tool-bars if main-menus are hidden.
      restore rajce plugin with Qt5 build
      Fix MSVC 'SORT_DIGITSASNUMBERS' undeclared identifier.
      Fix broken MSVC CI: add LCMS2 headers path to compilation rules
      Fix MSVC compilation: there is a typo with JPEG include path variable from cmake.
      set jpeg include dir if JPEG version 6 or later is found, not only if JPEG version 8 or later
      fix MSV compilation: missing KF5::CoreAddons includes rules
      more MSVC warnings disabled
      MSVC linking fix with O2 lib: use DIGIKAM_EXPORT macro
      Fix MSVC broken compilation
      reduce MSVC warnings from lcms2
      Fix MSVC wlinking warnings with libheif
      fix MSVC linking warning with exported symbols
      polish
      try to enable linux-qt6
      Switch to opengl new policy
      fix comments
      fix cmake warning about find lqr-1 module.
      Fix broken linking with liblqr-1
      no needs cmake macro here
      polish
      krazy++
      krazy++
      krazy++
      cppcheck++
      re-enable this warning for GCC and clang, as all code must be patched now
      fix gcc warnings
      this warning rules can be also removed
      Split large core/CMakeLists.txt to separated rules
      clazy++
      fix indirect deprecated warnings from kstandardaction.h and kactioncollection.h headers
      fix deprecated warnings from KServices
      more separated rules in delegate cmake scripts to improve readability and maintenance
      more cmake delegate rules
      Fix more warnings from boost under freebsd
      Remove more warnings from KDe header under freebsd
      rename from Cmake Macro to rules
      polish
      polish
      Fix makdown syntax in API doc
      clazy++
      fix clang warnings
      remove compiler warnings about deprecated legacy types as uint8/16/32. We needs to port later TIFF loader code with more modern types.
      krazy++
      polish
      add more qt6 checks
      remove no-dev
      missing header
      Freebsd build pass with lqr-1 dependency now.
      sync from qt5-maintenance branch
      add 7.6.0 release date
      Fix krazy report abut non contextualized translated strings about XMP namespace container titles.
      Fix broken compilation with recent KF5 releases
      backport fix from qt5 maintenance branch about release version date substring for bundles
      Remove definitively I18N_NOPP2 uses as it's deprecated.
      sync master with qt-maintenance branch.
      Sync master with qt5-maintenance branch
      sync with qt5-maintenance branch
      clazy++ : call parent class, not sub-parent class
      clazy++ : use const ref
      sync with qt5-maintenance branch
      clazy++ : qHash return type has changed with Qt6 (uint -> size_t)
      remove tee pipeline which give an error at end
      Fix CR #1502822
      fix CR #1502823
      fix CR #1502819
      clazy++ : missing 3rd argument for lambda connection.
      disable this warning from clazy which is a false positive
      clazy++ : this function is not a public slot
      More split cmake codes as rules
      rename
      what's this clazy warning exactly ???
      Ignore this clazy warning with Qt5 as it's only for qt6
      more clazy warnings enabled
      fix dupplicates lines
      polish
      backport commit to drop libheif/libde265 from digiKam core in favor of system libraries
      FlatPak build configuration for KDE server: add libde265 and libheif dependencies for 7.7.0 release and later
      add links to Snap bundle config and front page
      fix broken compilation with this removed sub-dir
      these targets do not exists anymore
      add libheif and libde265 dependencies
      fix warnings with recent cmake version
      Make libheif dependency optional
      Only check for libx265 if libheif is found
      No need to link digikamcore with libx265
      fix coding style
      fix typo
      fix urls
      Add libx265 version in component information dialog
      add url ro the project
      cleanup
      move comment at the right place
      add comment
      polish
      sync with qt-maintenance branch
      Add CI/CD craft information
      update
      sync with qt5-maintenance
      sync with qt5-maintenance
      cleanup
      add link to KImageFormat for extended list of plugins
      update
      JpegXL support: sync git/master with qt5-maintenance branch
      sync with qt5-maintenance
      fix url
      AVIF support: sync with qt5-maintenance branch
      sync with qt5-maintenance
      sync with qt-maintenance
      try to fix flatpak build with flowview plugin
      add url
      add url
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      Sync with qt5-maintenance
      DImg plugins about dialog: add 2 new columns in type mimes tab to indicate read and write supports for each format.
      sync with qt5-maintenance
      sync with Qt5-maintenance
      extend dplugin dialog extra data API to be more generic for the future
      sync with qt5-maintenance
      revisite cppcheck config: C++17, drop Qt5 port check, and remove obsolete dirs for 3rdparty code
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      krazy++ : add more i18n context for translators
      Fix CR #1455820
      fix CR #1503056
      Qt6 port ==> now whole digiKam must be ported to pure Qt6 API.
      Better check to see if memory info is available
      sync with qt5-maintenance
      delete destructor to prevent crash at shutdown
      sync with qt5-maintenance
      sync with Qt5-maintenance
      Depending of the Exiv2 version, the C++ standard to support is not the same:
      With Exiv2 1.0.0: Exiv2::AnyError class was renamed to Exiv2::Error
      With Exiv2 >= 1.0.0, we need a (int) cast here
      With Exiv2 >= 1.0.0 : toLong() -> toInt64()
      With Exiv2 >= 1.0.0 : Exiv2::DataBuf internal buffer must use accessors now
      LAst fix to compile with Exiv2 >= 1.0.0
      sync with Qt5-maintenance
      sync with Qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      missing libde265 entry here
      For C++17 compatibility, register keyword must be disabled everywhere in digiKam with LCMS2 API uses.
      AppImage: preload libgmodule for Fedora compatibility
      Image MAgick is compiled with modules outside Macports
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      Sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      New abstract class to define DImg loader settings widget implementations.
      checkout master code here, not qt5-maintenance branch
      Port HEIFSettings widget to new API
      Port JP2KSettings widget to new API
      Port PGFSettings widget to new API
      Port PNGSettings widget to new API
      Port TIFFSettings widget to new API
      Port JPEGSettings widget to new API
      typo
      DPluginDImg: New virtua method to create a new export settings widget instance for a supported format.
      And now, move all DImg Plugin export settings widgets from core to respective plugins as well.
      rename this class
      rename this class
      rename this class
      rename this class
      rename this class
      rename this class
      polish
      missing to handle lossless compression with PGF export
      separate load and save methods
      separate load and save method
      JPEG-XL support : add new export options widget for image editor to tune compression quality or to switch to lossless compression
      Add JPEG-XL support to type-mime filters
      JPEG-XL support: add rules to convert lossless image from/to standard JPEG (aka JPEG2000, HEIF, PGF, etc...)
      JXL is not yet recognized as image type from Qt MimeType Database
      Add 2 new PluginLoader functions to check if a format is supported as import from image or export to image (read/write support).
      JPEG-XL support: Add ImageEditor format support from Setup dialog
      Add JXL check here
      JPEG-XL support: Add new Batch Queue Manager tool to convert image to JXL
      update
      Add HEIF and JPEG-XL as possible file format for image versionning.
      We needs config header here
      AVIF support: add new export settings widget in QImage plugin loader
      heic -> heif (to be homogenous
      AVIF support: add this format in type mime filters
      AVIF support: as JPEG-XL, Qt5 <= 5.15.2 mime type database do not support yet this file format as image.
      AVIF support: enable this format for lossless conversions and for versionning.
      AVIF support: enable image editor AVIF file save options while exporting.
      Fix i18n reported on the console
      typo inverted
      AVIF support: add new Batch Queue Manager to convert in this format as JPEG-XL.
      update
      typo
      as under Image editor setup versionning, population image format combobox with more user friendly string and pass format string as item extra data
      cppcheck++
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      krzay++
      krazy++
      krazy++
      Dump list with new RAW file formats supported by libraw (double-checked with Gimp file open dialog list of type-mime)
      WEBP support : add new export settings widget to tune quality and lossless parameters
      WEBP support : add lossless compression support while converting from JPEG during camera download.
      WEBP support: add this format in editor default export options
      WEBP Support : add this format in Batch Queue Manager to procress conversions
      update
      fix i18n
      Share lossless image format description between editor versioning settings and advanced import settings.
      krazy++ : add context for i18n
      add more descriptions and i18n context
      Krazy++ : add missing i18n context
      krazy++ : add i18n context
      prevent crash if item is null
      krazy++ : add i18n context
      fix 18n syntax to use with x18nc
      Add ExifTool backend to load metadata for image or video.
      Write metadata with ExifTool backend if Exiv2 fails to process, for exemple with RAW files or Video files.
      cppcheck++
      Use only ExifTool backend to write metadata to RAW files, as Exiv2 is fully unsafe with these kind of operations.
      Writing metadata to DNG is also unsafe with Exiv2. Use ExifTool backend instead.
      update
      Metadata Editor: only check of read-only mode for Exif, Iptc, and Xmp if write to file only operation option is selected and if file properties on disk is read-only.
      compile
      update
      Check target file name properly when writing metadata with ExifTool
      update
      More files closed with ExifTool backend used to write metadata to RAW files instead Exiv2.
      sync with qt5-maintenance
      fix layout
      ExifTool Support:
      update
      update
      update
      update
      update
      update
      add notes about ExifTool backend write operation limitations
      update
      update
      sync with qt5-maintenance
      sync with qt5-maintenance
      missing to commit these changes
      compile
      sync with qt5-maintenance
      add qtav source code and compilation rules
      Qtav compile now, but few flag need to be tuned properly
      fix ffmpeg modules to check
      Add openAL dependency for QtAV
      add QtAv more compile rules
      add qtav port and pulse audio
      fix ffmpeg and portaudio dependencies checks
      add more QtAV dependecies checks
      Add libass Qtav dependency
      add QtAV rules for X11
      qtav++
      fix export symbols
      cache more ffmpeg variables
      Drive QtAV dependecies checks on top level
      typo
      QtAV linking ++
      Now QtAV link at 100%
      fix qtav preprocessor warnings
      Try to silent ffmpeg deprecated
      QtAV integration is complete and work to play video.
      Cleanup preprocessor rules for QtAV
      fix init members order warnings
      Fix init members order (done)
      slots -> Q_SLOTS
      fix broken compilation under MSVC due to Digikam::filter.h and QtAV::Filter.h (yes, Windows is not case sensitive...)
      fix warnings with signed and unsigned comparisons
      fix misleading indentation warnings
      fix format extra arguments warnings
      fix unused parameter warnings
      fix non virtual destructor warnings
      fix warnings to use default QFlags constructor
      fic Woverloaded virtual warnings
      polish
      pure qt5++
      pure Qt5++
      pure qt5++
      pure Qt5++
      pure Qt5++
      QtAV code is now ported to pure Qt5/6 API.
      remove QtAV svg icon and separate QDeciveIO test code in dedicated implementation
      Tab to spaces conversions
      restore broken file with previous commit
      drop extra spaces
      tr() -> i18n()
      tr() -> i18n()
      fix headers
      cppcheck++: passed by value
      rename QtAV version header with QtAV prefix to prevent compilation conflicts
      fix headers
      fix header and coding style
      fix headers
      move this header with implementations in use
      Fix headers
      Better report of MediaPlayer depencencies checks
      fix header conflits if qtav is already installed on computer
      fix i18n
      use i18n
      qtav is not necessary in master
      QtAV is not necessary from master
      Fix includes to prevent use of installed QtAV from system
      fix includes to prevent conflicts with installed QtAV
      fix includes to prevent conflicts with installed QtAV
      fix includes to prevent conflicts with installed QtAV
      fix includes to prevent conflicts with installed QtAV
      fix includes to prevent conflicts with installed QtAV
      fix includes to prevent conflicts with installed QtAV
      declare meda player definitions and share between qtav and test video
      comments about these warnings disabled
      fix includes to prevent conflicts with installed QtAV; fix coding style; prepare debug spaces for QtAV
      fix includes to prevent conflicts with installed QtAV
      fix includes to prevent conflicts with installed QtAV
      fix includes to prevent conflicts with installed QtAV
      fix includes to prevent conflicts with installed QtAV
      add QtAV debug space
      krazy++
      Use digiKam debug space categories
      use digiKam qCdebug/qCWarning categories
      update
      update
      integrate tests code from QtAV
      Fix header
      fix coding style
      fix includes to prevent conflicts with installed QtAV
      fix coding style
      fix includes to prevent conflicts with installed QtAV; use digiKam debug spaces; fix coding style
      use digiKam debug space
      fix coding style
      update
      fix coding style
      fix coding style
      fix coding style
      do not use quote with QtAV debug spaces
      polish
      fix coding style
      Add optional uchardet dependency for QtAV
      update
      update
      update dependencies list for QtAV
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      Add SSE2 and SSE4.1 support for QtAV
      add compiler flags to process SSE optimized codes in QtAV
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      move capi wrappers at the right place
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding styler
      fix coding style
      fix coding style
      fix private includes
      polish
      move capi.h to utils sur dir
      fix QtAV include rules
      remover logger feature
      fix coding style
      fix coding style
      enable mediaplayer option by default
      check media player dependencies only if top level option is enabled
      fix coding style
      Try to fix MSVC build about classes file-name conflicts with QTAV API.
      Fix broken compilation
      fix coding style
      fix broken compilation with MSVC
      fix broken compilation under MSVC
      Use QtAV_ prefix with this class to prevent future conflicts under Native Windows where upper-cases is not supported with filenames.
      fix broken compilation under freebasd
      fix broken compilation
      fix coding style
      Start to add QtAV DirectX support under native Windows (MSVC). First one Direct3D
      add files to compile for Direct3D support
      typo
      polish
      cleanup
      Add Support of XAudio2 for QtAV (replacement of DirectSound)
      typo
      typo
      more QtAV private headers to rename with QtAV_ prefix and to move to utils sub dir
      typo again
      fix coding style
      fix coding style
      Try to fix MSVC build
      fix broken compilation
      missing file to compile for Directx3D
      Add DirectSound support for QtAV
      fix broken compilation
      typo
      polish
      polish
      polish
      polish
      another file to compile with MSVC
      fix broken compilation
      fix coding style
      fix broken compilation
      fix coding style
      fix coding style
      includes these files in MSVC build
      fix coding style
      Add QtAV X11 and XV support
      update
      add GDI suport for QtAV under Windows MSVC build
      try to fix GDI compilation error
      Second try to fix broken compilation with GDI
      GDI++
      GDI++
      gdi++
      gdi++
      gdi++
      gdi++
      GDI => GDI+
      typo
      Fix coding style
      polish
      obsolete
      Add DirectX 2D support QtAV
      fix broken compilation
      fix coding style
      reorganize QtAV Widgets class by features in dedicated sub-dirs
      move these classes to common subdir
      Move all header near the relevant classes to not make a mess in QtAV build
      move all classes from top level QtAV : ffmpeg based classes to ffmpeg subdir and all other in utils
      fix broken compilation
      try to build using one cmake script to detect DirectX
      drop IPP support
      rename export macro
      This .mm need to be compiled under MacOS
      this assembly code is releavant of cedarv support
      fix coding style
      Fix EGL support and rules in QtAV. This must fix the broken compilation under MacOS
      fix mess with egl and capi namespace usages
      fix another broken compilation under MacOS
      pure qt5
      missing )
      Fix link under MacOS for QtAV
      anither rules to drive QtAV with FFMPEG VDA decoder availability to check later
      polish
      Fix Macos linkage with QtAV. All is fine now.
      QT6++
      qt6++
      polish
      this def depend of OPENGL
      These widget are not compatible with Qt6
      Qt6 ++
      less Clang warnings
      reduce unwanted warnings from QtAV::CAPI
      force D3D11 detection
      fix coding style
      fix coding style
      cleanup
      fix coding style
      fix linking under MSVC
      typo
      typo
      fix broken compilation under MSVC
      fix coding style
      fix coding style
      fix coding style
      polish
      fix coding style
      fix dupplicate line
      separate well OpenGL and EGL rules
      comment
      this class is obsolete as it depends of libavcodec/vda.h for accerelated hardware decoding.
      enavle DirectX VA video decoding based on libavcodec/dxva2.h
      fix path
      fix coding style
      Qt6 ++
      fix coding style
      fix coding style
      fix coding style
      update
      polish
      These 2 FFMPEG components are optional to compile QtAV
      Pass DirectX include dirs under Windows
      lower case for MXE as it's based on Linux
      Fix coding style
      fix codings tyle
      fix coding style
      x2audio ++
      directx ++ for MXE
      directx++ for MXE
      one entry done
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      CUDA is always dynamic loaded
      fix coding style
      fix broken compilation under MXE
      cppcheck++
      cppcheck++ (we will not touch this code anymore)
      cppcheck++
      fix coding style
      this code is not used
      cleanup and rename files
      fix coding style
      cppcheck++ : qSwap => std::swap
      cppcheck++
      cppcheck++ : fix null pointer dereference
      cppcheck++
      cppcheck++
      drop Qt4 rules
      cppcheck++ : missing override
      cppcheck++ : missing override
      fix coding style
      fix coding style
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++ : use C++ cast instead C
      cppcheck++
      cppcheck++
      more details about production files to use
      polish
      polish
      polish
      update
      cppcheck++
      cppcheck++
      cppcheck++
      Use clang-tidy to patch all QtAV code for NULL/0 -> nullptr
      update
      cppcheck++
      update
      polish
      cppcheck++
      cppcheck++
      use master
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      fix coding style
      fix coding style
      cppcheck++
      patch to apply to krazy static analyzer
      drop python check from krazy which crash the analyzer
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      krazy++
      krazy++
      krazy++ : malformed i18n
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      kray++
      krazy++
      krazy++
      krazy++
      sync with qt5-maintenance
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      add QtAV libopensles support with CMake
      update
      update
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      all krazy fixes are done
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      restore
      add script to run single checker from krazy static analyzer over current directory
      cppcheck++
      krazy++
      cppcheck++
      cppcheck++
      cppcheck++
      cppecheck++
      cppcheck++ (DONE)
      clang++ : check if thread pointer is null to prevent a crash
      clang++ : check if thread pointer is null to prevent a crash
      clang++ : check if thread pointer is null to prevent a crash
      clang++ : check if thread pointer is null to prevent a crash
      clang++ : check if thread pointer is null to prevent a crash
      clang++ : check if thread pointer is null to prevent a crash
      all clang scan fixes done
      move this class at the right place
      Fix coding style
      fix coding style
      fix coding style
      fix coding style
      use QDebug instead printf
      use qdebug instead printf
      fix coding style
      fix coding style
      update
      Fix conding style
      fix coding style and constify
      fix clang warnings under MacOS
      fix clang warnings under MacOS
      fix clang warnings under MacOS
      cppcheck++
      fix clang warnings under MacOS
      fix clang warnings under MacOS
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      fix coding style
      clazy++
      fix clang warnings under MacOS
      clazy++
      clazy++
      declare all internak private classes as hiden objects
      fix coding style
      hiden symbols from internal structures with Q_DECL_HIDDEN macro
      fix coding style
      fix coding style
      fix coding style
      fix codings tyle
      add new dependency for MXE
      port GLWidgetRender to QOpenGLWidget for Qt5 and Qt6 support
      this class is only used for qt < 5.4
      more excludes type with krazy
      fix coding style
      krazy++
      krazy++
      krazy++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      rename files by features
      fix coding style
      clang-scan++
      fix coding style
      fix coding style
      sync with qt5-maintenance
      this file is for IOS only. Removed
      rename these files to be homogeneous
      rename this class
      rename this class
      add QtAV example player code to check all API
      QtAV player compile now
      include qrc in QtAV player
      pure qt5
      compile
      add all other non QML QtAV examples
      no need export common
      fix header
      signals -> Q_SIGNALS
      compile under Windows
      use dedicated namespace QtAVPlayer
      use qCDebug/qCWarning
      use qCDebug and qCWarning
      fix coding style
      NULL => nullptr
      fix coding style
      fix codings tyle
      fix coding style
      fix coding style
      remove vkontakte and yandexfotki plugins (deprecated)
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      move theme dir on root
      QtAv ex++
      QtAV ex++
      QtAV ex++
      QtAV ex++
      QtAV ex++
      QtAV ex++
      QtAV ex++
      QtAV ex++
      QtAV ex++
      QtAV ex++
      QtAV ex++
      QtAV ex++
      QtAV ex++
      fix coding style
      krazy++
      krazy++
      fix coding style
      krazy++
      krazy++
      deprecated paths to ignore
      cppcheck++
      fix broken compilation under MacOS
      fix broken linking under MacOS
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      drop libpgf from static analyzes
      cppcheck++
      remove log options
      krazy++
      clang++
      Config => ConfigManager
      missing icon
      export qtav player as new plublic stand alone tool named avplayer
      fix broken compilation
      fix broken compilation
      fix coding style
      fix coding style
      fix broken compilation
      fix broken compilation
      fix broken linking
      relocate avplayer code
      obsolete
      fix broken compilation
      fix install
      move these files to main subdir
      use breeze icons intead ressource
      compile
      fix coding style
      fix coding style
      install Qt catalog
      Another patch for Dr MinGW support
      more check under Windows
      polish
      rename AVPlayer clas to AVPlayerCore to prevent conflict with AVPlayer namespace
      dead code for qt4
      remove dead code for qt4
      polish
      fix debug space name
      add new MacOS type mime supported
      update mime types
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      krazy++
      rename this class to be more explicit to re-use later in digiKam setup to configure video player
      krazy++
      obsolete method
      prepare to KConfig port
      sync with qt5-maintenance
      factoring and code cleanup
      polish
      port write config to KConfig
      polish
      port read config to KConfig
      port history read/write operations using KConfig text file instead SQlite database
      polish
      polish
      fix group2 to restore decoder list
      set tab horizontal on top of dialog
      remove dead code
      polish
      factoring and simplification
      Move AVPlayer config widgets to core/QtAV to allow to re-use these settings view in a new Video section from digiKam Setup dialog.
      Add Setup Video page from digiKam configuration dialog.
      file missing
      Hide advanced settings for each decoder as nothing is saved and restored between the sessions. Only the list of decoder and the priority is saved
      use d private internal container
      add reset button
      reduce clang warnings
      ezduce clang warnings
      fix clang warning
      fix clang warning
      fix clang warnings
      fix clang warnings
      fix clang warnings
      fix clang warnings
      polish
      fix coding style
      krazy++
      krazy++
      krazy++
      krazy++ : we can use https here as http url and https point to the same contents
      fic clang-scan report
      fix clang warnings
      Coverity Report looks like incredible to detect copy-paste error in code.
      fix CR:1504422
      fix CR #1504418
      fix CR:1504425
      fix CR #1504420
      fix CR #1504426 and #1504424
      fix CR #1504152
      fix CR #1504419
      fix CR #1504423
      emit => Q_EMIT exerywhere in QtAV code (prevent conflict with ffmpeg API)
      fix i18n
      preview over video player time slider is not supported in digiKam video preview widget
      fix i18n
      fix coding style
      fix coding style
      rename Slider class to AVPlayerSlider
      cppcheck++
      clazy++ : missing Q_OBJECT macro
      clazy++
      polish
      clazy++
      clazy fix : disable Qt keywords to be more pure Qt6 and ready for the future.
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      fix coding style
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      clazy ++
      clazy++
      clazy++
      polish
      krazy++
      krazy++
      krazy++
      krazy++
      use Q_ENUM_NS to declare 2 enum in QtAV namescape and prevent to use deprecated Q_ENUMS macro
      clazy++
      clazy++
      clazy++
      fix coding style
      fix macos broken compilation
      fix broken compilation under MSVC
      update
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      clazy++
      clazy ++
      krazy++
      clazy++
      Do not declare Qt signals in a non QObject based class as virtual function.
      factoring
      fix broken MSVC compilation
      drop extra spaces
      cppcheck++
      factoring
      krazy++
      this check is not necessary
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      Fix coding stye
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      cleanup i18n
      fix coding style
      if AVResample is not available, map to SWResample instead
      fix undef warning
      This define is onlt used in QtAVWidgets_Globals.h, but to do what ???
      macro to cleanup undef warning with commented code
      more undef warning fixes
      fix CUDA_API_VERSION undef warnings
      Fix linking stage
      voilà, fix last undef warnings from QtAV... outch...
      update
      krazy++
      fix clang warnings
      fix clang warnings
      update
      start to port to ffmpeg version 5 API
      fix coding style
      ffmpeg5++
      ffmpeg5++
      ffmpeg5++
      ffmpeg5++
      update
      ffmpeg5++
      fmmpeg5++
      Done. Full ffmpeg 5 support patch from QtAV issue https://github.com/wang-bin/QtAV/issues/1377#issuecomment-1014959481 is now applied on QtAv code integrated to digiKam core
      update
      use Cmake to determine the FFMPEG version 5 API
      add check if FFMpeg version string is empty
      TODO: extract FFMpeg module version string under Windows
      Add check in AVCompat.h for FFMpeg 5 API availability
      Fix cmake warnings
      add missing files for Android support (for the future)
      first try to enable windows IO for QtAV
      fix coding style
      fix FFMPEG 5 compatibility with cmake script
      disable winrtio for the momet
      try to fix linking stage about libavresample
      use a more generic definition for FFMPEG 5 detection as rules to wrap FFMPEG 4 and 5 will be used outside QtAV code
      FFMPEG5 port++
      FFMPEG 5 port ++ : QtAV code compile now WITHOUT any guaranty to be functional. Take a care!
      Fix linking stage with FFMPEG 5 and QtAV: VAAPI and CUDA need to be ported to new API
      cppcheck++
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      update
      show a cmake warning message if ffmpeg 5 is detected
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      declare struct as hidden in cpp to reduce fingerprint
      enable deprecated warning from FFMPEG 5 only for this version, not with FFMPEG4
      internal struct tagged as hidden
      hide internal struct
      fix coding style
      fix coding style
      hide more internal structure
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      move directx classes to windows sub dir (as QtAVWidgets)
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      fix coding style
      fix coding style
      krazy++
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      update
      port to FFMPEG5: clazy static anayzer report a wrong use a QMap with a pointer as key. Use QHash instead.
      more hidden class hosted in private areas
      fix coding style
      fix coding style
      Qtav code is now hosted in digiKam core
      fix broken compilation with ffmpeg5
      fix coding style
      fix coding style
      fix coding style
      hide C++ warnings from Qt5 API (fixed in Qt6)
      fix codings tyle
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      add linkd to KDE blueprints setting details
      fix coding style
      unused include
      to prevent broken compilation under Windows, we needs to limit include paths else we can be outside a string limit.
      add note
      Try to use pkgconfig under Craft
      pkgconfig work under Craft
      fix coding style
      port to FFMPEG 5 API
      port to ffmpeg5 API
      fix coding style
      try to fix xaudio2 linking
      fix coding style
      fix coding style and add more debug statements
      fix coding style
      try to find xaudio2 lib
      cleanup
      try to fix again xaudio2 linking stage
      check header and lib to detect a component
      fix coding style
      fix coding style
      update
      update
      update
      update
      Another optimization to limit size of include paths while compiling.
      fix coding style
      fix coding style
      missing include dirs for showfoto
      another step to reduce the size of include paths from command line : move QtAV tests and examples outside core/libs/
      merge QtAv src and widgets to reduce includes paths size
      merge QtAV widgets and src to reduce include paths
      fix broken compilation with akonadi addressbook support
      set include path private to all digiKam targets to prevent broken compilation under Windows with paths upper than 8192 characters
      fix coding style
      private include paths for Showfoto target too, as digiKam targets
      private include paths for avplayer target too, as digiKam targets
      Less internal 3rd party libraries include paths to dispatch everywhere
      MediaPlayer don't need opengl GLU, only Presentation tool needs it.
      fix coding style
      polish
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      fix coding style
      update
      update
      fix coding style
      fix coding style
      typo
      fix coding style
      try to force Release under MSVC
      fix MSVC warning (why GCC or Clang do not report this?)
      update
      Fix MSVC warning
      fix MSVC warnings
      MSVC++
      MSVC++
      MSVC++
      polish
      MSVC++
      MSVC++
      update
      We need to switch digiKam target as Release to detect OpenCV as RelWithDebInfo in not supported by OpenCV cmake shared config.
      msvc++
      fix coding style
      fix coding style
      fix codings tyle
      fix coding style
      fix coding style
      add avplayer rules
      restore core/utilities header files parsing to populate include paths. This is an helper for development instead to plugin one by one path on demand.
      use digikam debug spaces
      use digiKam debug space
      use digiKam debug space
      factoring debug spaces
      cleanup
      fix coding style
      fix codings style
      update
      add repo metadata link for KF deps used by Craft
      try to fix broken linking under MSVC from build factory
      fix coding style
      fix coding style
      typo
      add debug
      typo
      typo
      update internal libraw to snapshot 2022-06-17
      use m_ prefix for members
      use d private internal container
      add private implementations
      don't print error under Windows
      fix broken call
      fix broken command
      enable debug space in avplayer
      factoring
      update
      update exiftool version
      add debug statements when video renderers are register by QtAv
      Add debug statements about features supported
      sync with qt5 maintenance branch
      sync with qt5-maintenance
      sync with qt5-maintenance
      fix MXE default conf
      update
      use new class from DK core to handle memory device information
      polish
      polish
      polish
      files missing
      fix broken linking under Windows
      new deps
      master code needs the new qtnetworkauth dependency
      more hidden symbols and polish
      sync with qt5-maintenance branch
      sync with qt5-maintenance
      sync with qt5-maintenance
      sync with qt5-maintenance
      polish
      try to fix broken build
      use libheif master
      try to fix build
      libheif v1.12.0
      start to separate avplayer main window implementation by feature, for a better readability and maintenance
      typo
      prepare more future separations
      add 7.7.0 release entries
      update patch for KF5 5.95
      update patch for KF5 5.95
      add gdiplus.dll as blacklisted file
      disable these options by default
      handle akonadi and kfilemetadata from top level options passed to cmake
      dupplicate lines
      sync with qt5-maintenance
      sync with qt5-maintenance
      update
      sync with qt5-maintenance
      sync with qt5-maintenance
      cppcheck++
      sync with qt5-maintenance
      krazy++
      obsolete dir
      use response files to compile and link object under MinGW
      use response file for includes too
      better swutch condition (see QTBUG-95284)
      First try to use stub for the digiKam.exe target under Windows to fix compilation failure with winres.exe due to long include paths
      private target include dir
      typo
      add patch to link to new icu with qt6
      fix for v6.3.1
      fix path
      restore
      Mingw : remove attributes compiler warnings which is too much verbose with KF5 frameworks
      Use Windows stub executable contruction to build final target binaries which require to call winres.exe to embed resources metadata.
      typo
      we will need to check the win32 libs later
      enable checks for Windows libs required by MediaPlayer
      typo
      try alternative function to reset include dirs
      process stub after lib
      fix order to compile stub
      fix main function import
      limit use on include_directories() calls
      use variaibles to link with Windows libs
      try to drop resource compilation under windows with Ninja and Mingw.
      add debug statement
      more debug
      polish
      process icons with stub
      process icons with stub for showfoto and avplayer
      drop use kdesrc-build repository to handle KF6
      Big factoring of KF framework to compile with Qt5 or Qt6.
      qt6++
      enable more gitlab CI target
      qt6++
      port to Qt6
      port to pure Qt6
      Fix broken compilation with Qt6
      pure Qt6++
      fix broken compilation with qt6
      pure Qt6++
      pure qt6++
      Fix broken compilation with Qt6 version 6.3.2
      qt6++
      qt6++
      polish and restore code.
      polish
      polish
      branch dependencies by build targets
      typo
      Windows build must work now
      renable linux-qt6 with marble disabled as it's not yet ported
      this one do not compile yet
      comment Qt6 target
      try to fix Android build
      try to fix Android deps
      Disable Android build as QtWebEngine is not available. We needs to port to QtWebView
      try macos target
      polish
      qt6++
      qt6++
      qt6++
      only enable Linux Qt6 on gitlab CI, the rest is compiled on KDE build factory
      do not add libksane on Linux-Qt6
      qt6++
      less linux-qt6 deps
      libksane is ported to Qt6
      try to fix opencv deps
      opencv is currently missing on linux qt6
      enable linux qt5
      port to qt6
      With Qt6, we need a link to usr/share/ on rootfs of AppImage
      Try to fix Qt6 crash at startup:
      remove raw file acess to gitlab repositories.
      fix place to host Qt6 translations in AppImage bundle
      add qml for qtWebEngine
      fix broken signal and slot connections with Qt6
      switch to Qt 6.3.1
      update to 5.3.1
      Use official tarball for Qt 6.3.1
      missing upload path settings
      polish
      missing dep from QtWebEngine 6.3.1
      fix paths for Qt6 6.3.1 to host in the appimage
      we needs a symlink for ui.rc files at run time
      Qt6++
      qt6++
      fix link path
      fix broken connection
      qt6++
      Prevent Qt6 crash with qBound due to new exception if entries is empty. Qt5 do not have this kind of behavior.
      enable ccache
      qt6++
      Qt6++. QComboBox::activated(QString) signal is removed. Re-implement it in SqueezedComboBox class
      sync with qt5-maintenance
      qt6++
      force Qt6 detection with BUILD_WITH_QT6 cmake flag used at configuration time
      Document BUILD_WITH_QT6 cmake option
      fix ExifTool download and extraction
      typo
      include avplayer
      fix startup AppImage script for avplayer
      print right Qt version detected by camke at configuration stage.
      setup env variable for right Qt version to detect before to call cmake::find_package() when mixing Qt is present.
      typo
      finalize Qt6 AppImage scripts.
      sync with qt5-maintenance
      differentiate AppImage build with Qt5 and Qt6
      be able to compile DK master AppImage on Qt5
      handle qt prefix properly
      update Qt5 stable to last 5.15.5
      bump KF to 5.96 and KA to 22.04.3
      typo
      cleanup
      sync with qt5-maintenance
      add qt5
      factoring
      more deps
      more deps
      add qt5/qt6 support
      sync with q(
      sync with qt5-maintenance
      sync with Qt5-maintenance
      libical do not compile with MXE
      sync with qt5-maintenance
      sync with qt5-maintenance
      add more deps
      add deps
      add libjasper bootstrap script
      add more deps
      typo
      update registration of ssh key for Kubuntu
      more deps
      add more deps
      more deps
      more deps
      perform evel to run whole script
      more deps
      moez deps
      sync witg qt5-maintenance
      update PATH to Coverity
      add symlinks and comments
      fix url
      use sudo
      fix symlink s
      do not ask more than one time the ssh key
      sync with qt5-maintenance
      new alias
      restore this script
      fix missing gpg keys with apt-get
      krazy++
      cppcheck++
      typo
      rename exiftool directory without version ID
      more deps
      cleanup
      add comments
      add stage to check linking stage with Lqr1-l library
      do not break configuration as deps is optional
      full path change in AppImage between sessions
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++ : if QStringList size == 4 (RGBA), Alpha channel is at index 3, not 4.
      polish
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      fix warning under freebsd
      cppcheck
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      cppcheck++
      sync with qt5-maintenance
      sync with qt5-maintenance
      These extra rules are not needs in fact to found exiftool binary
      sync with qt5-maintenance
      sync with qt5-maintenance
      show host linux version at AppImage startup
      polish
      cppcheck++
      update
      add check if lib file exists
      use libheif from master to build flatpak bundle
      fix warnings under MacOS
      missing deps
      sync with qt5-maintenance
      sync with qt5-maintenance
      Introduce usage of KF5::Sonnet to perform basis spell-checking in caption text fields.
      update
      update
      Use QTexEdit and Sonnet to suppoet spell checking in metadata edit plugin
      Use QTexEdit and Sonnet to support spell checking in metadata edit plugin
      update
      Revert QPlainTextEdit conversion to QTextEdit as Sonnet spell checker can be applied t…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants