[FFmpeg-devel] MMX function crash with icc -fp-stack-check

Yves Lefebvre yves.lefebvre
Tue Mar 24 15:03:24 CET 2009


Hi,
>
> We would need the correct svn revision, ie not custom.
>
> Thanks.
>
>   
Yesterday trace where done with a fresh git clone. I just retry with 
today svn snapshot :

Starting program: /home/yves/ffmpeg-export-2009-03-24/ffmpeg_g -i 
test.avi -vcodec rawvideo -an -deinterlace out2.avi
FFmpeg version SVN-r18177-snapshot, Copyright (c) 2000-2009 Fabrice 
Bellard, et al.
  configuration: --prefix=/home/yves/ffmpeg-export-2009-03-24/install 
--cc=icc -fp-stack-check
  libavutil     50. 2. 0 / 50. 2. 0
  libavcodec    52.22. 3 / 52.22. 3
  libavformat   52.32. 0 / 52.32. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libswscale     0. 7. 1 /  0. 7. 1
  built on Mar 24 2009 09:09:24, gcc: Intel(R) C++ gcc 4.2 mode
Input #0, avi, from 'test.avi':
  Duration: 00:00:00.66, start: 0.000000, bitrate: 9133 kb/s
    Stream #0.0: Video: rawvideo, yuv420p, 176x144, 30 tbr, 30 tbn, 30 tbc
Output #0, avi, to 'out2.avi':
    Stream #0.0: Video: rawvideo, yuv420p, 176x144, q=2-31, 200 kb/s, 30 
tbn, 30 tbc
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding

Program received signal SIGSEGV, Segmentation fault.
0x0000000000555d3e in avpicture_deinterlace (dst=0x3a613b0, 
src=0x3a57f20, pix_fmt=61177808, width=61177632, height=176)
    at libavcodec/imgconvert.c:1578
1578                deinterlace_bottom_field(dst->data[i],dst->linesize[i],
(gdb)
(gdb) bt
#0  0x0000000000555d3e in avpicture_deinterlace (dst=0x1871a3b0, 
src=0x18710f20, pix_fmt=410062800, width=410062624,
    height=176) at libavcodec/imgconvert.c:1578
#1  0x0000000000000000 in ?? ()
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x555d1e to 0x555d5e:
0x0000000000555d1e <avpicture_deinterlace+302>:    callq  0xbba2bc 
<_intel_fast_memcpy>
0x0000000000555d23 <avpicture_deinterlace+307>:    fldz  
0x0000000000555d25 <avpicture_deinterlace+309>:    fldz  
0x0000000000555d27 <avpicture_deinterlace+311>:    fldz  
0x0000000000555d29 <avpicture_deinterlace+313>:    fldz  
0x0000000000555d2b <avpicture_deinterlace+315>:    fldz  
0x0000000000555d2d <avpicture_deinterlace+317>:    fldz  
0x0000000000555d2f <avpicture_deinterlace+319>:    fldz  
0x0000000000555d31 <avpicture_deinterlace+321>:    fldz  
0x0000000000555d33 <avpicture_deinterlace+323>:    push   %rax
0x0000000000555d34 <avpicture_deinterlace+324>:    fnstsw %ax
0x0000000000555d36 <avpicture_deinterlace+326>:    test   $0x40,%ax
0x0000000000555d3a <avpicture_deinterlace+330>:    je     0x555d41 
<avpicture_deinterlace+337>
0x0000000000555d3c <avpicture_deinterlace+332>:    xor    %eax,%eax
0x0000000000555d3e <avpicture_deinterlace+334>:    addr32 mov %eax,(%eax)
0x0000000000555d41 <avpicture_deinterlace+337>:    pop    %rax
0x0000000000555d42 <avpicture_deinterlace+338>:    fstp   %st(0)
0x0000000000555d44 <avpicture_deinterlace+340>:    fstp   %st(0)
0x0000000000555d46 <avpicture_deinterlace+342>:    fstp   %st(0)
0x0000000000555d48 <avpicture_deinterlace+344>:    fstp   %st(0)
0x0000000000555d4a <avpicture_deinterlace+346>:    fstp   %st(0)
0x0000000000555d4c <avpicture_deinterlace+348>:    fstp   %st(0)
0x0000000000555d4e <avpicture_deinterlace+350>:    fstp   %st(0)
0x0000000000555d50 <avpicture_deinterlace+352>:    fstp   %st(0)
0x0000000000555d52 <avpicture_deinterlace+354>:    add    0xa8(%rsp),%rbx
0x0000000000555d5a <avpicture_deinterlace+362>:    mov    0x90(%rsp),%esi
End of assembler dump.
(gdb) info all-registers
rax            0x0    0
rbx            0x1871a3b0    410100656
rcx            0x18710f20    410062624
rdx            0x18710fd0    410062800
rsi            0x18710f20    410062624
rdi            0x1871a3b0    410100656
rbp            0x2    0x2
rsp            0x7fffacaa7028    0x7fffacaa7028
r8             0xb0    176
r9             0x1d1d1d1d1d1d1d1d    2097865012304223517
r10            0x1d1d1d1d1d1d1d1d    2097865012304223517
r11            0xffffffffffffffff    -1
r12            0x18711130    410063152
r13            0x18710f20    410062624
r14            0x18711080    410062976
r15            0x18710fd0    410062800
rip            0x555d3e    0x555d3e <avpicture_deinterlace+334>
eflags         0x10246    [ PF ZF IF RF ]
cs             0x33    51
ss             0x2b    43
ds             0x0    0
es             0x0    0
fs             0x0    0
gs             0x0    0
st0            -nan(0xc000000000000000)    (raw 0xffffc000000000000000)
st1            -nan(0xc000000000000000)    (raw 0xffffc000000000000000)
st2            -nan(0xc000000000000000)    (raw 0xffffc000000000000000)
st3            -nan(0xc000000000000000)    (raw 0xffffc000000000000000)
st4            -nan(0xc000000000000000)    (raw 0xffffc000000000000000)
st5            -nan(0xc000000000000000)    (raw 0xffffc000000000000000)
st6            -nan(0xc000000000000000)    (raw 0xffffc000000000000000)
st7            -nan(0xc000000000000000)    (raw 0xffffc000000000000000)
fctrl          0x37f    895
fstat          0x241    577
ftag           0xaaaa    43690
fiseg          0x0    0
fioff          0x555d31    5594417
foseg          0x0    0
fooff          0x0    0
fop            0x1ee    494
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}
---Type <return> to continue, or q <return> to quit---
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, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
    0xa1, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = 
{0x1111, 0x1111, 0x1111, 0x3fa1, 0x0, 0x0, 0x0, 0x0},
  v4_int32 = {0x11111111, 0x3fa11111, 0x0, 0x0}, v2_int64 = 
{0x3fa1111111111111, 0x0},
  uint128 = 0x00000000000000003fa1111111111111}
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 = {0x7b1b8000, 0x0, 0x7b1b8000, 0x0}, v2_double 
= {0x0, 0x0}, v16_int8 = {0x37, 0xf6, 0xe0, 0x52,
    0x64, 0x27, 0xcf, 0xbe, 0x37, 0xf6, 0xe0, 0x52, 0x64, 0x27, 0xcf, 
0xbe}, v8_int16 = {0xf637, 0x52e0, 0x2764, 0xbecf,
    0xf637, 0x52e0, 0x2764, 0xbecf}, v4_int32 = {0x52e0f637, 0xbecf2764, 
0x52e0f637, 0xbecf2764}, v2_int64 = {
    0xbecf276452e0f637, 0xbecf276452e0f637}, uint128 = 
0xbecf276452e0f637becf276452e0f637}
xmm6           {v4_float = {0x0, 0x0, 0x31540000, 0xfffffffd}, v2_double 
= {0x0, 0xffffffffffffffd2}, v16_int8 = {0x0, 0x80,
    0x52, 0x2, 0x55, 0x4e, 0x66, 0x3f, 0xb0, 0x3a, 0x27, 0xd2, 0x44, 
0x6, 0x47, 0xc0}, v8_int16 = {0x8000, 0x252, 0x4e55,
    0x3f66, 0x3ab0, 0xd227, 0x644, 0xc047}, v4_int32 = {0x2528000, 
0x3f664e55, 0xd2273ab0, 0xc0470644}, v2_int64 = {
    0x3f664e5502528000, 0xc0470644d2273ab0}, uint128 = 
0xc0470644d2273ab03f664e5502528000}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0x33, 0x46, 0x89, 0x8c, 0xc6, 0x4a,
    0x90, 0xbd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = 
{0x4633, 0x8c89, 0x4ac6, 0xbd90, 0x0, 0x0, 0x0, 0x0},
  v4_int32 = {0x8c894633, 0xbd904ac6, 0x0, 0x0}, v2_int64 = 
{0xbd904ac68c894633, 0x0},
  uint128 = 0x0000000000000000bd904ac68c894633}
xmm8           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {
---Type <return> to continue, or q <return> to quit---
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 
0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm9           {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}
xmm10          {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}
xmm11          {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}
xmm12          {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}
xmm13          {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}
xmm14          {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}
xmm15          {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}
---Type <return> to continue, or q <return> to quit---
mxcsr          0x9fe0    [ PE DAZ IM DM ZM OM UM PM FZ ]
(gdb)


All of the previous post still apply. I also try different input media 
(h263, mpeg) and they are crashing at other place once I bypass the MMX 
code of imgconvert.c in deinterlace_line function. If I reconfigure with 
--disable-mmx, all of those case pass on a 64 bits Xeon.

Regards,
Yves



More information about the ffmpeg-devel mailing list