Skip to content

Compile errors with FFmpeg 8.0 #38

@kevinschweikert

Description

@kevinschweikert
[error] [11:17:37.200] Process #PID<0.1173.0> raised an exception
** (MatchError) no match of right hand side value:

    {:error,
     {:load_failed,
      ~c"Failed to load NIF library: 'dlopen(/Users/kevinschweikert/projects/app/_build/dev/lib/xav/priv/libxavvideoconverter.so, 0x0002): Library
 not loaded: /opt/homebrew/opt/ffmpeg/lib/libavcodec.61.dylib\n  Referenced from: <51B25BEF-623F-3CB9-979D-DE4E13CCAB28> /Users/kevinschweikert/projects/ime
n/corpcast/_build/dev/lib/xav/priv/libxavvideoconverter.so\n  Reason: tried: '/opt/homebrew/opt/ffmpeg/lib/libavcodec.61.dylib' (no such file), '/System/Vol
umes/Preboot/Cryptexes/OS/opt/homebrew/opt/ffmpeg/lib/libavcodec.61.dylib' (no such file), '/opt/homebrew/opt/ffmpeg/lib/libavcodec.61.dylib' (no such file)
, '/opt/homebrew/Cellar/ffmpeg/8.0/lib/libavcodec.61.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/ffmpeg/8.0/lib/libavco
dec.61.dylib' (no such file), '/opt/homebrew/Cellar/ffmpeg/8.0/lib/libavcodec.61.dylib' (no such file)'"}}
    (xav 0.10.0) lib/xav/video_converter_nif.ex:8: Xav.VideoConverter.NIF.__on_load__/0
    (kernel 10.3.1) code_server.erl:1388: anonymous fn/1 in :code_server.schedule_on_load/4 []

[warning] [11:17:37.202] The on_load function for module Elixir.Xav.VideoConverter.NIF returned:
{{:badmatch,
  {:error,
   {:load_failed,
    ~c"Failed to load NIF library: 'dlopen(/Users/kevinschweikert/projects/app/_build/dev/lib/xav/priv/libxavvideoconverter.so, 0x0002): Library n
ot loaded: /opt/homebrew/opt/ffmpeg/lib/libavcodec.61.dylib\n  Referenced from: <51B25BEF-623F-3CB9-979D-DE4E13CCAB28> /Users/kevinschweikert/projects/app/_build/dev/lib/xav/priv/libxavvideoconverter.so\n  Reason: tried: '/opt/homebrew/opt/ffmpeg/lib/libavcodec.61.dylib' (no such file), '/System/Volum
es/Preboot/Cryptexes/OS/opt/homebrew/opt/ffmpeg/lib/libavcodec.61.dylib' (no such file), '/opt/homebrew/opt/ffmpeg/lib/libavcodec.61.dylib' (no such file), 
'/opt/homebrew/Cellar/ffmpeg/8.0/lib/libavcodec.61.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/ffmpeg/8.0/lib/libavcode
c.61.dylib' (no such file), '/opt/homebrew/Cellar/ffmpeg/8.0/lib/libavcodec.61.dylib' (no such file)'"}}},
 [{Xav.VideoConverter.NIF, ...}, ...]}
 []
> mix deps.compile xav --force
==> xav
mkdir -p /Users/kevinschweikert/projects/app/_build/dev/lib/xav/priv
cc -O2 -g -march=native  -fPIC -shared -undefined dynamic_lookup -I/Users/kevinschweikert/.local/share/mise/installs/erlang/28.0.1/erts-16.0.1/include -Ic_s
rc/xav $(pkg-config --cflags-only-I libavcodec libswscale libavutil libavformat libavdevice libswresample) $(pkg-config --libs-only-L libavcodec libswscale 
libavutil libavformat libavdevice libswresample) c_src/xav/xav_decoder.c c_src/xav/decoder.c c_src/xav/video_converter.c c_src/xav/audio_converter.c c_src/x
av/utils.c c_src/xav/channel_layout.c -o /Users/kevinschweikert/projects/app/_build/dev/lib/xav/priv/libxavdecoder.so -lavcodec -lswscale -lavutil
 -lavformat -lavdevice -lswresample
mkdir -p /Users/kevinschweikert/projects/app/_build/dev/lib/xav/priv
cc -O2 -g -march=native  -fPIC -shared -undefined dynamic_lookup -I/Users/kevinschweikert/.local/share/mise/installs/erlang/28.0.1/erts-16.0.1/include -Ic_s
rc/xav $(pkg-config --cflags-only-I libavcodec libswscale libavutil libavformat libavdevice libswresample) $(pkg-config --libs-only-L libavcodec libswscale 
libavutil libavformat libavdevice libswresample) c_src/xav/xav_reader.c c_src/xav/reader.c c_src/xav/video_converter.c c_src/xav/audio_converter.c c_src/xav
/utils.c -o /Users/kevinschweikert/projects/app/_build/dev/lib/xav/priv/libxavreader.so -lavcodec -lswscale -lavutil -lavformat -lavdevice -lswres
ample
mkdir -p /Users/kevinschweikert/projects/app/_build/dev/lib/xav/priv
cc -O2 -g -march=native  -fPIC -shared -undefined dynamic_lookup -I/Users/kevinschweikert/.local/share/mise/installs/erlang/28.0.1/erts-16.0.1/include -Ic_s
rc/xav $(pkg-config --cflags-only-I libavcodec libswscale libavutil libavformat libavdevice libswresample) $(pkg-config --libs-only-L libavcodec libswscale 
libavutil libavformat libavdevice libswresample) c_src/xav/xav_video_converter.c c_src/xav/video_converter.c c_src/xav/utils.c -o /Users/kevinschweikert/pro
jects/app/_build/dev/lib/xav/priv/libxavvideoconverter.so -lavcodec -lswscale -lavutil -lavformat -lavdevice -lswresample
mkdir -p /Users/kevinschweikert/projects/app/_build/dev/lib/xav/priv
cc -O2 -g -march=native  -fPIC -shared -undefined dynamic_lookup -I/Users/kevinschweikert/.local/share/mise/installs/erlang/28.0.1/erts-16.0.1/include -Ic_s
rc/xav $(pkg-config --cflags-only-I libavcodec libswscale libavutil libavformat libavdevice libswresample) $(pkg-config --libs-only-L libavcodec libswscale 
libavutil libavformat libavdevice libswresample) c_src/xav/xav_encoder.c c_src/xav/encoder.c c_src/xav/utils.c c_src/xav/channel_layout.c -o /Users/kevinsch
weikert/projects/app/_build/dev/lib/xav/priv/libxavencoder.so -lavcodec -lswscale -lavutil -lavformat -lavdevice -lswresample
c_src/xav/xav_encoder.c:21:28: error: use of undeclared identifier 'FF_PROFILE_UNKNOWN'
   21 |   encoder_config.profile = FF_PROFILE_UNKNOWN;
      |                            ^
c_src/xav/xav_encoder.c:116:35: error: use of undeclared identifier 'FF_PROFILE_UNKNOWN'
  116 |     if (encoder_config.profile == FF_PROFILE_UNKNOWN) {
      |                                   ^
c_src/xav/xav_encoder.c:306:12: error: use of undeclared identifier 'FF_PROFILE_UNKNOWN'
  306 |     return FF_PROFILE_UNKNOWN;
      |            ^
c_src/xav/xav_encoder.c:309:30: error: use of undeclared identifier 'FF_PROFILE_UNKNOWN'
  309 |   while (profile->profile != FF_PROFILE_UNKNOWN) {
      |                              ^
c_src/xav/xav_encoder.c:330:30: error: use of undeclared identifier 'FF_PROFILE_UNKNOWN'
  330 |   while (profile->profile != FF_PROFILE_UNKNOWN) {
      |                              ^
c_src/xav/xav_encoder.c:347:53: warning: 'sample_fmts' is deprecated [-Wdeprecated-declarations]
  347 |   const enum AVSampleFormat *sample_format = codec->sample_fmts;
      |                                                     ^
/opt/homebrew/Cellar/ffmpeg/8.0/include/libavcodec/codec.h:203:5: note: 'sample_fmts' has been explicitly marked deprecated here
  203 |     attribute_deprecated
      |     ^
/opt/homebrew/Cellar/ffmpeg/8.0/include/libavutil/attributes.h:100:49: note: expanded from macro 'attribute_deprecated'
  100 | #    define attribute_deprecated __attribute__((deprecated))
      |                                                 ^
c_src/xav/xav_encoder.c:361:51: warning: 'supported_samplerates' is deprecated [-Wdeprecated-declarations]
  361 |   if (codec->type != AVMEDIA_TYPE_AUDIO || codec->supported_samplerates == NULL) {
      |                                                   ^
/opt/homebrew/Cellar/ffmpeg/8.0/include/libavcodec/codec.h:201:5: note: 'supported_samplerates' has been explicitly marked deprecated here
  201 |     attribute_deprecated
      |     ^
/opt/homebrew/Cellar/ffmpeg/8.0/include/libavutil/attributes.h:100:49: note: expanded from macro 'attribute_deprecated'
  100 | #    define attribute_deprecated __attribute__((deprecated))
      |                                                 ^
c_src/xav/xav_encoder.c:365:35: warning: 'supported_samplerates' is deprecated [-Wdeprecated-declarations]
  365 |   const int *sample_rate = codec->supported_samplerates;
      |                                   ^
/opt/homebrew/Cellar/ffmpeg/8.0/include/libavcodec/codec.h:201:5: note: 'supported_samplerates' has been explicitly marked deprecated here
  201 |     attribute_deprecated
      |     ^
/opt/homebrew/Cellar/ffmpeg/8.0/include/libavutil/attributes.h:100:49: note: expanded from macro 'attribute_deprecated'
  100 | #    define attribute_deprecated __attribute__((deprecated))
      |                                                 ^
3 warnings and 5 errors generated.
c_src/xav/encoder.c:45:26: error: use of undeclared identifier 'FF_PROFILE_UNKNOWN'
   45 |   if (config->profile != FF_PROFILE_UNKNOWN) {
      |                          ^
1 error generated.
make: *** [/Users/kevinschweikert/projects/app/_build/dev/lib/xav/priv/libxavencoder.so] Error 1
8> ffmpeg -version
ffmpeg version 8.0 Copyright (c) 2000-2025 the FFmpeg developers
built with Apple clang version 17.0.0 (clang-1700.0.13.3)
configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/8.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-l
d_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enab
le-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh 
--enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enabl
e-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack 
--disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
libavutil      60.  8.100 / 60.  8.100
libavcodec     62. 11.100 / 62. 11.100
libavformat    62.  3.100 / 62.  3.100
libavdevice    62.  1.100 / 62.  1.100
libavfilter    11.  4.100 / 11.  4.100
libswscale      9.  1.100 /  9.  1.100
libswresample   6.  1.100 /  6.  1.100

Exiting with exit code 0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions