Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 953008 - media-libs/chromaprint-1.5.1-r3[tools]: fpcalc command does not work with ffmpeg-7 (also FFmpegAudioReaderTest.ReadRaw test failure)
Summary: media-libs/chromaprint-1.5.1-r3[tools]: fpcalc command does not work with ffm...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Sound Team
URL: https://github.com/acoustid/chromapri...
Whiteboard:
Keywords: PATCH, TESTFAILURE
Depends on:
Blocks: ffmpeg-7.0
  Show dependency tree
 
Reported: 2025-04-01 15:17 UTC by YOSHIOKA Takuma
Modified: 2025-04-01 17:41 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description YOSHIOKA Takuma 2025-04-01 15:17:21 UTC
It looks like `fpcalc` command installed by media-libs/chromaprint-1.5.1-r3[tools] does not work with media-video/ffmpeg-7.1.1.

* Bug#1091825: libchromaprint-tools: fpcalc broken (`ERROR: Could not create an audio converter instance (Invalid argument)`)
  https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg2009874.html
* ffmpeg 7.0 support · Issue #142 · acoustid/chromaprint
  https://github.com/acoustid/chromaprint/issues/142

Probably the dependency with `tools` USE flag should be updated to reject >=ffmpeg-7.

Example of non-working `fpcalc`:

```
$  flac --test test.flac

flac 1.5.0
Copyright (C) 2000-2009  Josh Coalson, 2011-2025  Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.

test.flac: ok
$ fpcalc test.flac
ERROR: Could not create an audio converter instance (Invalid argument)
$ echo $?
2
$
```

Related package versions:

```
$ ffmpeg -version
ffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 14 (Gentoo 14.2.1_p20250301 p8)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --docdir=/usr/share/doc/ffmpeg-7.1.1/html --ar=x86_64-pc-linux-gnu-ar --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --nm=x86_64-pc-linux-gnu-nm --pkg-config=x86_64-pc-linux-gnu-pkg-config --ranlib=x86_64-pc-linux-gnu-ranlib --disable-stripping --disable-debug --disable-optimizations --optflags=' ' --enable-iconv --enable-pic --enable-shared --disable-static --enable-manpages --disable-podpages --disable-txtpages --disable-decklink --disable-libaribcaption --disable-libdavs2 --disable-libklvanc --disable-liblcevc-dec --disable-libmysofa --disable-libopenvino --disable-libshine --disable-libtls --disable-libuavs3d --disable-libvvenc --disable-libxavs --disable-libxavs2 --disable-libxevd --disable-libxeve --disable-pocketsphinx --disable-rkmpp --disable-vapoursynth --disable-cuda-nvcc --disable-libcelt --disable-libglslang --disable-liblensfun --disable-libmfx --disable-libopencv --disable-librist --disable-libtensorflow --disable-libtorch --disable-mbedtls --disable-mmal --disable-omx --disable-omx-rpi --disable-gcrypt --disable-lzma --enable-libpulse --enable-gpl --disable-ffnvcodec --enable-bzlib --disable-libvpl --disable-opencl --disable-libsrt --disable-libaom --enable-libvpx --disable-libzvbi --disable-libsmbclient --disable-libgsm --disable-libxvid --disable-libvidstab --disable-librav1e --disable-vdpau --enable-version3 --disable-libjxl --disable-librabbitmq --disable-libopenh264 --disable-libquirc --disable-libjack --disable-libflite --disable-libsnappy --disable-libtwolame --disable-libsvtav1 --enable-libmp3lame --disable-cuvid --disable-libopenmpt --disable-libplacebo --disable-libfribidi --disable-libfdk-aac --disable-libbs2b --disable-appkit --disable-libspeex --disable-liblc3 --enable-postproc --enable-libxml2 --disable-libshaderc --disable-libzimg --enable-alsa --enable-libfontconfig --enable-libdav1d --disable-libvmaf --disable-sdl2 --disable-nvdec --disable-cuda-llvm --disable-libaribb24 --disable-libnpp --enable-libdrm --enable-libxcb-shm --disable-libkvazaar --enable-gnutls --disable-nvenc --enable-amf --enable-libxcb --disable-libcodec2 --disable-lcms2 --disable-libopencore-amrnb --disable-libtesseract --disable-libvo-amrwbenc --enable-libopus --enable-gmp --enable-vulkan --enable-libdvdread --enable-libopenjpeg --enable-vaapi --enable-libx264 --disable-libx265 --disable-librtmp --disable-libwebp --enable-zlib --enable-libxcb-shape --disable-libsoxr --disable-librubberband --disable-libzmq --disable-htmlpages --disable-libv4l2 --disable-libssh --enable-libtheora --disable-libmodplug --enable-opengl --enable-libdvdnav --enable-libfreetype --disable-openal --disable-librsvg --enable-libass --disable-libgme --disable-chromaprint --disable-ladspa --disable-libiec61883 --disable-libilbc --disable-libcdio --disable-frei0r --disable-sndio --disable-libcaca --enable-libxcb-xfixes --enable-libbluray --disable-libopencore-amrwb --disable-libdc1394 --disable-libqrencode --enable-xlib --disable-openssl --disable-lv2 --enable-libvorbis --enable-libharfbuzz
libavutil      59. 39.100 / 59. 39.100
libavcodec     61. 19.101 / 61. 19.101
libavformat    61.  7.100 / 61.  7.100
libavdevice    61.  3.100 / 61.  3.100
libavfilter    10.  4.100 / 10.  4.100
libswscale      8.  3.100 /  8.  3.100
libswresample   5.  3.100 /  5.  3.100
libpostproc    58.  3.100 / 58.  3.100
$ fpcalc -version
fpcalc version 1.5.1 (FFmpeg Lavc61.19.101 Lavf61.7.100 SwR5.3.100)
$
```

emerge --info:

```
$ emerge --info
Portage 3.0.67 (python 3.12.9-final-0, default/linux/amd64/23.0/systemd, gcc-14, glibc-2.41-r1, 6.14.0-gentoo x86_64)
=================================================================
System uname: Linux-6.14.0-gentoo-x86_64-AMD_Ryzen_9_7950X_16-Core_Processor-with-glibc2.41
KiB Mem:    31960800 total,    655808 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Tue, 01 Apr 2025 13:35:15 +0000
Head commit of repository gentoo: 001a204048acadb35c2befb569685a79430077c9

Head commit of repository gentoo-zh: b0093154994d0347ea01c2c8b84b4d091fab80dd

Timestamp of repository guru: Tue, 01 Apr 2025 11:52:38 +0000
Head commit of repository guru: 696902a36823a126800d34ede72a67a47f11da13

Timestamp of repository haskell: Mon, 31 Mar 2025 08:35:11 +0000
Head commit of repository haskell: b95fae873d7494a47138eb985d01c95906f03c83

sh bash 5.2_p37
ld GNU ld (Gentoo 2.44 p1) 2.44.0
app-misc/pax-utils:        1.3.8::gentoo
app-shells/bash:           5.2_p37::gentoo
dev-build/autoconf:        2.13-r8::gentoo, 2.72-r1::gentoo
dev-build/automake:        1.17-r2::gentoo
dev-build/cmake:           3.31.6-r1::gentoo
dev-build/libtool:         2.5.4::gentoo
dev-build/make:            4.4.1-r100::gentoo
dev-build/meson:           1.7.0::gentoo
dev-java/java-config:      2.3.4::gentoo
dev-lang/perl:             5.40.1::gentoo
dev-lang/python:           3.12.9::gentoo, 3.13.2::gentoo
dev-lang/rust:             1.85.1::gentoo
llvm-core/clang:           19.1.7::gentoo, 20.1.1::gentoo
llvm-core/lld:             19.1.7::gentoo
llvm-core/llvm:            19.1.7::gentoo, 20.1.1::gentoo
sys-apps/baselayout:       2.17::gentoo
sys-apps/sandbox:          2.46::gentoo
sys-apps/systemd:          257.3::gentoo
sys-devel/binutils:        2.44::gentoo
sys-devel/binutils-config: 5.5.2::gentoo
sys-devel/gcc:             13.3.1_p20250301::gentoo, 14.2.1_p20250301::gentoo
sys-devel/gcc-config:      2.12.1::gentoo
sys-kernel/linux-headers:  6.13::gentoo (virtual/os-headers)
sys-libs/glibc:            2.41-r1::gentoo
Repositories:

nopth-under
    location: /var/db/repos/nopth-under
    masters: gentoo
    priority: -2000
    eclass-overrides: lo48576
    volatile: True

gentoo
    location: /var/db/repos/gentoo
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/gentoo.git
    sync-user: portage
    priority: -1000
    eclass-overrides: lo48576
    volatile: False
    sync-git-verify-commit-signature: true

gentoo-zh
    location: /var/db/repos/gentoo-zh
    sync-type: git
    sync-uri: https://github.com/microcai/gentoo-zh.git
    masters: gentoo
    priority: -100
    eclass-overrides: lo48576
    volatile: False

guru
    location: /var/db/repos/guru
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/guru.git
    masters: gentoo
    eclass-overrides: lo48576
    volatile: False

haskell
    location: /var/db/repos/haskell
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/haskell.git
    masters: gentoo
    eclass-overrides: lo48576
    volatile: False

nopthread-under
    location: /var/db/repos/nopthread-under
    masters: gentoo
    eclass-overrides: lo48576
    volatile: True

lo48576
    location: /var/db/repos/lo48576
    masters: gentoo
    priority: 100
    eclass-overrides: lo48576
    volatile: True

Installed sets: @fav/fonts, @packages/ansible, @packages/pipewire, @purpose/yubikey, @purpose/zeroconf, @system/core, @system/filesystem, @system/gentoo-utils, @system/xorg-basic-utils
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="@FREE @BINARY-REDISTRIBUTABLE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-march=native -O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -O2 -pipe"
GENTOO_MIRRORS="     https://ftp.iij.ad.jp/pub/linux/gentoo     https://ftp.riken.jp/Linux/gentoo     https://ftp.jaist.ac.jp/pub/Linux/Gentoo     http://ftp.iij.ad.jp/pub/linux/gentoo     http://ftp.riken.jp/Linux/gentoo     http://ftp.jaist.ac.jp/pub/Linux/Gentoo     "
LANG="ja_JP.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs"
LEX="flex"
MAKEOPTS="-j32"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/zsh"
USE="X aac acl acpi alsa amd64 apparmor avif bluetooth bluray bzip2 cairo cdr cet cjk crypt css curl dbus dvd dvdr egl exif ffmpeg flac flatpak fontconfig gdbm gmp gnome-keyring gtk iconv icu inotify ipv6 jpeg jpeg2k keyring lame libnotify libtirpc linguas_en linguas_ja luajit m17n-lib matroska mp3 mp4 mpeg multilib ncurses nls ogg opengl openmp opus pam pcre pipewire png policykit pulseaudio readline screencast seccomp sqlite ssl startup-notification systemd taglib test-rust theora threads tiff tls truetype udev udisks unicode upower usb vaapi vorbis vpx vulkan wavpack wayland wifi xattr xft xinerama xrandr zeroconf zlib zsh-completion zstd" ABI_X86="64" ADA_TARGET="gcc_14" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 avx512_bf16 avx512_bitalg avx512_vbmi2 avx512_vnni avx512_vpopcntdq avx512bw avx512cd avx512dq avx512f avx512ifma avx512vbmi avx512vl f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 vpclmulqdq" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="libinput wacom" KERNEL="linux" L10N="en ja" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PERL_FEATURES="ithreads" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby34" VIDEO_CARDS="amdgpu fbdev radeonsi" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS

$
```
Comment 1 Ionen Wolkens gentoo-dev 2025-04-01 16:55:19 UTC
(In reply to YOSHIOKA Takuma from comment #0)
> Probably the dependency with `tools` USE flag should be updated to reject
> >=ffmpeg-7.
That'd be a bit messy given ffmpeg-7[chromaprint] depends on chromaprint (circular), not to mention that it'd block upgrade to ffmpeg-7 for the whole system that we want to avoid at this point.

ffmpeg-compat:6 is also better avoided given that may interact badly with the circular usage as well.

Ideally need a fix to backport to let it work with ffmpeg-7.

$URL mentions that [1] fixes it and it seems to apply cleanly to our in-tree version (on top of our current ffmpeg-5.patch).

Does [1] help for you? Haven't tried this yet myself nor know anything about chromaprint really, so I'd rather an actual user tries it.

[1] https://github.com/acoustid/chromaprint/commit/82781d02cd3063d071a501218297a90bde9a314f.patch
Comment 2 YOSHIOKA Takuma 2025-04-01 17:03:39 UTC
(In reply to Ionen Wolkens from comment #1)
> Ideally need a fix to backport to let it work with ffmpeg-7.
> 
> $URL mentions that [1] fixes it and it seems to apply cleanly to our in-tree
> version (on top of our current ffmpeg-5.patch).
> 
> Does [1] help for you? Haven't tried this yet myself nor know anything about
> chromaprint really, so I'd rather an actual user tries it.
> 
> [1]
> https://github.com/acoustid/chromaprint/commit/
> 82781d02cd3063d071a501218297a90bde9a314f.patch

Yes, I can apply it without no patch modification, and now fpcalc command looks working as expected.
Comment 3 Larry the Git Cow gentoo-dev 2025-04-01 17:33:21 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ab82e421dc3c06d43ab37faae5b5e0fd0d405c56

commit ab82e421dc3c06d43ab37faae5b5e0fd0d405c56
Author:     Ionen Wolkens <ionen@gentoo.org>
AuthorDate: 2025-04-01 17:17:22 +0000
Commit:     Ionen Wolkens <ionen@gentoo.org>
CommitDate: 2025-04-01 17:29:26 +0000

    media-libs/chromaprint: backport runtime fix for ffmpeg-7
    
    Not closing bug #953008 given still getting a test failure
    with ffmpeg-7 (not really investigated, could be harmless)
    
    Expected equality of these values:
      2
      reader.GetChannels()
        Which is: 1
    [  FAILED  ] FFmpegAudioReaderTest.ReadRaw (0 ms)
    
    Does not seem caused by the patch given tests passes when
    using ffmpeg-6, the patch also fixes an issue with ffmpeg-6
    so there's no reason not to add it.
    
    (also side-fix ExcessiveLineLength warning while here)
    
    Bug: https://bugs.gentoo.org/953008
    Signed-off-by: Ionen Wolkens <ionen@gentoo.org>

 ...1.5.1-r3.ebuild => chromaprint-1.5.1-r4.ebuild} | 15 +++++--
 media-libs/chromaprint/files/ffmpeg-7.patch        | 46 ++++++++++++++++++++++
 2 files changed, 57 insertions(+), 4 deletions(-)
Comment 4 Ionen Wolkens gentoo-dev 2025-04-01 17:41:35 UTC
Was worried that the test failure could imply different fingerprints (e.g. if get channels wrong), but ffmpeg-6 and 7 yield the same results from a few quick tries -- but who knows, could only manifest in specific cases.

Not planning to look further into this myself nor have it block potential ffmpeg-7 stable in the future, but could be worth investigating if someone wants to.

Hopefully gets a new release sometime, been years but upstream is still active.