[FFmpeg-trac] #810(avformat:new): Muxing MXF audio only files leads to a floating point exception
FFmpeg
trac at avcodec.org
Wed Dec 21 00:32:16 CET 2011
#810: Muxing MXF audio only files leads to a floating point exception
--------------------------------------+----------------------------------
Reporter: ubitux | Owner:
Type: defect | Status: new
Priority: normal | Component: avformat
Version: git-master | Keywords: mxf
Blocked By: | Blocking:
Reproduced by developer: 0 | Analyzed by developer: 0
--------------------------------------+----------------------------------
Steps to reproduce:
{{{
% make tests/audiogen
% ./tests/audiogen a.sw 48000 2
% ./ffmpeg -ar 48000 -ac 2 -i a.sw -y a.mxf
}}}
Backtrace:
{{{
(gdb) r
Starting program: /home/ubitux/proj/ffmpeg/ffmpeg_g -ar 48000 -ac 2 -i
a.sw -y a.mxf
[Thread debugging using libthread_db enabled]
ffmpeg version N-36003-gf27930c, Copyright (c) 2000-2011 the FFmpeg
developers
built on Dec 21 2011 00:07:07 with gcc 4.6.2 20111125 (prerelease)
configuration: --enable-gpl --enable-libmp3lame --enable-libvorbis
--enable-libxvid --enable-libx264 --enable-libvpx --enable-libtheora
--enable-x11grab --enable-libopenjpeg --enable-version3 --enable-
libmodplug --enable-libass --cc='ccache cc'
libavutil 51. 32. 0 / 51. 32. 0
libavcodec 53. 46. 1 / 53. 46. 1
libavformat 53. 27. 0 / 53. 27. 0
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 53. 0 / 2. 53. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0
[s16le @ 0x141d840] Estimating duration from bitrate, this may be
inaccurate
Input #0, s16le, from 'a.sw':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Output #0, mxf, to 'a.mxf':
Metadata:
encoder : Lavf53.27.0
Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s16le -> pcm_s16le)
Press [q] to stop, [?] for help
Program received signal SIGFPE, Arithmetic exception.
0x0000000000a9ec0b in av_rescale_rnd (a=<optimized out>, b=0, c=0,
rnd=<optimized out>) at libavutil/mathematics.c:91
91 return (a * b + r)/c;
(gdb) bt
#0 0x0000000000a9ec0b in av_rescale_rnd (a=<optimized out>, b=0, c=0,
rnd=<optimized out>) at libavutil/mathematics.c:91
#1 0x0000000000553acb in ff_interleave_new_audio_packet (flush=0,
stream_index=0, pkt=0x7fffffffbfa0, s=<optimized out>)
at libavformat/audiointerleave.c:87
#2 ff_audio_rechunk_interleave (s=0x1425c80, out=0x7fffffffc050, pkt=0x0,
flush=0,
get_packet=0x502fd0 <mxf_interleave_get_packet>, compare_ts=0x502f60
<mxf_compare_timestamps>)
at libavformat/audiointerleave.c:132
#3 0x0000000000543175 in interleave_packet (flush=0, in=0x7fffffffc300,
out=0x7fffffffc050, s=<optimized out>)
at libavformat/utils.c:3454
#4 av_interleaved_write_frame (s=0x1425c80, pkt=0x7fffffffc300) at
libavformat/utils.c:3477
#5 0x00000000004466d5 in write_frame (s=0x1425c80, pkt=0x7fffffffc300,
avctx=0x141e860, bsfc=0x0) at ffmpeg.c:833
#6 0x0000000000448ec9 in do_audio_out (ist=0x141dd90, ost=0x1424830,
s=0x1425c80, decoded_frame=<optimized out>)
at ffmpeg.c:1072
#7 transcode_audio (got_output=0x7fffffffc3c8, pkt=0x7fffffffc2a0,
ist=0x141dd90) at ffmpeg.c:1838
#8 output_packet (ist=<optimized out>, ost_table=0x1424830,
nb_ostreams=<optimized out>, pkt=<optimized out>)
at ffmpeg.c:2043
#9 0x000000000044b72e in transcode (output_files=0x1424b00,
nb_output_files=1, input_files=0x1424c10, nb_input_files=0)
at ffmpeg.c:2804
#10 0x00000000004432a2 in main (argc=<optimized out>, argv=0x7fffffffe698)
at ffmpeg.c:4885
(gdb)
}}}
The time base seems to be set only with when a video stream is specified,
so trying to rescale it in case of audio only leads to a floating
exception. The issue might also be reproducible with data or subtitles
muxing without video.
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/810>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list