[Ffmpeg-devel] [BUG] floating point exception during mpeg2video encoding

Baptiste Coudurier baptiste.coudurier
Tue Oct 31 17:59:25 CET 2006


Hi

$subject

(gdb) run -y -i test_sequence_720x480_29.97fps_RGB24.avi -flags2 +ivlc
-flags +alt+mv0+trell+cbp -b 15000k -minrate 15000k -bufsize 3000k
-maxrate 15000k -dc 10 -bt 1 -lmax '340*QP2LAMBDA' -sc_threshold
100000000 -rc_buf_aggressivity 0.25 -qmin 1 -bf 2 -mbd rd -pix_fmt
yuv422p -f vob test_motion_est.mpg
Starting program: /usr/local/src/ffmpeg/dev/ffmpeg_g -y -i
test_sequence_720x480_29.97fps_RGB24.avi -flags2 +ivlc -flags
+alt+mv0+trell+cbp -b 15000k -minrate 15000k -bufsize 3000k -maxrate
15000k -dc 10 -bt 1 -lmax '340*QP2LAMBDA' -sc_threshold 100000000
-rc_buf_aggressivity 0.25 -qmin 1 -bf 2 -mbd rd -pix_fmt yuv422p -f vob
test_motion_est.mpg
Failed to read a valid object file image from memory.
[Thread debugging using libthread_db enabled]
[New Thread -1212713280 (LWP 26318)]
FFmpeg version SVN-r6849, Copyright (c) 2000-2006 Fabrice Bellard, et al.
  configuration:  --enable-gpl --enable-faac --enable-dts --enable-a52
--enable-x264 --enable-faad --enable-static --enable-mp3lame
--enable-pthreads --enable-xvid --enable-pp --enable-amr_nb --enable-amr_wb
  libavutil version: 49.0.2
  libavcodec version: 51.23.0
  libavformat version: 50.6.0
  built on Oct 31 2006 16:02:36, gcc: 4.1.2 20061028 (prerelease)
(Debian 4.1.1-19)
Input #0, avi, from 'test_sequence_720x480_29.97fps_RGB24.avi':
  Duration: 00:00:08.6, start: 0.000000, bitrate: 249573 kb/s
  Stream #0.0: Video: rawvideo, bgr24, 720x480, 29.97 fps(r)
Output #0, vob, to 'test_motion_est.mpg':
  Stream #0.0: Video: mpeg2video (hq), yuv422p, 720x480, q=1-31, 15000
kb/s, 29.97 fps(c)
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding

Program received signal SIGFPE, Arithmetic exception.
[Switching to Thread -1212713280 (LWP 26318)]
0x081f66c5 in ff_set_mpeg4_time (s=0x868c670, picture_number=1) at
h263.c:564
564             s->direct_scale_mv[0][i] =
(i-tab_bias)*s->pb_time/s->pp_time;
(gdb) print s->pp_time
$1 = 0

Indeed.

(gdb) bt
#0  0x081f66c5 in ff_set_mpeg4_time (s=0x868c670, picture_number=1) at
h263.c:564
#1  0x080db03d in encode_picture (s=0x868c670, picture_number=1) at
mpegvideo.c:5547
#2  0x080dcebe in MPV_encode_picture (avctx=0x8682ea0, buf=0xb787e020
"", buf_size=1382400, data=0xbfa50174) at mpegvideo.c:2517
#3  0x080ca9e3 in avcodec_encode_video (avctx=0x8682ea0, buf=0xb787e020
"", buf_size=1382400, pict=0xbfa50174) at utils.c:866
#4  0x080658c4 in output_packet (ist=0x868c330, ist_index=0,
ost_table=0x868c380, nb_ostreams=1, pkt=0xbfa50bf8) at ffmpeg.c:845
#5  0x080688c5 in main (argc=Cannot access memory at address 0xffe1f26e
) at ffmpeg.c:1999
(gdb)   disass $pc-32 $pc+32
Dump of assembler code from 0x81f66a5 to 0x81f66e5:
0x081f66a5 <ff_set_mpeg4_time+213>:     add    $0xf705e1c1,%eax
0x081f66aa <ff_set_mpeg4_time+218>:     fisttpl 0xf7182444(%ecx)
0x081f66b0 <ff_set_mpeg4_time+224>:     fldpi
0x081f66b2 <ff_set_mpeg4_time+226>:     or     $0x90909090,%eax
0x081f66b7 <ff_set_mpeg4_time+231>:     nop
0x081f66b8 <ff_set_mpeg4_time+232>:     nop
0x081f66b9 <ff_set_mpeg4_time+233>:     nop
0x081f66ba <ff_set_mpeg4_time+234>:     nop
0x081f66bb <ff_set_mpeg4_time+235>:     nop
0x081f66bc <ff_set_mpeg4_time+236>:     nop
0x081f66bd <ff_set_mpeg4_time+237>:     nop
0x081f66be <ff_set_mpeg4_time+238>:     nop
0x081f66bf <ff_set_mpeg4_time+239>:     nop
0x081f66c0 <ff_set_mpeg4_time+240>:     mov    %ecx,%eax
0x081f66c2 <ff_set_mpeg4_time+242>:     add    %ebp,%ecx
0x081f66c4 <ff_set_mpeg4_time+244>:     cltd
0x081f66c5 <ff_set_mpeg4_time+245>:     idiv   %esi
0x081f66c7 <ff_set_mpeg4_time+247>:     mov    0x30(%esp),%edx
0x081f66cb <ff_set_mpeg4_time+251>:     mov    %ax,0x15c8(%edx,%edi,2)
0x081f66d3 <ff_set_mpeg4_time+259>:     mov    %ebx,%eax
0x081f66d5 <ff_set_mpeg4_time+261>:     cltd
0x081f66d6 <ff_set_mpeg4_time+262>:     idiv   %esi
0x081f66d8 <ff_set_mpeg4_time+264>:     mov    0x30(%esp),%edx
0x081f66dc <ff_set_mpeg4_time+268>:     mov    %eax,0x14(%esp)
0x081f66e0 <ff_set_mpeg4_time+272>:     mov    %ax,0x1648(%edx,%edi,2)
End of assembler dump.
(gdb)   info all-registers
eax            0xffe0fa40       -2033088
ecx            0xffe1f26e       -1969554
edx            0xffffffff       -1
ebx            0xffe0fa40       -2033088
esp            0xbfa4eed0       0xbfa4eed0
ebp            0xf82e   0xf82e
esi            0x0      0
edi            0xffffffe0       -32
eip            0x81f66c5        0x81f66c5 <ff_set_mpeg4_time+245>
eflags         0x10282  [ SF IF RF ]
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51
st0            <invalid float value>    (raw 0xffff0000000000000000)
st1            -nan(0x160800002e88)     (raw 0xffff0000160800002e88)
st2            -nan(0x13900000188)      (raw 0xffff0000013900000188)
st3            30000    (raw 0x400dea60000000000000)
st4            1.000000000000000015902891109759918e+100 (raw
0x414b924d692ca61be800)
st5            30000    (raw 0x400dea60000000000000)
st6            9.9900099900097731608905604616666096e-06 (raw
0x3feea79ac42546f80000)
st7            0        (raw 0x00000000000000000000)
fctrl          0x37f    895
fstat          0x121    289
ftag           0xffff   65535
fiseg          0x73     115
fioff          0x8065862        134633570
foseg          0x7b     123
fooff          0xbfa501bc       -1079705156
fop            0x1c9    457
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0},
v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0},
v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0},
v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0},
v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0},
v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0},
v2_int64 = {0x0, 0x0},
---Type <return> to continue, or q <return> to quit---
  uint128 = 0x00000000000000000000000000000000}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0},
v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0},
v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
mxcsr          0x1f80   [ IM DM ZM OM UM PM ]
mm0            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0,
0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0}}
mm1            {uint64 = 0x160800002e88, v2_int32 = {0x2e88, 0x1608},
v4_int16 = {0x2e88, 0x0, 0x1608, 0x0}, v8_int8 = {0x88,
    0x2e, 0x0, 0x0, 0x8, 0x16, 0x0, 0x0}}
mm2            {uint64 = 0x13900000188, v2_int32 = {0x188, 0x139},
v4_int16 = {0x188, 0x0, 0x139, 0x0}, v8_int8 = {0x88, 0x1, 0x0,
    0x0, 0x39, 0x1, 0x0, 0x0}}
mm3            {uint64 = 0xea60000000000000, v2_int32 = {0x0,
0xea600000}, v4_int16 = {0x0, 0x0, 0x0, 0xea60}, v8_int8 = {0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0xea}}
mm4            {uint64 = 0x924d692ca61be800, v2_int32 = {0xa61be800,
0x924d692c}, v4_int16 = {0xe800, 0xa61b, 0x692c, 0x924d},
  v8_int8 = {0x0, 0xe8, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92}}
mm5            {uint64 = 0xea60000000000000, v2_int32 = {0x0,
0xea600000}, v4_int16 = {0x0, 0x0, 0x0, 0xea60}, v8_int8 = {0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0xea}}
mm6            {uint64 = 0xa79ac42546f80000, v2_int32 = {0x46f80000,
0xa79ac425}, v4_int16 = {0x0, 0x46f8, 0xc425, 0xa79a},
  v8_int8 = {0x0, 0x0, 0xf8, 0x46, 0x25, 0xc4, 0x9a, 0xa7}}
mm7            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0,
0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0}}

I uploaded the sample to samples.mplayerhq.hu
test_sequence_720x480_29.97fps_RGB24.avi

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
SMARTJOG S.A.                                    http://www.smartjog.com
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
Phone: +33 1 49966312




More information about the ffmpeg-devel mailing list