[FFmpeg-trac] #588(avcodec:open): FFmpeg crashes when transcoding a wmv video on windows 7 (64 bit) machine
FFmpeg
trac at avcodec.org
Sun Oct 30 17:53:21 CET 2011
#588: FFmpeg crashes when transcoding a wmv video on windows 7 (64 bit) machine
-------------------------------------+-----------------------------------
Reporter: eiljoe | Owner: michael
Type: defect | Status: open
Priority: important | Component: avcodec
Version: unspecified | Resolution:
Keywords: win64 | Blocked By:
Blocking: | Reproduced by developer: 1
Analyzed by developer: 0 |
-------------------------------------+-----------------------------------
Comment (by cehoyos):
--enable-memalign-hack does not help:
{{{
(gdb) break ff_imdct_half_sse
Breakpoint 1 at 0x9d7560
(gdb) break ff_imdct_half_sse.pre
Breakpoint 2 at 0x9d75a2
(gdb) r -i ffmpeg-crash-around-frame-60.wmv -vn -f null -
ffmpeg version N-34276-g02fa529, Copyright (c) 2000-2011 the FFmpeg
developers
built on Oct 30 2011 17:33:40 with gcc 4.7.0 20110827 (experimental)
configuration: --enable-memalign-hack
libavutil 51. 22. 0 / 51. 22. 0
libavcodec 53. 25. 0 / 53. 25. 0
libavformat 53. 18. 0 / 53. 18. 0
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 45. 1 / 2. 45. 1
libswscale 2. 1. 0 / 2. 1. 0
[wmav2 @ 0000000005B15BC0] Warning: not compiled with thread support,
using thread emulation
[wmv2 @ 0000000005B16580] Warning: not compiled with thread support, using
thread emulation
[asf @ 000000000032BAE0] parser not found for codec wmav2, packets or
times may be invalid.
Seems stream 1 codec frame rate differs from container frame rate: 1000.00
(1000/1) -> 25.00 (25/1)
Input #0, asf, from 'ffmpeg-crash-around-frame-60.wmv':
Metadata:
WMFSDKVersion : 11.0.5721.5245
WMFSDKNeeded : 0.0.0.0000
IsVBR : 1
VBR Peak : 8464 ¡║¯½½½½½½½½½½½½½½½½■¯■¯■¯■
Buffer Average : 8514 ¡║¯½½½½½½½½½½½½½½½½■¯■¯■¯■
Encoded_By : Sorenson Squeeze
Encoded_With : Sorenson Squeeze
Duration: 00:01:20.02, start: 0.000000, bitrate: 153 kb/s
Stream #0:0: Audio: wmav2 (a[1][0][0] / 0x0161), 48000 Hz, 2 channels,
s16, 128 kb/s
Stream #0:1: Video: wmv2 (WMV2 / 0x32564D57), yuv420p, 1280x720, 18000
kb/s, 25 tbr, 1k tbn, 1k tbc
[pcm_s16le @ 0000000005B74400] Warning: not compiled with thread support,
using thread emulation
[wmav2 @ 0000000005B15BC0] Warning: not compiled with thread support,
using thread emulation
Output #0, null, to 'pipe:':
Metadata:
WMFSDKVersion : 11.0.5721.5245
WMFSDKNeeded : 0.0.0.0000
IsVBR : 1
VBR Peak : 8464 ¡║¯½½½½½½½½½½½½½½½½■¯■¯■¯■
Buffer Average : 8514 ¡║¯½½½½½½½½½½½½½½½½■¯■¯■¯■
Encoded_By : Sorenson Squeeze
Encoded_With : Sorenson Squeeze
encoder : Lavf53.18.0
Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Stream mapping:
Stream #0.0 -> #0.0 (wmav2 -> pcm_s16le)
Press [q] to stop, [?] for help
Breakpoint 1, 0x00000000009d7560 in ff_imdct_half_sse ()
(gdb) bt
#0 0x00000000009d7560 in ff_imdct_half_sse ()
#1 0x00000000009d4779 in ff_imdct_calc_sse (s=<optimized out>,
output=0x5b51a3c, input=<optimized out>) at
libavcodec/x86/fft_sse.c:89
#2 0x00000000007464d5 in wma_decode_block (s=0x5b45560)
at libavcodec/wmadec.c:756
#3 0x0000000000000000 in ?? ()
(gdb) disass $pc,$pc+128
Dump of assembler code from 0x9d7560 to 0x9d75e0:
=> 0x00000000009d7560 <ff_imdct_half_sse+0>: push %rdi
0x00000000009d7561 <ff_imdct_half_sse+1>: push %rsi
0x00000000009d7562 <ff_imdct_half_sse+2>: sub $0x30,%rsp
0x00000000009d7566 <ff_imdct_half_sse+6>: movaps %xmm7,0x18(%rsp)
0x00000000009d756b <ff_imdct_half_sse+11>: movaps %xmm6,0x8(%rsp)
0x00000000009d7570 <ff_imdct_half_sse+16>: push %r12
0x00000000009d7572 <ff_imdct_half_sse+18>: push %r13
0x00000000009d7574 <ff_imdct_half_sse+20>: push %r14
0x00000000009d7576 <ff_imdct_half_sse+22>: mov 0x18(%rcx),%r9d
0x00000000009d757a <ff_imdct_half_sse+26>: add %r9,%r8
0x00000000009d757d <ff_imdct_half_sse+29>: shr %r9
0x00000000009d7580 <ff_imdct_half_sse+32>: mov 0x20(%rcx),%r11
0x00000000009d7584 <ff_imdct_half_sse+36>: mov 0x28(%rcx),%r12
0x00000000009d7588 <ff_imdct_half_sse+40>: add %r9,%r11
0x00000000009d758b <ff_imdct_half_sse+43>: add %r9,%r12
0x00000000009d758e <ff_imdct_half_sse+46>: shr %r9
0x00000000009d7591 <ff_imdct_half_sse+49>: mov 0x8(%rcx),%r10
0x00000000009d7595 <ff_imdct_half_sse+53>: add %r9,%r10
0x00000000009d7598 <ff_imdct_half_sse+56>: sub $0x4,%r9
0x00000000009d759c <ff_imdct_half_sse+60>: xor %rdi,%rdi
0x00000000009d759f <ff_imdct_half_sse+63>: sub %r9,%rdi
0x00000000009d75a2 <ff_imdct_half_sse.pre+0>: movaps
(%r8,%r9,4),%xmm0
0x00000000009d75a7 <ff_imdct_half_sse.pre+5>: movaps
-0x10(%r8,%rdi,4),%xmm1
0x00000000009d75ad <ff_imdct_half_sse.pre+11>: movaps %xmm0,%xmm2
0x00000000009d75b0 <ff_imdct_half_sse.pre+14>: shufps
$0x88,%xmm1,%xmm0
0x00000000009d75b4 <ff_imdct_half_sse.pre+18>: shufps
$0x77,%xmm2,%xmm1
0x00000000009d75b8 <ff_imdct_half_sse.pre+22>: movlps
(%r11,%r9,2),%xmm4
0x00000000009d75bd <ff_imdct_half_sse.pre+27>: movlps
(%r12,%r9,2),%xmm5
0x00000000009d75c2 <ff_imdct_half_sse.pre+32>: movhps
-0x8(%r11,%rdi,2),%xmm4
0x00000000009d75c8 <ff_imdct_half_sse.pre+38>: movhps
-0x8(%r12,%rdi,2),%xmm5
0x00000000009d75ce <ff_imdct_half_sse.pre+44>: movaps %xmm0,%xmm2
0x00000000009d75d1 <ff_imdct_half_sse.pre+47>: movaps %xmm1,%xmm3
0x00000000009d75d4 <ff_imdct_half_sse.pre+50>: mulps %xmm5,%xmm0
0x00000000009d75d7 <ff_imdct_half_sse.pre+53>: mulps %xmm4,%xmm1
0x00000000009d75da <ff_imdct_half_sse.pre+56>: mulps %xmm4,%xmm2
0x00000000009d75dd <ff_imdct_half_sse.pre+59>: mulps %xmm5,%xmm3
End of assembler dump.
(gdb) info registers
rax 0x3e95a40 65624640
rbx 0x3e92a3c 65612348
rcx 0x3e95a40 65624640
rdx 0x3e92a3c 65612348
rsi 0x400 1024
rdi 0x1000 4096
rbp 0x3e91a3c 0x3e91a3c
rsp 0x22dd68 0x22dd68
r8 0x3e8da3c 65591868
r9 0x38d780 3725184
r10 0x800 2048
r11 0x4 4
r12 0x0 0
r13 0x0 0
r14 0x29 41
r15 0x3e85560 65557856
rip 0x9d7560 0x9d7560 <ff_imdct_half_sse>
eflags 0x206 [ PF IF ]
cs 0x33 51
ss 0x206002b 33947691
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x2b0000 2818048
(gdb) s
Single stepping until exit from function ff_imdct_half_sse,
which has no line number information.
Breakpoint 2, 0x00000000009d75a2 in ff_imdct_half_sse.pre ()
(gdb) bt
#0 0x00000000009d75a2 in ff_imdct_half_sse.pre ()
#1 0x0000000000000029 in ?? ()
#2 0x0000000000000000 in ?? ()
(gdb) info registers
rax 0x3e95a40 65624640
rbx 0x3e92a3c 65612348
rcx 0x3e95a40 65624640
rdx 0x3e92a3c 65612348
rsi 0x400 1024
rdi 0xfffffffffffffc04 -1020
rbp 0x3e91a3c 0x3e91a3c
rsp 0x22dd10 0x22dd10
r8 0x3e8ea3c 65595964
r9 0x3fc 1020
r10 0x38e660 3728992
r11 0x3efaca0 66038944
r12 0x3efbca0 66043040
r13 0x0 0
r14 0x29 41
r15 0x3e85560 65557856
rip 0x9d75a2 0x9d75a2 <ff_imdct_half_sse.pre>
eflags 0x293 [ CF AF SF IF ]
cs 0x33 51
ss 0x293002b 43188267
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x2b0000 2818048
xmm0 = 0
(gdb) s
Single stepping until exit from function ff_imdct_half_sse.pre,
which has no line number information.
Program received signal SIGSEGV, Segmentation fault.
0x00000000009d75a2 in ff_imdct_half_sse.pre ()
(gdb) bt
#0 0x00000000009d75a2 in ff_imdct_half_sse.pre ()
#1 0x0000000000000029 in ?? ()
#2 0x0000000000000000 in ?? ()
}}}
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/588#comment:3>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list