[FFmpeg-trac] #9196(undetermined:new): adelay suffers integer overflow when delaying over 2^32-1 samples
FFmpeg
trac at avcodec.org
Tue Apr 20 00:05:48 EEST 2021
#9196: adelay suffers integer overflow when delaying over 2^32-1 samples
-------------------------------------+-------------------------------------
Reporter: frumsdotxyz | Type: defect
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: avfilter, | Blocked By:
adelay |
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
I'm not sure how widely-scoped this issue is, but adelay seems to be
managing sample counts for delays in unsigned 32-bit integers, and
complains about negative input values when those counts would overflow -
for instance, using a 50_000_000 millisecond delay on a video with a 48
kHZ audio track, or (as in the sample below) a 100_000_000 millisecond
delay on a 22.05 kHz audio file.
Output for a sample transformation, and output for an ex input file itself
are provided, but this problem was reproduced across several
platforms/input audio files/versions, including 4.4.0-r0 (Alpine
distribution).
{{{
ffmpeg started on 2021-04-19 at 14:00:35
Report written to "ffmpeg-20210419-140035.log"
Log level: 48
Command line:
ffmpeg -i zombo.mp3 -af "adelay=delays=100000000:all=1" -report out.mp3
ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
built with Apple clang version 12.0.0 (clang-1200.0.32.29)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.4 --enable-shared
--enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-
cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl
--enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame
--enable-libopus --enable-librav1e --enable-librubberband --enable-
libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora
--enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp
--enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid
--enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r
--enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq
--enable-libzimg --disable-libjack --disable-indev=jack --enable-
videotoolbox
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
Splitting the commandline.
Reading option '-i' ... matched as input url with argument 'zombo.mp3'.
Reading option '-af' ... matched as option 'af' (set audio filters) with
argument 'adelay=delays=100000000:all=1'.
Reading option '-report' ... matched as option 'report' (generate a
report) with argument '1'.
Reading option 'out.mp3' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url zombo.mp3.
Successfully parsed a group of options.
Opening an input file: zombo.mp3.
[NULL @ 0x7fe3f700e800] Opening 'zombo.mp3' for reading
[file @ 0x7fe3f4420e00] Setting default whitelist 'file,crypto,data'
[mp3 @ 0x7fe3f700e800] Format mp3 probed with size=2048 and score=51
[mp3 @ 0x7fe3f700e800] Skipping 0 bytes of junk at 0.
[mp3 @ 0x7fe3f700e800] Before avformat_find_stream_info() pos: 0 bytes
read:65664 seeks:2 nb_streams:1
[mp3 @ 0x7fe3f700e800] All info found
[mp3 @ 0x7fe3f700e800] Estimating duration from bitrate, this may be
inaccurate
[mp3 @ 0x7fe3f700e800] After avformat_find_stream_info() pos: 4096 bytes
read:65664 seeks:2 frames:50
Input #0, mp3, from 'zombo.mp3':
Duration: 00:01:45.48, start: 0.000000, bitrate: 24 kb/s
Stream #0:0, 50, 1/14112000: Audio: mp3, 22050 Hz, mono, fltp, 24 kb/s
Successfully opened the file.
Parsing a group of options: output url out.mp3.
Applying option af (set audio filters) with argument
adelay=delays=100000000:all=1.
Successfully parsed a group of options.
Opening an output file: out.mp3.
[file @ 0x7fe3f4707b00] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (mp3 (mp3float) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
if it occurs once at the start per stream)
detected 8 logical cores
[Parsed_adelay_0 @ 0x7fe3f5a04e80] Setting 'delays' to value '100000000'
[Parsed_adelay_0 @ 0x7fe3f5a04e80] Setting 'all' to value '1'
[graph_0_in_0_0 @ 0x7fe3f4424740] Setting 'time_base' to value '1/22050'
[graph_0_in_0_0 @ 0x7fe3f4424740] Setting 'sample_rate' to value '22050'
[graph_0_in_0_0 @ 0x7fe3f4424740] Setting 'sample_fmt' to value 'fltp'
[graph_0_in_0_0 @ 0x7fe3f4424740] Setting 'channel_layout' to value '0x4'
[graph_0_in_0_0 @ 0x7fe3f4424740] tb:1/22050 samplefmt:fltp
samplerate:22050 chlayout:0x4
[format_out_0_0 @ 0x7fe3f4424bc0] Setting 'sample_fmts' to value
's32p|fltp|s16p'
[format_out_0_0 @ 0x7fe3f4424bc0] Setting 'sample_rates' to value
'44100|48000|32000|22050|24000|16000|11025|12000|8000'
[format_out_0_0 @ 0x7fe3f4424bc0] Setting 'channel_layouts' to value
'0x4|0x3'
[AVFilterGraph @ 0x7fe3f44245c0] query_formats: 4 queried, 9 merged, 0
already done, 0 delayed
[Parsed_adelay_0 @ 0x7fe3f5a04e80] Delay must be non negative number.
[Parsed_adelay_0 @ 0x7fe3f5a04e80] Failed to configure input pad on
Parsed_adelay_0
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
[AVIOContext @ 0x7fe3f4422c00] Statistics: 0 seeks, 0 writeouts
[AVIOContext @ 0x7fe3f4420f80] Statistics: 65664 bytes read, 2 seeks
Conversion failed!
}}}
{{{
ffmpeg started on 2021-04-19 at 14:00:50
Report written to "ffmpeg-20210419-140050.log"
Log level: 99
Command line:
ffmpeg -v 9 -loglevel 99 -i zombo.mp3 -report
ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
built with Apple clang version 12.0.0 (clang-1200.0.32.29)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.4 --enable-shared
--enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-
cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl
--enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame
--enable-libopus --enable-librav1e --enable-librubberband --enable-
libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora
--enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp
--enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid
--enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r
--enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq
--enable-libzimg --disable-libjack --disable-indev=jack --enable-
videotoolbox
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with
argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument '99'.
Reading option '-i' ... matched as input url with argument 'zombo.mp3'.
Reading option '-report' ... matched as option 'report' (generate a
report) with argument '1'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Applying option loglevel (set logging level) with argument 99.
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url zombo.mp3.
Successfully parsed a group of options.
Opening an input file: zombo.mp3.
[NULL @ 0x7fda90008200] Opening 'zombo.mp3' for reading
[file @ 0x7fda8d707800] Setting default whitelist 'file,crypto,data'
Probing mp3 score:51 size:2048
[mp3 @ 0x7fda90008200] Format mp3 probed with size=2048 and score=51
[mp3 @ 0x7fda90008200] Skipping 0 bytes of junk at 0.
[mp3 @ 0x7fda90008200] Before avformat_find_stream_info() pos: 0 bytes
read:65664 seeks:2 nb_streams:1
[mp3 @ 0x7fda90008200] All info found
[mp3 @ 0x7fda90008200] Estimating duration from bitrate, this may be
inaccurate
[mp3 @ 0x7fda90008200] stream 0: start_time: 0 duration: 105.482
[mp3 @ 0x7fda90008200] format: start_time: 0 duration: 105.482 (estimate
from bit rate) bitrate=24 kb/s
[mp3 @ 0x7fda90008200] After avformat_find_stream_info() pos: 4096 bytes
read:65664 seeks:2 frames:50
Input #0, mp3, from 'zombo.mp3':
Duration: 00:01:45.48, start: 0.000000, bitrate: 24 kb/s
Stream #0:0, 50, 1/14112000: Audio: mp3, 22050 Hz, mono, fltp, 24 kb/s
Successfully opened the file.
At least one output file must be specified
[AVIOContext @ 0x7fda8eb040c0] Statistics: 65664 bytes read, 2 seeks
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9196>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list