[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