chromaprint
chromaprint copied to clipboard
Latest fpcalc utility doesn't compile against current FFmpeg
Thank you for recent changes.
Against current FFmpeg, the fpcalc utility does not compile. Could there be an API difference? Here is the compile log.
In summary:
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:164:55: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘codec’
164 | m_codec_ctx = m_format_ctx->streams[m_stream_index]->codec;
| ^~~~~
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:281:9: error: ‘avcodec_decode_audio4’ was not declared in this scope; did you mean ‘avcodec_decode_subtitle2’?
281 | ret = avcodec_decode_audio4(m_codec_ctx, m_frame, &m_got_frame, &m_packet);
| ^~~~~~~~~~~~~~~~~~~~~
| avcodec_decode_subtitle2
make[2]: *** [src/cmd/CMakeFiles/fpcalc.dir/build.make:85: src/cmd/CMakeFiles/fpcalc.dir/fpcalc.cpp.o] Error 1
make[2]: Leaving directory '/home/john/src/chromaprint'
make[1]: *** [CMakeFiles/Makefile2:248: src/cmd/CMakeFiles/fpcalc.dir/all] Error 2
make[1]: Leaving directory '/home/john/src/chromaprint'
make: *** [Makefile:152: all] Error 2
Now, here is the full log:
[ 95%] Building CXX object src/cmd/CMakeFiles/fpcalc.dir/fpcalc.cpp.o
cd /home/john/src/chromaprint/src/cmd && /usr/bin/c++ -DHAVE_CONFIG_H -D_GLIBCXX_DEBUG -D_SCL_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I/home/john/src/chromaprint -I/home/john/src/chromaprint/src -fpermissive -Wall -g -fvisibility=hidden -fvisibility-inlines-hidden -std=gnu++11 -o CMakeFiles/fpcalc.dir/fpcalc.cpp.o -c /home/john/src/chromaprint/src/cmd/fpcalc.cpp
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h: In constructor ‘chromaprint::FFmpegAudioReader::FFmpegAudioReader()’:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:102:26: warning: ‘void av_init_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
102 | av_init_packet(&m_packet);
| ^
In file included from /usr/local/include/libavcodec/avcodec.h:45,
from /home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:18,
from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/usr/local/include/libavcodec/packet.h:506:6: note: declared here
506 | void av_init_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h: In member function ‘bool chromaprint::FFmpegAudioReader::SetInputFormat(const char*)’:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:117:36: warning: invalid conversion from ‘const AVInputFormat*’ to ‘AVInputFormat*’ [-fpermissive]
117 | m_input_fmt = av_find_input_format(name);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~
| |
| const AVInputFormat*
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h: In member function ‘bool chromaprint::FFmpegAudioReader::Open(const string&)’:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:138:29: warning: ‘void av_init_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
138 | av_init_packet(&m_packet);
| ^
In file included from /usr/local/include/libavcodec/avcodec.h:45,
from /home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:18,
from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/usr/local/include/libavcodec/packet.h:506:6: note: declared here
506 | void av_init_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:157:70: warning: invalid conversion from ‘AVCodec**’ to ‘const AVCodec**’ [-fpermissive]
157 | ret = av_find_best_stream(m_format_ctx, AVMEDIA_TYPE_AUDIO, -1, -1, &codec, 0);
| ^~~~~~
| |
| AVCodec**
In file included from /home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:19,
from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/usr/local/include/libavformat/avformat.h:2162:41: note: initializing argument 5 of ‘int av_find_best_stream(AVFormatContext*, AVMediaType, int, int, const AVCodec**, int)’
2162 | const AVCodec **decoder_ret,
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:164:55: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘codec’
164 | m_codec_ctx = m_format_ctx->streams[m_stream_index]->codec;
| ^~~~~
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h: In member function ‘bool chromaprint::FFmpegAudioReader::Read(const int16_t**, size_t*)’:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:259:28: warning: ‘void av_init_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
259 | av_init_packet(&m_packet);
| ^
In file included from /usr/local/include/libavcodec/avcodec.h:45,
from /home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:18,
from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/usr/local/include/libavcodec/packet.h:506:6: note: declared here
506 | void av_init_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:281:9: error: ‘avcodec_decode_audio4’ was not declared in this scope; did you mean ‘avcodec_decode_subtitle2’?
281 | ret = avcodec_decode_audio4(m_codec_ctx, m_frame, &m_got_frame, &m_packet);
| ^~~~~~~~~~~~~~~~~~~~~
| avcodec_decode_subtitle2
make[2]: *** [src/cmd/CMakeFiles/fpcalc.dir/build.make:85: src/cmd/CMakeFiles/fpcalc.dir/fpcalc.cpp.o] Error 1
make[2]: Leaving directory '/home/john/src/chromaprint'
make[1]: *** [CMakeFiles/Makefile2:248: src/cmd/CMakeFiles/fpcalc.dir/all] Error 2
make[1]: Leaving directory '/home/john/src/chromaprint'
make: *** [Makefile:152: all] Error 2
/usr/bin/cmake -S/home/john/src/chromaprint -B/home/john/src/chromaprint --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/john/src/chromaprint/CMakeFiles /home/john/src/chromaprint//CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/john/src/chromaprint'
make -f src/CMakeFiles/chromaprint_objs.dir/build.make src/CMakeFiles/chromaprint_objs.dir/depend
make[2]: Entering directory '/home/john/src/chromaprint'
cd /home/john/src/chromaprint && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/john/src/chromaprint /home/john/src/chromaprint/src /home/john/src/chromaprint /home/john/src/chromaprint/src /home/john/src/chromaprint/src/CMakeFiles/chromaprint_objs.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/john/src/chromaprint'
make -f src/CMakeFiles/chromaprint_objs.dir/build.make src/CMakeFiles/chromaprint_objs.dir/build
make[2]: Entering directory '/home/john/src/chromaprint'
make[2]: Nothing to be done for 'src/CMakeFiles/chromaprint_objs.dir/build'.
make[2]: Leaving directory '/home/john/src/chromaprint'
[ 81%] Built target chromaprint_objs
make -f src/CMakeFiles/chromaprint.dir/build.make src/CMakeFiles/chromaprint.dir/depend
make[2]: Entering directory '/home/john/src/chromaprint'
cd /home/john/src/chromaprint && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/john/src/chromaprint /home/john/src/chromaprint/src /home/john/src/chromaprint /home/john/src/chromaprint/src /home/john/src/chromaprint/src/CMakeFiles/chromaprint.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/john/src/chromaprint'
make -f src/CMakeFiles/chromaprint.dir/build.make src/CMakeFiles/chromaprint.dir/build
make[2]: Entering directory '/home/john/src/chromaprint'
make[2]: Nothing to be done for 'src/CMakeFiles/chromaprint.dir/build'.
make[2]: Leaving directory '/home/john/src/chromaprint'
[ 90%] Built target chromaprint
make -f src/cmd/CMakeFiles/fpcalc.dir/build.make src/cmd/CMakeFiles/fpcalc.dir/depend
make[2]: Entering directory '/home/john/src/chromaprint'
cd /home/john/src/chromaprint && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/john/src/chromaprint /home/john/src/chromaprint/src/cmd /home/john/src/chromaprint /home/john/src/chromaprint/src/cmd /home/john/src/chromaprint/src/cmd/CMakeFiles/fpcalc.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/john/src/chromaprint'
make -f src/cmd/CMakeFiles/fpcalc.dir/build.make src/cmd/CMakeFiles/fpcalc.dir/build
make[2]: Entering directory '/home/john/src/chromaprint'
[ 95%] Building CXX object src/cmd/CMakeFiles/fpcalc.dir/fpcalc.cpp.o
cd /home/john/src/chromaprint/src/cmd && /usr/bin/c++ -DHAVE_CONFIG_H -D_GLIBCXX_DEBUG -D_SCL_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I/home/john/src/chromaprint -I/home/john/src/chromaprint/src -fpermissive -Wall -g -fvisibility=hidden -fvisibility-inlines-hidden -std=gnu++11 -o CMakeFiles/fpcalc.dir/fpcalc.cpp.o -c /home/john/src/chromaprint/src/cmd/fpcalc.cpp
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h: In constructor ‘chromaprint::FFmpegAudioReader::FFmpegAudioReader()’:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:102:26: warning: ‘void av_init_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
102 | av_init_packet(&m_packet);
| ^
In file included from /usr/local/include/libavcodec/avcodec.h:45,
from /home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:18,
from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/usr/local/include/libavcodec/packet.h:506:6: note: declared here
506 | void av_init_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h: In member function ‘bool chromaprint::FFmpegAudioReader::SetInputFormat(const char*)’:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:117:36: warning: invalid conversion from ‘const AVInputFormat*’ to ‘AVInputFormat*’ [-fpermissive]
117 | m_input_fmt = av_find_input_format(name);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~
| |
| const AVInputFormat*
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h: In member function ‘bool chromaprint::FFmpegAudioReader::Open(const string&)’:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:138:29: warning: ‘void av_init_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
138 | av_init_packet(&m_packet);
| ^
In file included from /usr/local/include/libavcodec/avcodec.h:45,
from /home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:18,
from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/usr/local/include/libavcodec/packet.h:506:6: note: declared here
506 | void av_init_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:157:70: warning: invalid conversion from ‘AVCodec**’ to ‘const AVCodec**’ [-fpermissive]
157 | ret = av_find_best_stream(m_format_ctx, AVMEDIA_TYPE_AUDIO, -1, -1, &codec, 0);
| ^~~~~~
| |
| AVCodec**
In file included from /home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:19,
from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/usr/local/include/libavformat/avformat.h:2162:41: note: initializing argument 5 of ‘int av_find_best_stream(AVFormatContext*, AVMediaType, int, int, const AVCodec**, int)’
2162 | const AVCodec **decoder_ret,
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:164:55: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘codec’
164 | m_codec_ctx = m_format_ctx->streams[m_stream_index]->codec;
| ^~~~~
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h: In member function ‘bool chromaprint::FFmpegAudioReader::Read(const int16_t**, size_t*)’:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:259:28: warning: ‘void av_init_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
259 | av_init_packet(&m_packet);
| ^
In file included from /usr/local/include/libavcodec/avcodec.h:45,
from /home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:18,
from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/usr/local/include/libavcodec/packet.h:506:6: note: declared here
506 | void av_init_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
In file included from /home/john/src/chromaprint/src/cmd/fpcalc.cpp:7:
/home/john/src/chromaprint/src/audio/ffmpeg_audio_reader.h:281:9: error: ‘avcodec_decode_audio4’ was not declared in this scope; did you mean ‘avcodec_decode_subtitle2’?
281 | ret = avcodec_decode_audio4(m_codec_ctx, m_frame, &m_got_frame, &m_packet);
| ^~~~~~~~~~~~~~~~~~~~~
| avcodec_decode_subtitle2
make[2]: *** [src/cmd/CMakeFiles/fpcalc.dir/build.make:85: src/cmd/CMakeFiles/fpcalc.dir/fpcalc.cpp.o] Error 1
make[2]: Leaving directory '/home/john/src/chromaprint'
make[1]: *** [CMakeFiles/Makefile2:248: src/cmd/CMakeFiles/fpcalc.dir/all] Error 2
make[1]: Leaving directory '/home/john/src/chromaprint'
make: *** [Makefile:152: all] Error 2
Same error in my Gentoo: chromaprint 1.5.1 fails with ffmpeg 5.0 release.
Iade
Here the root cause... https://github.com/acoustid/chromaprint/issues/33
It's an announced ignored issue...
ok these deprecated things since ffmpeg 3.1, seems to me, that aren't difficult to fix ...
Will be fixed in https://github.com/acoustid/chromaprint/pull/120