Opened 15 hours ago

Last modified 15 hours ago

#11323 new defect

soxr resampler assertion failure with precision>=30, specific duration values and loudnorm filter

Reported by: realies Owned by:
Priority: normal Component: avfilter
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description (last modified by realies)

Summary of the bug:
FFmpeg crashes with "Assertion best_input >= 0 failed" when using soxr resampler with precision>=30 and duration values with 3 or more decimal places, but only when the loudnorm filter is present in the chain before the resampler.

How to reproduce:

# Minimal failing case:
ffmpeg -filter_complex "sine=frequency=440:duration=65.706,loudnorm,aresample=44100:resampler=soxr:precision=33" output.wav

# Error message:
Assertion best_input >= 0 failed at fftools/ffmpeg_filter.c:2127

# Working variations:
1. Same command with 2 decimal places works:
ffmpeg -filter_complex "sine=frequency=440:duration=65.70,loudnorm,aresample=44100:resampler=soxr:precision=33" output.wav

2. Same command with default resampler works:
ffmpeg -filter_complex "sine=frequency=440:duration=65.706,loudnorm,aresample=44100:precision=33" output.wav

3. Same command with lower precision works:
ffmpeg -filter_complex "sine=frequency=440:duration=65.706,loudnorm,aresample=44100:resampler=soxr:precision=29" output.wav

ffmpeg version N-117857-g2d077f9acd-20241121 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 14.1.0 (crosstool-NG 1.26.0.93_a87bf7f)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux --enable-gpl --enable-version3 --disable-debug --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2 --enable-openssl --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --enable-libpulse --enable-libvmaf --enable-libxcb --enable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --disable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libvvenc --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs='-ldl -lgomp' --extra-ldflags=-pthread --extra-ldexeflags=-pie --cc=x86_64-ffbuild-linux-gnu-gcc --cxx=x86_64-ffbuild-linux-gnu-g++ --ar=x86_64-ffbuild-linux-gnu-gcc-ar --ranlib=x86_64-ffbuild-linux-gnu-gcc-ranlib --nm=x86_64-ffbuild-linux-gnu-gcc-nm --extra-version=20241121
libavutil      59. 47.100 / 59. 47.100
libavcodec     61. 25.102 / 61. 25.102
libavformat    61.  9.100 / 61.  9.100
libavdevice    61.  4.100 / 61.  4.100
libavfilter    10.  6.101 / 10.  6.101
libswscale      8.  9.101 /  8.  9.101
libswresample   5.  4.100 /  5.  4.100
libpostproc    58.  4.100 / 58.  4.100

Additional notes:

  • Issue occurs with precision values of 30-33
  • Issue only manifests with soxr resampler (default swresample works fine)
  • Duration values with 3+ decimal places trigger the failure
  • The loudnorm filter must be present in the chain before the resampler for the issue to occur

Change History (1)

comment:1 by realies, 15 hours ago

Description: modified (diff)
Summary: soxr resampler assertion failure with precision>=30 and specific duration valuessoxr resampler assertion failure with precision>=30, specific duration values and loudnorm filter
Note: See TracTickets for help on using tickets.