[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