[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