[Ffmpeg-devel] Seeming problem with mpegaudiodec.c

Michael Niedermayer michaelni
Tue Sep 19 02:05:27 CEST 2006


Hi

On Mon, Sep 18, 2006 at 07:51:16PM -0400, jason at cubedthree.com wrote:
> There seems to be a problem with mpegaudiodec.c.  Here's why:
> 
> 1) I tried to transcode an mpeg file to a flv file
> 2) I received the error message while encoding: Floating point exception
> 3) The command line I used during this was: # ffmpeg -i test1.mpeg test1.flv
> 4) The console output I received was this:
> 
> ==================================================
> # ffmpeg -i test1.mpeg test1.flv
> FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2004 Fabrice Bellard
>   configuration:  --enable-mp3lame --enable-amr_nb --enable-amr_nb-fixed
> --enable-amr_wb --enable-amr_if2
>   libavutil version: 49.0.0
>   libavcodec version: 51.14.0
>   libavformat version: 50.5.0
>   built on Sep 18 2006 17:22:26, gcc: 3.4.5 (Gentoo 3.4.5, ssp-3.4.5-1.0,
> pie-8.7.9)
> Input #0, mpeg, from 'test1.mpeg':
>   Duration: 00:00:07.5, start: 0.204244, bitrate: 1818 kb/s
>   Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 320x240, 1500 kb/s, 29.97
> fps(r)
>   Stream #0.1[0x1c0]: Audio: mp2, 32000 Hz, mono, 48 kb/s
> Output #0, flv, to 'test1.flv':
>   Stream #0.0: Video: flv, yuv420p, 320x240, q=2-31, 200 kb/s, 29.97 fps(c)
>   Stream #0.1: Audio: mp3, 32000 Hz, mono, 64 kb/s
> Stream mapping:
>   Stream #0.0 -> #0.0
>   Stream #0.1 -> #0.1
> Floating point exception
> ==================================================
> 
> 5) Running gdb as requested, I received the following:
> 
> ==================================================
> lifeoutsystems ~ # gdb ffmpeg_g
> GNU gdb 6.4
> Copyright 2005 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db
> library "/lib/libthread_db.so.1".
> 
> (gdb) r -i test1.mpeg test1.flv
> Starting program: /usr/local/bin/ffmpeg_g -i test1.mpeg test1.flv
> FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2004 Fabrice Bellard
>   configuration:  --enable-mp3lame --enable-amr_nb --enable-amr_nb-fixed
> --enable-amr_wb --enable-amr_if2
>   libavutil version: 49.0.0
>   libavcodec version: 51.14.0
>   libavformat version: 50.5.0
>   built on Sep 18 2006 17:22:26, gcc: 3.4.5 (Gentoo 3.4.5, ssp-3.4.5-1.0,
> pie-8.7.9)
> Input #0, mpeg, from 'test1.mpeg':
>   Duration: 00:00:07.5, start: 0.204244, bitrate: 1818 kb/s
>   Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 320x240, 1500 kb/s, 29.97
> fps(r)
>   Stream #0.1[0x1c0]: Audio: mp2, 32000 Hz, mono, 48 kb/s
> Output #0, flv, to 'test1.flv':
>   Stream #0.0: Video: flv, yuv420p, 320x240, q=2-31, 200 kb/s, 29.97 fps(c)
>   Stream #0.1: Audio: mp3, 32000 Hz, mono, 64 kb/s
> Stream mapping:
>   Stream #0.0 -> #0.0
>   Stream #0.1 -> #0.1
> 
> Program received signal SIGFPE, Arithmetic exception.
> 0x081897e1 in decode_init (avctx=0x8497660) at mpegaudiodec.c:430
> 430             for(i=0; i<512*16; i++){
> (gdb) bt
> #0  0x081897e1 in decode_init (avctx=0x8497660) at mpegaudiodec.c:430
> #1  0x080c2f9f in avcodec_open (avctx=0x8497660, codec=0x840a380)
>     at utils.c:858
> #2  0x08065561 in main (argc=139040960, argv=0x1) at ffmpeg.c:1775
[...]
> ==================================================
> 
> 6) So... knowing enough about software to get myself into trouble (and being
> a software engineer doesn't hurt)... I noticed the problem being at
> (mpegaudiodec.c:430).  So I tracked back through the subversion blame
> history and found that this was changed at revision 6082.  Well, I
> downloaded that version, and recompiled.  Same error, but a couple lines
> down.  So I tracked back one more revision to 6081.  Downloaded, compiled,
> and voila ... it worked.
> 
> I won't begin to actually try to decipher the code and figure out the
> problem... I'll leave that to the experts.  But hopefully that can provide
> you guys with enough information to work out a bug.  :-)
> 
> Let me know if you have any questions or need anything else from me.

what does line 430 contain at your side? here its 
        for(i=0; i<512*16; i++){

which i doubt is the cause of a SIGFPE

and did you try a fresh checkout of ffmpeg 

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is




More information about the ffmpeg-devel mailing list