f4exb / sdrangel

SDR Rx/Tx software for Airspy, Airspy HF+, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay and FunCube
GNU General Public License v3.0
2.83k stars 429 forks source link

Build fails with `datvideorender.cpp:282:46: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’`; and warning `AutoUic: /var/cache/makepkg/build/sdrangel-git/src/sdrangel/plugins/channelrx/demodft8/ft8demodgui.ui: Warning: The name 'verticalLayout_2' (QVBoxLayout) is already in use, defaulting to 'verticalLayout_21'`. #2204

Open dreirund opened 2 months ago

dreirund commented 2 months ago

I build the latest state from this git repository according to this recipe on Artix GNU/Linux, GCC version: 14.1.1.

Build fails for me with datvideorender.cpp:282:46: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’:

[...]
[ 40%] Automatic MOC and UIC for target demoddatv
[ 40%] Built target demoddatv_autogen
[ 40%] Building CXX object plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/demoddatv_autogen/mocs_compilation.cpp.o
[ 40%] Building CXX object plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/datvdemod.cpp.o
[ 40%] Building CXX object plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/datvdemodgui.cpp.o
[ 40%] Building CXX object plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/datvdemodplugin.cpp.o
[ 40%] Building CXX object plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/datvdemodsettings.cpp.o
[ 40%] Building CXX object plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/datvdemodwebapiadapter.cpp.o
[ 40%] Building CXX object plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/datvideostream.cpp.o
[ 40%] Building CXX object plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/datvudpstream.cpp.o
[ 40%] Building CXX object plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/datvideorender.cpp.o
/var/cache/makepkg/build/sdrangel-git/src/sdrangel/plugins/channelrx/demoddatv/datvideorender.cpp: In member function ‘bool DATVideoRender::preprocessStream()’:
/var/cache/makepkg/build/sdrangel-git/src/sdrangel/plugins/channelrx/demoddatv/datvideorender.cpp:282:46: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’
  282 |     m_metaData.Channels = m_videoDecoderCtx->channels;
      |                                              ^~~~~~~~
/var/cache/makepkg/build/sdrangel-git/src/sdrangel/plugins/channelrx/demoddatv/datvideorender.cpp:308:48: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’
  308 |         << " channels: " << m_audioDecoderCtx->channels
      |                                                ^~~~~~~~
/var/cache/makepkg/build/sdrangel-git/src/sdrangel/plugins/channelrx/demoddatv/datvideorender.cpp:309:54: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?
  309 |         << " channel_layout: " << m_audioDecoderCtx->channel_layout
      |                                                      ^~~~~~~~~~~~~~
      |                                                      ch_layout
/var/cache/makepkg/build/sdrangel-git/src/sdrangel/plugins/channelrx/demoddatv/datvideorender.cpp: In member function ‘void DATVideoRender::setResampler()’:
/var/cache/makepkg/build/sdrangel-git/src/sdrangel/plugins/channelrx/demoddatv/datvideorender.cpp:628:72: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’
  628 |     av_opt_set_int(m_audioSWR, "in_channel_count",  m_audioDecoderCtx->channels, 0);
      |                                                                        ^~~~~~~~
/var/cache/makepkg/build/sdrangel-git/src/sdrangel/plugins/channelrx/demoddatv/datvideorender.cpp:630:73: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?
  630 |     av_opt_set_int(m_audioSWR, "in_channel_layout",  m_audioDecoderCtx->channel_layout, 0);
      |                                                                         ^~~~~~~~~~~~~~
      |                                                                         ch_layout
/var/cache/makepkg/build/sdrangel-git/src/sdrangel/plugins/channelrx/demoddatv/datvideorender.cpp:640:57: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’
  640 |         << " in_channel_count: " <<  m_audioDecoderCtx->channels
      |                                                         ^~~~~~~~
/var/cache/makepkg/build/sdrangel-git/src/sdrangel/plugins/channelrx/demoddatv/datvideorender.cpp:642:58: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?
  642 |         << " in_channel_layout: " <<  m_audioDecoderCtx->channel_layout
      |                                                          ^~~~~~~~~~~~~~
      |                                                          ch_layout
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-inconsistent-missing-override’ may have been intended to silence earlier diagnostics
make[2]: *** [plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/build.make:195: plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/datvideorender.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:11471: plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
make: Leaving directory '/var/cache/makepkg/build/sdrangel-git/src/build'

The $CXXFLAGS in use are
-march=native -mtune=native -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -fstack-clash-protection -fcf-protection -w -Wp,-D_GLIBCXX_ASSERTIONS -fpermissive.

Output of the cmake call (cmake command line arguments: -Wno-dev -DARCH_OPT="" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DLIBDSDCC_INCLUDE_DIR=/usr/include/dsdcc -DCM256CC_INCLUDE_DIR=/usr/include/cm256cc):

-- The C compiler identification is GNU 14.1.1
-- The CXX compiler identification is GNU 14.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Git: /usr/bin/git (found version "2.45.2")
-- Using ccache /usr/bin/ccache
-- SDRangel Version: 7.21.4-7-g7c9c6ea44
-- Build type set to: Release
-- Compiling for 24 bit Rx DSP chain
-- Looking for __x86_64__
-- Looking for __x86_64__ - found
-- Target architecture: x86_64-
-- Performing Test FLAG_SUPPORTED
-- Performing Test FLAG_SUPPORTED - Success
-- Looking for __ARM_NEON
-- Looking for __ARM_NEON - not found
-- Looking for __AVX512F__
-- Looking for __AVX512F__ - found
-- Looking for __AVX2__ - forced found
-- Looking for __AVX__ - forced found
-- Looking for __SSE4_2__ - forced found
-- Looking for __SSE4_1__ - forced found
-- Looking for __SSSE3__ - forced found
-- Looking for __SSE3__ - forced found
-- Looking for __SSE2__ - forced found
-- Interprocedural optimization enabled
-- Found OpenGL: /usr/lib/libOpenGL.so
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.1.1")
-- Found Boost: /usr/lib/cmake/Boost-1.83.0/BoostConfig.cmake (found version "1.83.0")
-- Checking for module 'fftw3f >= 3.0'
--   Found fftw3f, version 3.3.10
-- Found FFTW3F: /lib/libfftw3f.so
-- Found FFTW3F: /usr/include, /lib/libfftw3f.so, /lib/libfftw3f_threads.so
-- Checking for module 'libusb-1.0'
--   Found libusb-1.0, version 1.0.27
-- Found libusb-1.0: /usr/include/libusb-1.0, /usr/lib/libusb-1.0.so
-- Found OpenCV: /usr (found version "4.10.0") found components: core highgui imgproc imgcodecs videoio
-- Checking for module 'libsigmf'
--   Package 'libsigmf', required by 'virtual:world', not found
-- libsigmf not found.
-- Found ZLIB: /usr/lib/libz.so (found version "1.3.1")
-- Checking for module 'faad2'
--   Found faad2, version 2.11.1
-- FAAD LIBRARY /lib/libfaad.so
-- FAAD INCLUDE DIRS /usr/include
-- Found FAAD: /lib/libfaad.so
-- Checking for module 'codec2'
--   Found codec2, version 1.2.0
-- Found Codec2: /usr/include, /lib/libcodec2.so
-- Found CODEC2: /lib/libcodec2.so
-- Checking for module 'libcm256cc'
--   Found libcm256cc, version 1.1.0
-- Found CM256cc: /usr/include/cm256cc, /lib/libcm256cc.so
-- Found CM256CC: /lib/libcm256cc.so
-- Found LibMbe: /usr/include, 
-- Found libserialdv: /usr/include/serialdv, /lib/libserialdv.so
-- Checking for module 'libdsdcc'
--   Found libdsdcc, version 1.9.0
-- Found libdsdcc: /usr/include/dsdcc, /lib/libdsdcc.so
-- Checking for module 'sgp4'
--   Package 'sgp4', required by 'virtual:world', not found
-- SGP4 LIBRARIES /lib/libsgp4s.so
-- SGP4 INCLUDE DIRS /usr/include/libsgp4
-- Found SGP4: /lib/libsgp4s.so
-- Checking for module 'apt'
--   Package 'apt', required by 'virtual:world', not found
-- APT LIBRARIES /lib/libapt.so
-- APT INCLUDE DIRS /usr/include/apt
-- Found APT: /lib/libapt.so
-- Checking for module 'libdab'
--   Package 'libdab', required by 'virtual:world', not found
-- Found libdab: /usr/include/dab_lib, /lib/libdab_lib.so
-- Found HIDAPI: /usr/include/hidapi  found components: any
-- Checking for module 'libavcodec'
--   Found libavcodec, version 61.3.100
-- Checking for module 'libavformat'
--   Found libavformat, version 61.1.100
-- Checking for module 'libavdevice'
--   Found libavdevice, version 61.1.100
-- Checking for module 'libavutil'
--   Found libavutil, version 59.8.100
-- Checking for module 'libavfilter'
--   Found libavfilter, version 10.1.100
-- Checking for module 'libswscale'
--   Found libswscale, version 8.1.100
-- Checking for module 'libpostproc'
--   Found libpostproc, version 58.1.100
-- Checking for module 'libswresample'
--   Found libswresample, version 5.1.100
-- Found FFmpeg: /usr/lib/libavcodec.so;/usr/lib/libavformat.so;/usr/lib/libavutil.so;/usr/lib/libswscale.so
-- Checking for module 'libggmorse'
--   Package 'libggmorse', required by 'virtual:world', not found
-- GGMorse not found
-- Could NOT find GGMORSE (missing: GGMORSE_LIBRARIES GGMORSE_INCLUDE_DIR) 
-- Checking for module 'libairspy'
--   Found libairspy, version 1.0
-- Found libairspy: /usr/include, /lib/libairspy.so
-- Checking for module 'libairspyhf'
--   Found libairspyhf, version 1.8
-- Found libairspyhf: /usr/include, /lib/libairspyhf.so
-- Checking for module 'libbladeRF>=2.0'
--   Found libbladeRF, version 2.5.0-git
-- Found libbladerf: /usr/include, /lib/libbladeRF.so
-- Checking for module 'libhackrf'
--   Found libhackrf, version 0.9
-- Found libhackrf: /usr/include, /lib/libhackrf.so
-- Found Lime Suite: /usr/include, /lib/libLimeSuite.so
-- Checking for module 'libiio>=0.7'
--   Found libiio, version 0.25
-- Found libiio: /usr/include, /lib/libiio.so
-- Checking for module 'libmirisdr'
--   Found libmirisdr, version fd04
-- Found libmirisdr: /usr/include, /lib/libmirisdr.so
-- Checking for module 'libperseus'
--   Package 'libperseus', required by 'virtual:world', not found
-- Found libperseus: /usr/include, /lib/libperseus-sdr.so
-- Checking for module 'librtlsdr'
--   Found librtlsdr, version 2.0.1
-- Found librtlsdr: /usr/include, /lib/librtlsdr.so
-- Checking for one of the modules 'SoapySDR>=0.4.0'
-- Found SoapySDR: version 0.8.1, /usr/lib, /usr/include, /usr/lib/libSoapySDR.so
-- Checking for module 'uhd'
--   Found uhd, version 4.6.0.0-0-unknown
-- UHD LIBRARIES /lib/libuhd.so
-- UHD INCLUDE DIRS /usr/include
-- Found UHD: /lib/libuhd.so
-- SDRPLAY LIBRARIES /usr/lib/libsdrplay_api.so
-- SDRPLAY INCLUDE DIRS /usr/include
-- Found SDRPLAY: /usr/lib/libsdrplay_api.so
-- Checking for module 'libxtrx'
--   Found libxtrx, version 
-- Found libxtrx: /usr/include, /lib/libxtrx.so
-- Found Opus: /usr/include
CUDA_TOOLKIT_ROOT_DIR not found or specified
-- Could NOT find CUDA (missing: CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) (Required is at least version "9.0")
-- Not building sigmffilesink (ENABLE_CHANNELRX_SIGMFFILESINK=ON LIBSIGMF_FOUND=FALSE)
-- Include demoddatv
-- Not building morsedecoder (ENABLE_FEATURE_MORSEDECODER=ON GGMODSE_FOUND=FALSE)
-- Checking for module 'hamlib'
--   Found hamlib, version 4.5.5
-- Found Hamlib: /usr/include, /lib/libhamlib.so
-- Found HAMLIB: /lib/libhamlib.so
-- Not building sigmffileinput (LIBSIGMF_FOUND=FALSE)
-- Not building sigmffilesink (ENABLE_CHANNELRX_SIGMFFILESINK=ON LIBSIGMF_FOUND=FALSE)
-- Not building jogdialcontroller (ENABLE_FEATURE_JOGDIALCONTROLLER=ON SERVER_MODE=ON)
-- Not building morsedecoder (ENABLE_FEATURE_MORSEDECODER=ON GGMODSE_FOUND=FALSE)
-- Not building sigmffileinput (LIBSIGMF_FOUND=FALSE)
-- Found Doxygen: /usr/bin/doxygen (found version "1.11.0") found components: doxygen dot
-- added optional 'make dev_docs' for developer documentation generation
-- Found Dot: /usr/bin/dot
-- Check for case-sensitive file systems
-- File system is case-sensitive
-- Asking qmake for QT_PLUGINS_DIR and got /usr/lib/qt/plugins
-- Asking qmake for QT_IMPORTS_DIR and got /usr/lib/qt/imports
-- Asking qmake for QT_QML_DIR and got /usr/lib/qt/qml
-- Asking qmake for QT_LIBS_DIR and got /usr/lib
-- CPack generators: 
-- Configuring done (2.6s)
-- Generating done (0.9s)
-- Build files have been written to: /var/cache/makepkg/build/sdrangel-git/src/build

Also note that I get the following warning during the build process:

[...]
[ 38%] Built target demodft8_autogen_timestamp_deps
[ 38%] Automatic MOC and UIC for target demodft8
AutoUic: /var/cache/makepkg/build/sdrangel-git/src/sdrangel/plugins/channelrx/demodft8/ft8demodgui.ui: Warning: The name 'verticalLayout_2' (QVBoxLayout) is already in use, defaulting to 'verticalLayout_21'.
[...]

Regards!

srcejon commented 1 month ago

The latest version of ffmpeg isn't currently supported.

calimeroteknik commented 1 month ago

The question to resolve this is : which is the (recommended) way to specify the path for ffmpeg 4.4?

I tried messing around in cmake parameters and editing a bunch of files with ffmpeg paths (CMakeLists.txt mostly), but so far to no avail; I don't understand the build system. On Arch Linux, ffmpeg4.4 installs to /usr/include/ffmpeg4.4/ and /usr/lib/ffmpeg4.4/ instead of /usr/include and /usr/lib.

How can I make it so the build message,

-- Found FFmpeg: /usr/lib/libavcodec.so;/usr/lib/libavformat.so;/usr/lib/libavutil.so;/usr/lib/libswscale.so

changes to this?

-- Found FFmpeg: /usr/lib/ffmpeg4.4/libavcodec.so;/usr/lib/ffmpeg4.4/libavformat.so;/usr/lib/ffmpeg4.4/libavutil.so;/usr/lib/ffmpeg4.4/libswscale.so
calimeroteknik commented 1 month ago

Running cmake from strace -f with the option -DPKG_CONFIG_ARGN="--with-path=/usr/lib/ffmpeg4.4/pkgconfig" it turns out that:

  1. The argument is indeed supplied to a pkg-config process, after the cmake process has read cmake/Modules/FindFFmpeg.cmake:
    read(4, "# vim: ts=2 sw=2\n# - Try to find the required ffmpeg components(default: AVFORMAT, AVUTIL, AVCODEC)\n#\n# Once done this will define\n#  FFMPEG_FOUND         - System has the all required com"..., 8192) = 5643
    write(1, "-- Checking for module 'libavcodec'\n", 36) = 36
    [pid 2265598] execve("/usr/bin/pkg-config", ["/usr/bin/pkg-config", "--with-path=/usr/lib/ffmpeg4.4/pkgconfig", "--print-errors", "--short-errors", "--exists", "libavcodec"], 0x5cd73a08ec70 /* 92 vars */ <unfinished ...>
    [pid 2265598] openat(AT_FDCWD, "/usr/lib/ffmpeg4.4/pkgconfig/libavcodec.pc", O_RDONLY) = 4
    [pid 2265598] read(4, "prefix=/usr\nexec_prefix=${prefix}\nlibdir=/usr/lib/ffmpeg4.4\nincludedir=/usr/include/ffmpeg4.4\n\nName: libavcodec\nDescription: FFmpeg codec library\nVersion: 58.134.100\nRequires: \nRequires.private: libswresample >= 3.9.100, libavutil >= 56.70.100\nConflicts:\nLibs: -L${libdir}  -lavcodec \nLibs.private: -lvpx -lm -lvpx -lm -lvpx -lm -lvpx -lm -lwebpmux -pthread -lm -latomic -llzma -ldav1d -lopencore-amrwb -lrsvg-2 -lm -lgio-2.0 -lglib-2.0 -lgdk_pixbuf-2.0 -lgobject-2.0 -lcairo -lz -laom -lgsm -lmp3lame -lm -lopencore-amrnb -lopenjp2 -lopus -lrav1e -lspeex -lSvtAv1Enc -ltheoraenc -ltheoradec -logg -lvorbis -lvorbisenc -lwebp -lx264 -lx265 -lxvidcore -lva -lmfx -lstdc++ -ldl\nCflags: -I${includedir}\n", 4096) = 700
  2. The cmake process announces a success:
    write(1, "--   Found libavcodec, version 58.134.100\n", 42) = 42
  3. The library is even looked at by cmake:
    access("/usr/lib/ffmpeg4.4/libavcodec.so", R_OK) = 0
  4. Erm, and then cmake looks for includes everywhere in $PATH and more, but (this is a problem) never in the place specified by /usr/lib/ffmpeg4.4/pkgconfig/libavcodec.pc (which contains includedir=/usr/include/ffmpeg4.4, and /usr/include/ffmpeg4.4/libavcodec/avcodec.h exists where it should be):
    access("/usr/lib/nx/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/lib/nx/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/sbin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/sbin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/lib/jvm/default/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/lib/jvm/default/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/site_perl/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/site_perl/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/vendor_perl/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/vendor_perl/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/core_perl/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/core_perl/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/qt/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/qt/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/home/calimero/.bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/home/calimero/.bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/X11/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/X11/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/lib/nx/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/lib/nx/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/sbin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/sbin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/lib/jvm/default/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/lib/jvm/default/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/site_perl/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/site_perl/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/vendor_perl/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/vendor_perl/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/core_perl/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/core_perl/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/qt/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/qt/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/home/calimero/.bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/home/calimero/.bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/X11/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/X11/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/lib/nx/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/lib/nx/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/sbin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/sbin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/lib/jvm/default/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/lib/jvm/default/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/site_perl/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/site_perl/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/vendor_perl/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/vendor_perl/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/core_perl/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/bin/core_perl/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/qt/bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/qt/bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/home/calimero/.bin/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/home/calimero/.bin/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/local/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/X11R6/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/pkg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/include/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/include/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/opt/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/X11/ffmpeg/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
    access("/usr/include/X11/libavcodec/avcodec.h", R_OK) = -1 ENOENT (No such file or directory)
  5. Finally sdrangel's cmake/Modules/FindFFmpeg.cmake announces that the library was never found:
    write(1, "-- Could NOT find FFmpeg (missing: FFMPEG_LIBRARIES FFMPEG_INCLUDE_DIRS AVCODEC_LIBRARIES AVCODEC_INCLUDE_DIRS AVFORMAT_LIBRARIES AVFORMAT_INCLUDE_DIRS AVUTIL_LIBRARIES AVUTIL_INCLUDE_DIRS SWSCALE_LIBRARIES SWSCALE_INCLUDE_DIRS) \n", 230) = 230

I think that sdrangel's cmake/Modules/FindFFmpeg.cmake is doing something wrong and needs fixing.

[edit] my system has ONLY ffmpeg 4.4 installed presently, I forcefully removed ffmpeg 7 for this debugging attempt.

nemanjan00 commented 1 month ago

I had to disable demoddatv in AUR package, for it to be able to compile

https://aur.archlinux.org/packages/sdrangel-git

Quick solution being

        -DENABLE_CHANNELRX_DEMODDATV=OFF \
        -DENABLE_CHANNELTX_MODDATV=OFF

for cmake