[FFmpeg-trac] #5775(avdevice:new): Direct show webcam video capture fails in Windows 10 Anniversary edition
FFmpeg
trac at avcodec.org
Fri Aug 12 22:44:08 EEST 2016
#5775: Direct show webcam video capture fails in Windows 10 Anniversary edition
-------------------------------------+------------------------------------
Reporter: ctdavids | Owner:
Type: defect | Status: new
Priority: important | Component: avdevice
Version: git-master | Resolution:
Keywords: dshow crash | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+------------------------------------
Comment (by ctdavids):
It has been pointed out to me that I performed the gdb debugging
incorrectly or at least that I was debugging the wrong point in the stack
because apparently gdb was breaking on a memory warning rather than on the
crash (this is my first time using gdb and I was blissfully unaware of
this fact).
I ran it again, but this time ran {{{handle SIGTRAP nostop}}} as the first
line in gdb prior to executing the ffmpeg command. I have included the
updated output below. I would update the original post, but there doesn't
seem to be a way to modify the text of the report.
{{{
$ gdb ffmpeg_g.exe
GNU gdb (GDB) (Cygwin 7.10.1-1) 7.10.1
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-cygwin".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ffmpeg_g.exe...done.
(gdb) handle SIGTRAP nostop
SIGTRAP is used by the debugger.
Are you sure you want to change it? (y or n) y
Signal Stop Print Pass to program Description
SIGTRAP No Yes No Trace/breakpoint trap
(gdb) r -f dshow -i video="Logitech HD Webcam C310"
Starting program: /home/ctdav/GitDebug/ffmpeg/ffmpeg_g.exe -f dshow -i
video="Lo
gitech HD Webcam C310"
[New Thread 12248.0x2ffc]
[New Thread 12248.0x2ce8]
[New Thread 12248.0x1ab8]
[New Thread 12248.0x2f54]
ffmpeg version git-2016-08-11-eb31372 Copyright (c) 2000-2016 the FFmpeg
develop
ers
built with gcc 4.9.2 (GCC)
configuration: --enable-gpl --disable-doc --enable-libmp3lame --enable-
libx264
--enable-version3 --arch=x86_64 --target-os=mingw32 --logfile=/dev/stdout
--ext
ra-ldflags=-static --cross-prefix=x86_64-w64-mingw32-
libavutil 55. 28.100 / 55. 28.100
libavcodec 57. 51.100 / 57. 51.100
libavformat 57. 46.100 / 57. 46.100
libavdevice 57. 0.102 / 57. 0.102
libavfilter 6. 51.100 / 6. 51.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100
[New Thread 12248.0x2ff8]
[New Thread 12248.0x230c]
[New Thread 12248.0x1098]
[Thread 12248.0x1098 exited with code 0]
[New Thread 12248.0x404]
[Thread 12248.0x404 exited with code 0]
[New Thread 12248.0x27ac]
[Thread 12248.0x27ac exited with code 0]
[New Thread 12248.0x28cc]
[New Thread 12248.0x2ad0]
[New Thread 12248.0x37c]
[New Thread 12248.0xf3c]
[New Thread 12248.0x16bc]
warning: HEAP[ffmpeg_g.exe]:
warning: Invalid address specified to RtlFreeHeap( 0000000000080000,
00000000011
95470 )
Program received signal SIGTRAP, Trace/breakpoint trap.
[New Thread 12248.0x1d7c]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 12248.0x2ad0]
0x00007ff9a1c54020 in msvcrt!memmove ()
from /cygdrive/c/WINDOWS/System32/msvcrt.dll
(gdb) bt
#0 0x00007ff9a1c54020 in msvcrt!memmove () from
/cygdrive/c/WINDOWS/System32/msvcrt.dll
#1 0x0000000140023537 in callback (priv_data=<optimized out>, index=0,
buf=0x74e0880
"\201\202}\201\202}\203\202}\204\203\177\203\201\177\204\202\200\204\204}\204\204}\206\205z\207\206{\211\206{\211\206{\211\204~\211\204~\207\205~\210\206\177\211\207\201\210\206\177\212\205\201\211\203\200\207\203\201\207\203\201\211\203\200\211\203\200\211\204~\211\204~\211\204~\212\205\177\212\205\177\211\204~\210\205z\211\206{\210\211y\211\212z\212\211y\212\211y\212\207|\213\210}\213\210}\213\210}\213\210}\213\210}\215\210}\215\210}\212\206~\212\206~\211\211}\211\211}\207\212|\206\211{\207\212|\211\213}\211\212\177\207\211}\207\213z\207\213z\215\213{\213\212z\212\210{\212\210{\211\211}\213\212\177\215\211\200\213\207\177\215\211\200\216\212\201\217\212"...,
buf_size=921600, time=60621360000, devtype=VideoDevice) at
libavdevice/dshow.c:185
#2 0x000000014002791d in libAVMemInputPin_Receive (this=0xdda18,
sample=<optimized out>) at libavdevice/dshow_pin.c:353
#3 0x00007ff98fdfc098 in ?? () from
/cygdrive/c/Windows/System32/mfksproxy.dll
#4 0x00007ff98fe0bbd0 in Source!DllUnregisterServer () from
/cygdrive/c/Windows/System32/mfksproxy.dll
#5 0x00007ff98fe04e32 in Source!DllUnregisterServer () from
/cygdrive/c/Windows/System32/mfksproxy.dll
#6 0x00007ff97c222064 in MFReadWrite!DllGetClassObject () from
/cygdrive/c/Windows/System32/MFReadWrite.dll
#7 0x00007ff97c2252df in MFReadWrite!MFCreateSourceReaderFromMediaSource
() from /cygdrive/c/Windows/System32/MFReadWrite.dll
#8 0x00007ff97c23e6bd in MFReadWrite!MFCreateSourceReaderFromMediaSource
() from /cygdrive/c/Windows/System32/MFReadWrite.dll
#9 0x00007ff99bd2752d in RtwqPutWorkItem () from
/cygdrive/c/Windows/System32/RTWorkQ.DLL
#10 0x00007ff99bd28338 in RtwqPutWorkItem () from
/cygdrive/c/Windows/System32/RTWorkQ.DLL
#11 0x00007ff9a2424a5e in ntdll!RtlReleaseSRWLockExclusive () from
/cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#12 0x00007ff9a2422c74 in ntdll!RtlReleaseSRWLockExclusive () from
/cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#13 0x00007ff9a2038364 in KERNEL32!BaseThreadInitThunk () from
/cygdrive/c/WINDOWS/System32/KERNEL32.DLL
#14 0x00007ff9a2455e91 in ntdll!RtlUserThreadStart () from
/cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#15 0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0x7ff9a1c54000 to 0x7ff9a1c54040:
0x00007ff9a1c54000 <msvcrt!memmove+704>: sub $0x80,%rcx
0x00007ff9a1c54007 <msvcrt!memmove+711>: prefetchnta (%rdx,%rcx,1)
0x00007ff9a1c5400b <msvcrt!memmove+715>: prefetchnta
0x40(%rdx,%rcx,1)
0x00007ff9a1c54010 <msvcrt!memmove+720>: dec %eax
0x00007ff9a1c54012 <msvcrt!memmove+722>: jne 0x7ff9a1c54000
<msvcrt!memmove+704>
0x00007ff9a1c54014 <msvcrt!memmove+724>: add $0x200,%rcx
0x00007ff9a1c5401b <msvcrt!memmove+731>: mov $0x8,%eax
=> 0x00007ff9a1c54020 <msvcrt!memmove+736>: movdqu
-0x10(%rdx,%rcx,1),%xmm0
0x00007ff9a1c54026 <msvcrt!memmove+742>: movdqu
-0x20(%rdx,%rcx,1),%xmm1
0x00007ff9a1c5402c <msvcrt!memmove+748>: movntdq %xmm0,-0x10(%rcx)
0x00007ff9a1c54031 <msvcrt!memmove+753>: movntdq %xmm1,-0x20(%rcx)
0x00007ff9a1c54036 <msvcrt!memmove+758>: sub $0x40,%rcx
0x00007ff9a1c5403a <msvcrt!memmove+762>: movdqu
0x10(%rdx,%rcx,1),%xmm0
End of assembler dump.
(gdb) info all-registers
rax 0x6 6
rbx 0xd65920 14047520
rcx 0x74ff820 122681376
rdx 0xffffffffffff07e0 -63520
rsi 0x0 0
rdi 0xe1000 921600
rbp 0x0 0x0
rsp 0x7bff4c8 0x7bff4c8
r8 0xf800 63488
r9 0x7080 28800
r10 0x7ff9a25015c0 140710146741696
r11 0x74f00a0 122618016
r12 0x74e0880 122554496
r13 0xe1d508b80 60621360000
r14 0x11ada00 18536960
r15 0x0 0
rip 0x7ff9a1c54020 0x7ff9a1c54020 <msvcrt!memmove+736>
eflags 0x10206 [ PF IF RF ]
cs 0x33 51
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 0x0 0
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 = {0xee, 0xff, 0xee, 0xff, 0x2, 0x0, 0x0, 0x0, 0x20, 0x1, 0xd6,
0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xffee, 0xffee, 0x2, 0x0, 0x120,
0xd6, 0x0, 0x0}, v4_int32 = {0xffeeffee, 0x2, 0xd60120, 0x0},
v2_int64 = {0x2ffeeffee, 0xd60120}, uint128 =
0x0000000000d6012000000002ffeeffee}
xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x53, 0x70, 0xba,
0x62, 0x27, 0x6a, 0x1, 0x1}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x7053,
0x62ba, 0x6a27, 0x101}, v4_int32 = {0x0, 0x0, 0x62ba7053,
0x1016a27}, v2_int64 = {0x0, 0x1016a2762ba7053}, uint128 =
0x01016a2762ba70530000000000000000}
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}
xmm8 {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}
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}
mxcsr 0x1f80 [ IM DM ZM OM UM PM ]
(gdb)
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/5775#comment:7>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list