[Ffmpeg-devel] SIGFPE Arithmetic exception in h263.c
Dario Andrade
dario
Fri Jul 29 23:30:56 CEST 2005
Another fatal error has occurred (which seems that the bitstream is
corrupted in anyhow), but now in h263.c (read previous post on SIGSEGV in
h264.c).
Program received signal SIGFPE, Arithmetic exception.
[Switching to thread 1292.0x220]
0x656ec78d in __udivmoddi4 ()
(gdb) bt
#0 0x656ec78d in __udivmoddi4 ()
#1 0x656ec678 in __divdi3 ()
#2 0x6556c83b in decode_vop_header (s=0x3d209d0, gb=0x3d22544) at
h263.c:5854
#3 0x65554c99 in ff_h263_decode_frame (avctx=0xe74680, data=0x4e1fd70,
data_size=0x4e1fd6c, buf=0x625fdd0 "", buf_size=16906) at h263dec.c:493
#4 0x6548380a in avcodec_decode_video (avctx=0xe74680, picture=0x4e1fd70,
got_picture_ptr=0x4e1fd6c, buf=0x625fdd0 "", buf_size=16906) at
utils.c:747
#5 0x0061042f in ?? ()
#6 0x00660378 in ?? ()
#7 0x00661146 in ?? ()
#8 0x0065a885 in ?? ()
#9 0x00626e76 in ?? ()
#10 0x00626b3c in ?? ()
#11 0x7c80b50b in $R000000 ()
(gdb) list h263.c:5854
5849 s->pb_field_time= ( ROUNDED_DIV(s->time, s->t_frame)
5850 - ROUNDED_DIV(s->last_non_b_time -
s->pp_time, s->t_frame))*2;
5851 }
5852 //av_log(s->avctx, AV_LOG_DEBUG, "last nonb %Ld last_base %d time
%Ld pp %d pb %d t %d ppf %d pbf %d\n", s->last_non_b_time, s->last_time_base
, s->time, s->pp_time, s->pb_time, s->t_frame, s->pp_field_time,
s->pb_field_time);
5853
5854 s->current_picture_ptr->pts= (s->time +
s->avctx->time_base.num/2) / s->avctx->time_base.num;
5855 if(s->avctx->debug&FF_DEBUG_PTS)
5856 av_log(s->avctx, AV_LOG_DEBUG, "MPEG4 PTS: %Ld\n",
s->current_picture_ptr->pts);
5857
5858 check_marker(gb, "before vop_coded");
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x656ec76d to 0x656ec7ad:
0x656ec76d <__udivmoddi4+125>: rorb 0x4589e875(%ecx)
0x656ec773 <__udivmoddi4+131>: in (%dx),%al
0x656ec774 <__udivmoddi4+132>: mov 0xffffffec(%ebp),%edx
0x656ec777 <__udivmoddi4+135>: mov 0xffffffe8(%ebp),%eax
0x656ec77a <__udivmoddi4+138>: add $0x2c,%esp
0x656ec77d <__udivmoddi4+141>: pop %ebx
0x656ec77e <__udivmoddi4+142>: pop %esi
0x656ec77f <__udivmoddi4+143>: pop %edi
0x656ec780 <__udivmoddi4+144>: pop %ebp
0x656ec781 <__udivmoddi4+145>: ret
0x656ec782 <__udivmoddi4+146>: test %eax,%eax
0x656ec784 <__udivmoddi4+148>: jne 0x656ec791 <__udivmoddi4+161>
0x656ec786 <__udivmoddi4+150>: mov $0x1,%eax
0x656ec78b <__udivmoddi4+155>: xor %edx,%edx
0x656ec78d <__udivmoddi4+157>: div %esi
0x656ec78f <__udivmoddi4+159>: mov %eax,%esi
0x656ec791 <__udivmoddi4+161>: mov %edi,%eax
0x656ec793 <__udivmoddi4+163>: mov 0xffffffdc(%ebp),%edx
0x656ec796 <__udivmoddi4+166>: div %esi
0x656ec798 <__udivmoddi4+168>: mov %eax,0xffffffd0(%ebp)
0x656ec79b <__udivmoddi4+171>: mov 0xffffffd8(%ebp),%eax
0x656ec79e <__udivmoddi4+174>: div %esi
---Type <return> to continue, or q <return> to quit---
0x656ec7a0 <__udivmoddi4+176>: mov %edx,0xffffffd8(%ebp)
0x656ec7a3 <__udivmoddi4+179>: mov %eax,0xffffffd4(%ebp)
0x656ec7a6 <__udivmoddi4+182>: jmp 0x656ec746 <__udivmoddi4+86>
0x656ec7a8 <__udivmoddi4+184>: cmp %ebx,0xffffffdc(%ebp)
0x656ec7ab <__udivmoddi4+187>: jbe 0x656ec7d0 <__udivmoddi4+224>
End of assembler dump.
(gdb) info all-registers
eax 0x1 1
ecx 0x9 9
edx 0x0 0
ebx 0x0 0
esp 0x4e1f96c 0x4e1f96c
ebp 0x4e1f9a4 0x4e1f9a4
esi 0x0 0
edi 0x0 0
eip 0x656ec78d 0x656ec78d
eflags 0x10246 66118
cs 0x1b 27
ss 0x23 35
ds 0x23 35
es 0x23 35
fs 0x3b 59
gs 0x0 0
st0 -nan(0x8061816380667e65) (raw 0xffff8061816380667e65)
st1 -nan(0x0817e7f81) (raw 0xffff00000000817e7f81)
st2 -nan(0x080808080) (raw 0xffff0000000080808080)
st3 -nan(0x08081807e) (raw 0xffff000000008081807e)
st4 -nan(0x80647f6480648164) (raw 0xffff80647f6480648164)
st5 -nan(0x810080007e007d) (raw 0xffff00810080007e007d)
st6 -nan(0x7e007e007e007e) (raw 0xffff007e007e007e007e)
---Type <return> to continue, or q <return> to quit---
st7 1 (raw 0x3fff8000000000000000)
fctrl 0xffff027f -64897
fstat 0xffff0000 -65536
ftag 0xffffffff -1
fiseg 0x1b 27
fioff 0x7483216f 1954750831
foseg 0xffff0023 -65501
fooff 0x3d25c20 64117792
fop 0x4cc 1228
(gdb) info frame
Stack level 0, frame at 0x4e1f9a4:
eip = 0x656ec78d in __udivmoddi4; saved eip 0x656ec678
called by frame at 0x4e1fa04
Arglist at 0x4e1f9a4, args:
Locals at 0x4e1f9a4, Previous frame's sp is 0x0
Saved registers:
ebx at 0x4e1f998, ebp at 0x4e1f9a4, esi at 0x4e1f99c, edi at 0x4e1f9a0,
eip at 0x4e1f9a8
Is there any hint for me to find out what could be going on?
i.e. corrupted packet, packet loss, missing vopheader, anythiing! ;-)
Thanks a lot again,
Dario Andrade
Executive Director
DATSCOM
Mobile +55.21.9453.5005
Office +55.21.2141.9525
More information about the ffmpeg-devel
mailing list