#2896: Using video filters "fieldmatch" and "yadif" together causes crash ----------------------------------+-------------------------------------- Reporter: Mornix | Type: defect Status: new | Priority: normal Component: avfilter | Version: git-master Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | ----------------------------------+-------------------------------------- Trying to detelecine a video as shown on the [http://ffmpeg.org/ffmpeg- filters.html#Examples-15 filter page] specifically using fieldmatch and yadif together causes FFmpeg to crash. It does not,however, crash at the same point each attempt.
How to reproduce: {{{ % ffmpeg -i in.mkv -vcodec mpeg2video -vf fieldmatch=order=tff:combmatch=full,yadif=deint=interlaced,decimate out.mkv ffmpeg git version b99d3613cfdb5714a3c0e18b0db209280d879a10 built on Windows 7(x64) }}} I did two attempts and logged both. I've attached the FFmpeg logs for both and below are the GDB output for each. Attempt 1 {{{ Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 6320.0x1750] 0x0046e4ce in filter_line_c (dst1=0xa0b1303, prev1=0x9b84973, cur1=0x9082793, next1=0xa006b83, w=710, prefs=768, mrefs=-768, parity=1, mode=0) at libavfilter/vf_yadif.c:108 108 FILTER(0, w, 1) #0 0x0046e4ce in filter_line_c (dst1=0xa0b1303, prev1=0x9b84973, cur1=0x9082793, next1=0xa006b83, w=710, prefs=768, mrefs=-768, parity=1, mode=0) at libavfilter/vf_yadif.c:108 #1 0x00471629 in filter_slice (ctx=0x47ff340, arg=0x28f348, jobnr=4, nb_jobs=5) at libavfilter/vf_yadif.c:204 #2 0x0042a4ab in worker (v=0x6024060) at libavfilter/pthread.c:88 #3 0x6248b4c1 in ptw32_threadStart@4 () from c:\MinGW\bin\pthreadGC2.dll #4 0x76541287 in msvcrt!_itow_s () from C:\Windows\syswow64\msvcrt.dll #5 0x76541328 in msvcrt!_endthreadex () from C:\Windows\syswow64\msvcrt.dll #6 0x767933aa in KERNEL32!BaseCleanupAppcompatCacheSupport () from C:\Windows\syswow64\kernel32.dll #7 0x0742ffd4 in ?? () #8 0x77739f72 in ntdll!RtlpNtSetValueKey () from C:\Windows\system32\ntdll.dll #9 0x047fe8a8 in ?? () #10 0x77739f45 in ntdll!RtlpNtSetValueKey () from C:\Windows\system32\ntdll.dll #11 0x765412e5 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 0x17d 381 ecx 0x9082610 151528976 edx 0x9082c10 151530512 ebx 0x4a 74 esp 0x742fdbc 0x742fdbc ebp 0xa006e83 0xa006e83 esi 0x3 3 edi 0x46 70 eip 0x46e4ce 0x46e4ce <filter_line_c+514> eflags 0x10213 [ CF AF 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}} }}} Attempt 2 {{{ Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 6040.0x498] 0x0046e4ce in filter_line_c (dst1=0x9ebd923, prev1=0x9063ef3, cur1=0x9f60213, next1=0xa1b9b03, w=710, prefs=768, mrefs=-768, parity=1, mode=0) at libavfilter/vf_yadif.c:108 108 FILTER(0, w, 1) #0 0x0046e4ce in filter_line_c (dst1=0x9ebd923, prev1=0x9063ef3, cur1=0x9f60213, next1=0xa1b9b03, w=710, prefs=768, mrefs=-768, parity=1, mode=0) at libavfilter/vf_yadif.c:108 #1 0x00471629 in filter_slice (ctx=0x3af380, arg=0x28f348, jobnr=4, nb_jobs=5) at libavfilter/vf_yadif.c:204 #2 0x0042a4ab in worker (v=0x4844060) at libavfilter/pthread.c:88 #3 0x6248b4c1 in ptw32_threadStart@4 () from c:\MinGW\bin\pthreadGC2.dll #4 0x76541287 in msvcrt!_itow_s () from C:\Windows\syswow64\msvcrt.dll #5 0x76541328 in msvcrt!_endthreadex () from C:\Windows\syswow64\msvcrt.dll #6 0x767933aa in KERNEL32!BaseCleanupAppcompatCacheSupport () from C:\Windows\syswow64\kernel32.dll #7 0x0752ffd4 in ?? () #8 0x77739f72 in ntdll!RtlpNtSetValueKey () from C:\Windows\system32\ntdll.dll #9 0x003aedc0 in ?? () #10 0x77739f45 in ntdll!RtlpNtSetValueKey () from C:\Windows\system32\ntdll.dll #11 0x765412e5 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 0x1fd 509 ecx 0x9f60110 167117072 edx 0x9f60710 167118608 ebx 0x12 18 esp 0x752fdbc 0x752fdbc ebp 0xa1b9e03 0xa1b9e03 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}} }}} -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2896> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://avcodec.org/mailman/listinfo/ffmpeg-trac