vigasin <[email protected]> added the comment:
The sample is compiled with the latest trunk revision (r26400).
(gdb) run
.....
got picture
got picture
Program received signal SIGSEGV, Segmentation fault.
0x00479fe0 in av_bswap32 (h=0xdb0050, h0=<value optimized out>)
at /home/ivan/sdk/ffmpeg/svn/libavutil/x86/bswap.h:42
42 /home/ivan/sdk/ffmpeg/svn/libavutil/x86/bswap.h: No such file or
directory.
in /home/ivan/sdk/ffmpeg/svn/libavutil/x86/bswap.h
(gdb) bt
#0 0x00479fe0 in av_bswap32 (h=0xdb0050, h0=<value optimized out>)
at /home/ivan/sdk/ffmpeg/svn/libavutil/x86/bswap.h:42
#1 get_bits (h=0xdb0050, h0=<value optimized out>)
at /home/ivan/sdk/ffmpeg/svn/libavcodec/get_bits.h:365
#2 decode_slice_header (h=0xdb0050, h0=<value optimized out>)
at /home/ivan/sdk/ffmpeg/svn/libavcodec/h264.c:1755
#3 0x004825ac in decode_nal_units (h=0xdb0050, buf=<value optimized
out>,
buf_size=<value optimized out>) at
/home/ivan/sdk/ffmpeg/svn/libavcodec/h264.c:2725
#4 0x00482d03 in decode_frame (avctx=0xee0fc0, data=0xee13b0,
data_size=0x22fed8, avpkt=0x22fd50)
at /home/ivan/sdk/ffmpeg/svn/libavcodec/h264.c:2887
#5 0x00403748 in avcodec_decode_video2 (avctx=0xee0fc0,
picture=0xee13b0,
got_picture_ptr=0x22fed8, buf=0xef0020 "", buf_size=75979)
at /home/ivan/sdk/ffmpeg/svn/libavcodec/utils.c:638
#6 avcodec_decode_video (avctx=0xee0fc0, picture=0xee13b0,
got_picture_ptr=0x22fed8,
buf=0xef0020 "", buf_size=75979) at
/home/ivan/sdk/ffmpeg/svn/libavcodec/utils.c:621
#7 0x00401588 in main (argc=1, argv=0xee0f90) at test.cpp:61
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0x479fc0 to 0x47a000:
0x00479fc0 <decode_slice_header+2208>: mov 0x283c(%ebp),%edx
0x00479fc6 <decode_slice_header+2214>: mov 0x2e08(%ebp),%edi
0x00479fcc <decode_slice_header+2220>: mov 0x2834(%ebp),%esi
0x00479fd2 <decode_slice_header+2226>: mov %edx,%eax
0x00479fd4 <decode_slice_header+2228>: mov %edx,%ecx
0x00479fd6 <decode_slice_header+2230>: mov %edi,%ebx
0x00479fd8 <decode_slice_header+2232>: and $0x7,%ecx
0x00479fdb <decode_slice_header+2235>: neg %ebx
0x00479fdd <decode_slice_header+2237>: shr $0x3,%eax
=> 0x00479fe0 <decode_slice_header+2240>: mov
(%esi,%eax,1),%eax
0x00479fe3 <decode_slice_header+2243>: lea
(%edi,%edx,1),%edx
0x00479fe6 <decode_slice_header+2246>: bswap %eax
0x00479fe8 <decode_slice_header+2248>: shl %cl,%eax
0x00479fea <decode_slice_header+2250>: mov %ebx,%ecx
0x00479fec <decode_slice_header+2252>: mov 0x84(%esp),%ebx
0x00479ff3 <decode_slice_header+2259>: mov 0x2e34(%ebp),%edi
0x00479ff9 <decode_slice_header+2265>: shr %cl,%eax
0x00479ffb <decode_slice_header+2267>: mov %edx,0x283c(%ebp)
End of assembler dump.
(gdb) info all-registers
eax 0x1 1
ecx 0x1 1
edx 0x9 9
ebx 0xfffffffc -4
esp 0x22fb30 0x22fb30
ebp 0xdb0050 0xdb0050
esi 0x112a4c0 17999040
edi 0x4 4
eip 0x479fe0 0x479fe0 <decode_slice_header+2240>
eflags 0x210212 [ AF IF RF ID ]
cs 0x1b 27
ss 0x23 35
ds 0x23 35
es 0x23 35
fs 0x3b 59
gs 0x0 0
st0 -nan(0x101010101010101) (raw 0xffff0101010101010101)
st1 -nan(0x101010101010101) (raw 0xffff0101010101010101)
st2 -nan(0x8181818181818181) (raw 0xffff8181818181818181)
st3 -nan(0x8181818181818181) (raw 0xffff8181818181818181)
st4 -nan(0x8181818181818181) (raw 0xffff8181818181818181)
st5 -nan(0x8181818181818181) (raw 0xffff8181818181818181)
st6 0 (raw 0x00000000000000000000)
st7 -inf (raw 0xffff0000000000000000)
fctrl 0x37f 895
fstat 0x4020 16416
ftag 0xffff 65535
fiseg 0x1b 27
fioff 0x58817e 5800318
foseg 0x23 35
fooff 0x22fd08 2293000
fop 0x77c 1916
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 =
{0x8000000000000000, 0x0},
v16_int8 = {0xfc, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfc, 0xff, 0xf6,
0xff, 0xfb, 0xff, 0xf6, 0xff,
0x1, 0x0}, v8_int16 = {0xfffc, 0xfffd, 0xfffd, 0xfffc, 0xfff6,
0xfffb, 0xfff6, 0x1},
v4_int32 = {0xfffdfffc, 0xfffcfffd, 0xfffbfff6, 0x1fff6}, v2_int64 =
{0xfffcfffdfffdfffc,
0x1fff6fffbfff6}, uint128 = 0x0001fff6fffbfff6fffcfffdfffdfffc}
xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double =
{0x8000000000000000, 0x0},
v16_int8 = {0xd1, 0xff, 0x6, 0x0, 0x6, 0x0, 0xd1, 0xff, 0xf6, 0xff,
0x5, 0x0, 0xc9, 0xff, 0x1,
0x0}, v8_int16 = {0xffd1, 0x6, 0x6, 0xffd1, 0xfff6, 0x5, 0xffc9,
0x1}, v4_int32 = {0x6ffd1,
0xffd10006, 0x5fff6, 0x1ffc9}, v2_int64 = {0xffd100060006ffd1,
0x1ffc90005fff6},
uint128 = 0x0001ffc90005fff6ffd100060006ffd1}
xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double =
{0x8000000000000000, 0x0},
v16_int8 = {0xe0, 0xff, 0x3, 0x0, 0x3, 0x0, 0xe0, 0xff, 0xf6, 0xff,
0x1, 0x0, 0xd8, 0xff, 0x1,
0x0}, v8_int16 = {0xffe0, 0x3, 0x3, 0xffe0, 0xfff6, 0x1, 0xffd8,
0x1}, v4_int32 = {0x3ffe0,
0xffe00003, 0x1fff6, 0x1ffd8}, v2_int64 = {0xffe000030003ffe0,
0x1ffd80001fff6},
uint128 = 0x0001ffd80001fff6ffe000030003ffe0}
xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xb, 0x0,
0xfa, 0xff, 0xfa, 0xff, 0xb, 0x0, 0xf6, 0xff, 0xf7, 0xff, 0x5, 0x0,
0x1, 0x0}, v8_int16 = {
0xb, 0xfffa, 0xfffa, 0xb, 0xfff6, 0xfff7, 0x5, 0x1}, v4_int32 =
{0xfffa000b, 0xbfffa,
0xfff7fff6, 0x10005}, v2_int64 = {0xbfffafffa000b, 0x10005fff7fff6},
uint128 = 0x00010005fff7fff6000bfffafffa000b}
xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xf, 0x46,
0x11, 0x9, 0x43, 0x81, 0x19, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0}, v8_int16 = {
0x460f, 0x911, 0x8143, 0x119, 0x0, 0x0, 0x0, 0x0}, v4_int32 =
{0x911460f, 0x1198143, 0x0,
0x0}, v2_int64 = {0x11981430911460f, 0x0}, uint128 =
0x0000000000000000011981430911460f}
xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x4, 0x0,
0x4, 0x0, 0x4, 0x0, 0x4, 0x0, 0x4, 0x0, 0x4, 0x0, 0x4, 0x0, 0x4,
0x0}, v8_int16 = {0x4, 0x4,
0x4, 0x4, 0x4, 0x4, 0x4, 0x4}, v4_int32 = {0x40004, 0x40004,
0x40004, 0x40004}, v2_int64 = {
0x4000400040004, 0x4000400040004}, uint128 =
0x00040004000400040004000400040004}
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 = 0x101010101010101, v2_int32 = {0x1010101,
0x1010101}, v4_int16 = {0x101,
0x101, 0x101, 0x101}, v8_int8 = {0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
0x1}}
mm1 {uint64 = 0x101010101010101, v2_int32 = {0x1010101,
0x1010101}, v4_int16 = {0x101,
0x101, 0x101, 0x101}, v8_int8 = {0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
0x1}}
mm2 {uint64 = 0x8181818181818181, v2_int32 = {0x81818181,
0x81818181}, v4_int16 = {
0x8181, 0x8181, 0x8181, 0x8181}, v8_int8 = {0x81, 0x81, 0x81, 0x81,
0x81, 0x81, 0x81, 0x81}}
mm3 {uint64 = 0x8181818181818181, v2_int32 = {0x81818181,
0x81818181}, v4_int16 = {
0x8181, 0x8181, 0x8181, 0x8181}, v8_int8 = {0x81, 0x81, 0x81, 0x81,
0x81, 0x81, 0x81, 0x81}}
mm4 {uint64 = 0x8181818181818181, v2_int32 = {0x81818181,
0x81818181}, v4_int16 = {
0x8181, 0x8181, 0x8181, 0x8181}, v8_int8 = {0x81, 0x81, 0x81, 0x81,
0x81, 0x81, 0x81, 0x81}}
mm5 {uint64 = 0x8181818181818181, v2_int32 = {0x81818181,
0x81818181}, v4_int16 = {
0x8181, 0x8181, 0x8181, 0x8181}, v8_int8 = {0x81, 0x81, 0x81, 0x81,
0x81, 0x81, 0x81, 0x81}}
mm6 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0,
0x0, 0x0, 0x0}, v8_int8 = {
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm7 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0,
0x0, 0x0, 0x0}, v8_int8 = {
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
(gdb)
There is no problem on linux, only on win32.
________________________________________________
FFmpeg issue tracker <[email protected]>
<https://roundup.ffmpeg.org/issue2393>
________________________________________________