Build failure with ffmpeg-5.0
The current v9 releases of VTK won't build their IOFFMPEG module, against an installed ffmpeg-5.0 package. We received a bug report on Gentoo on this for 9.0.3. I tested with 9.1.0 which fails as well.
The error is
FAILED: IO/FFMPEG/CMakeFiles/IOFFMPEG.dir/vtkFFMPEGWriter.cxx.o
/usr/bin/mpicxx -DIOFFMPEG_EXPORTS -DVTK_IN_VTK -D__STDC_CONSTANT_MACROS -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/IO/FFMPEG -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/IO/FFMPEG -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/IO/Movie -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/IO/Movie -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/Common/ExecutionModel -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/Common/ExecutionModel -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/Common/Core -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/Common/Core -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/Common/DataModel -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/Common/DataModel -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/Common/Math -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/Common/Math -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/Common/Transforms -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/Common/Transforms -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/IO/Video -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/IO/Video -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/Common/Misc -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/Common/Misc -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/Common/System -I/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/Common/System -isystem /var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/Utilities/KWIML -isystem /var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/Utilities/KWIML -isystem /var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/vtk-9.0.3_build/Utilities/KWSys -isystem /var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/Utilities/KWSys -O2 -march=native -fomit-frame-pointer -pipe -fvisibility-inlines-hidden -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -std=c++11 -MD -MT IO/FFMPEG/CMakeFiles/IOFFMPEG.dir/vtkFFMPEGWriter.cxx.o -MF IO/FFMPEG/CMakeFiles/IOFFMPEG.dir/vtkFFMPEGWriter.cxx.o.d -o IO/FFMPEG/CMakeFiles/IOFFMPEG.dir/vtkFFMPEGWriter.cxx.o -c /var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/IO/FFMPEG/vtkFFMPEGWriter.cxx
/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/IO/FFMPEG/vtkFFMPEGWriter.cxx: In member function ‘int vtkFFMPEGWriterInternal::Start()’:
/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/IO/FFMPEG/vtkFFMPEGWriter.cxx:111:41: error: invalid conversion from ‘const AVOutputFormat*’ to ‘AVOutputFormat*’ [-fpermissive]
111 | this->avOutputFormat = av_guess_format("avi", nullptr, nullptr);
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
| |
| const AVOutputFormat*
/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/IO/FFMPEG/vtkFFMPEGWriter.cxx:137:37: error: invalid conversion from ‘const AVCodec*’ to ‘AVCodec*’ [-fpermissive]
137 | if (!(codec = avcodec_find_encoder(this->avOutputFormat->video_codec)))
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| const AVCodec*
/var/tmp/portage/sci-libs/vtk-9.0.3-r3/work/VTK-9.0.3/IO/FFMPEG/vtkFFMPEGWriter.cxx:152:32: error: ‘avcodec_alloc_context3’ was not declared in this scope; did you mean ‘avio_alloc_context’?
with more errors after that and similar errors later on in file vtkFFMPEGVideoSource.cxx
.
See also https://bugs.gentoo.org/831595 with a full build log attached.