[FFmpeg-trac] #2896(avfilter:new): Using video filters "fieldmatch" and "yadif" together causes crash
FFmpeg
trac at avcodec.org
Sun Sep 1 07:23:06 CEST 2013
#2896: Using video filters "fieldmatch" and "yadif" together causes crash
-------------------------------------+-------------------------------------
Reporter: Mornix | Owner:
Type: defect | Status: new
Priority: important | Component: avfilter
Version: git-master | Resolution:
Keywords: yadif crash | Blocked By:
SIGSEGV | Reproduced by developer: 0
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Comment (by Mornix):
I expanded the macro that GDB was showing where the crash occurred on the
latest commit (93cf7b01950b9d8e1646227752b522d0275d32df) and this is the
GDB output:
{{{
Starting program: ffmpeg_g.exe -v 9 -loglevel 99 -report -i crash-
fieldmatch-yadif-sample.mkv -vcodec mpeg2video -vf
fieldmatch=order=tff:combmatch=full,yadif=deint=interlaced,decimate
out.mkv
[New Thread 6328.0x1f98]
[New Thread 6328.0x150c]
[New Thread 6328.0x1300]
[New Thread 6328.0x1a74]
[New Thread 6328.0x478]
[New Thread 6328.0x80c]
[New Thread 6328.0x1e44]
[New Thread 6328.0x1f94]
[New Thread 6328.0x1a30]
[New Thread 6328.0x14b4]
[New Thread 6328.0x18b4]
[New Thread 6328.0x580]
[New Thread 6328.0x134c]
[New Thread 6328.0xc2c]
[New Thread 6328.0x173c]
[New Thread 6328.0x1ef4]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 6328.0x80c]
0x0046e4ce in filter_line_c (dst1=0xa05c6e3, prev1=0x90b3e13,
cur1=0x9df6073,
next1=0xa15ecc3, w=710, prefs=768, mrefs=-768, parity=1, mode=0)
at libavfilter/vf_yadif.c:115
115 int temporal_diff2 =(FFABS(next[mrefs] - c) +
FFABS(next[prefs] - e) )>>1;
#0 0x0046e4ce in filter_line_c (dst1=0xa05c6e3, prev1=0x90b3e13,
cur1=0x9df6073, next1=0xa15ecc3, w=710, prefs=768, mrefs=-768,
parity=1,
mode=0) at libavfilter/vf_yadif.c:115
#1 0x00471629 in filter_slice (ctx=0x4869fa0, arg=0x28f348, jobnr=4,
nb_jobs=5) at libavfilter/vf_yadif.c:244
#2 0x0042a4ab in worker (v=0x48d9960) at libavfilter/pthread.c:88
#3 0x6248b4c1 in ptw32_threadStart at 4 () from C:\MinGW\bin\pthreadGC2.dll
#4 0x766e1287 in msvcrt!_itow_s () from C:\Windows\syswow64\msvcrt.dll
#5 0x766e1328 in msvcrt!_endthreadex () from
C:\Windows\syswow64\msvcrt.dll
#6 0x75d133aa in KERNEL32!BaseCleanupAppcompatCacheSupport ()
from C:\Windows\syswow64\kernel32.dll
#7 0x0741ffd4 in ?? ()
#8 0x76ee9f72 in ntdll!RtlpNtSetValueKey ()
from C:\Windows\system32\ntdll.dll
#9 0x04869a68 in ?? ()
#10 0x76ee9f45 in ntdll!RtlpNtSetValueKey ()
from C:\Windows\system32\ntdll.dll
#11 0x766e12e5 in msvcrt!_endthreadex () from
C:\Windows\syswow64\msvcrt.dll
#12 0x00000000 in ?? ()
Dump of assembler code from 0x46e4ae to 0x46e4ee:
0x0046e4ae <filter_line_c+482>: decb 0xf3c246c(%ebx)
0x0046e4b4 <filter_line_c+488>: mov $0x6c,%dh
0x0046e4b6 <filter_line_c+490>: add $0x246c8900,%eax
0x0046e4bb <filter_line_c+495>: or $0x2b,%al
0x0046e4bd <filter_line_c+497>: insb (%dx),%es:(%edi)
0x0046e4be <filter_line_c+498>: and $0x8,%al
0x0046e4c0 <filter_line_c+500>: mov %ebp,0x14(%esp)
0x0046e4c4 <filter_line_c+504>: js 0x46e774
<filter_line_c+1192>
0x0046e4ca <filter_line_c+510>: mov 0x38(%esp),%ebp
=> 0x0046e4ce <filter_line_c+514>: movzbl 0x0(%ebp,%eax,1),%ebp
0x0046e4d3 <filter_line_c+519>: mov %ebp,0xc(%esp)
0x0046e4d7 <filter_line_c+523>: sub 0x4(%esp),%ebp
0x0046e4db <filter_line_c+527>: js 0x46e76c
<filter_line_c+1184>
0x0046e4e1 <filter_line_c+533>: add 0x14(%esp),%ebp
0x0046e4e5 <filter_line_c+537>: sar %ebp
0x0046e4e7 <filter_line_c+539>: cmp %ebp,%esi
0x0046e4e9 <filter_line_c+541>: jge 0x46e4ed
<filter_line_c+545>
0x0046e4eb <filter_line_c+543>: mov %ebp,%esi
0x0046e4ed <filter_line_c+545>: sub %ebx,%edi
End of assembler dump.
eax 0x3d 61
ecx 0x9df5db0 165633456
edx 0x9df63b0 165634992
ebx 0x12 18
esp 0x741fdbc 0x741fdbc
ebp 0xa15efc3 0xa15efc3
esi 0x0 0
edi 0x12 18
eip 0x46e4ce 0x46e4ce <filter_line_c+514>
eflags 0x10202 [ IF RF ]
cs 0x23 35
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x53 83
gs 0x2b 43
st0 0 (raw 0x00000000000000000000)
st1 0 (raw 0x00000000000000000000)
st2 0 (raw 0x00000000000000000000)
st3 0 (raw 0x00000000000000000000)
st4 0 (raw 0x00000000000000000000)
st5 0 (raw 0x00000000000000000000)
st6 0 (raw 0x00000000000000000000)
st7 0 (raw 0x00000000000000000000)
fctrl 0x27f 639
fstat 0x0 0
ftag 0xffff 65535
fiseg 0x0 0
fioff 0x0 0
foseg 0x0 0
fooff 0x0 0
fop 0x0 0
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}
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, 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}
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 = {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}
xmm6 {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}
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 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm1 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm2 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm3 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm4 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm5 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
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}}
}}}
I've attached the log (ffmpeg-crash-fieldmatch-yadif-log-3.log).
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2896#comment:4>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list