Opened 9 years ago
Closed 9 years ago
#810 closed defect (fixed)
Muxing MXF audio only files leads to a floating point exception
| Reported by: | ubitux | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avformat |
| Version: | git-master | Keywords: | mxf fpe |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
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.
Change History (3)
comment:1 Changed 9 years ago by cehoyos
- Reproduced by developer set
- Status changed from new to open
comment:2 Changed 9 years ago by michael
comment:3 Changed 9 years ago by cehoyos
- Keywords fpe added
- Resolution set to fixed
- Status changed from open to closed
The fpe was fixed by Tomas Härdin, I suggest to open a new ticket for the "audio only mxf muxing" enhancement.
Note: See
TracTickets for help on using
tickets.



patch on ML