Opened 14 months ago

Last modified 13 months ago

#5775 new defect

Direct show webcam video capture fails in Windows 10 Anniversary edition

Reported by: ctdavids Owned by:
Priority: important Component: avdevice
Version: git-master Keywords: dshow crash
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Goal: Capture webcam video with direct show in Windows 10 Anniversary Edition

Problem: ffmpeg crashes

Command Line:

ffmpeg.exe -f dshow -i video="Logitech HD Webcam C310" test.mp4

Repro:

1) Requires Windows 10 Anniversary edition (http://go.microsoft.com/fwlink/?LinkID=823759) as there seems to have been (breaking) changes to direct show behaviour. Prior to this edition, the command is successful.

2) Run the above command line (replacing the name of the webcam with one appropriate for your system). I have tested this with: Logitech C170, C310 and C615; MS LifeCam? CinemaHD and HD-3000; and the integrated camera on my laptop.

3) The camera light will turn on briefly and then ffmpeg will crash. This has occurred for me with my custom-built ffmpeg and the latest Zeranoe build (https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20160811-b83d907-win64-static.zip)

gdb output

The full gdb output is below. I believe it suggests a failure with a direct show call, which seems backed up by the internet being of the opinion that microsoft made at least one breaking change in direct show with this update (https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/9d6a8704-764f-46df-a41c-8e9d84f7f0f3/mjpg-encoded-media-type-is-not-available-for-usbuvc-webcameras-after-windows-10-version-1607-os?forum=mediafoundationdevelopment)

I obtained this by running the application through cygwin. I will attach the build script I used to build it in cygwin (with gcc, wget, gdb, git, and https://github.com/transcode-open/apt-cyg installed).

$ 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) r -f dshow -i video="Logitech HD Webcam C310" test.mp4
Starting program: /home/ctdav/Anv/ffmpeg/ffmpeg_g.exe -f dshow -i video="Logitech HD Webcam C310" test.mp4
[New Thread 18280.0x1d18]
[New Thread 18280.0x40c0]
[New Thread 18280.0x2e8c]
[New Thread 18280.0x1494]
ffmpeg version git-2016-08-12-e8b355a Copyright (c) 2000-2016 the FFmpeg developers
  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 --extra-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 18280.0x4444]
[New Thread 18280.0x8e1c]
[New Thread 18280.0x5808]
[Thread 18280.0x5808 exited with code 0]
[New Thread 18280.0x58a0]
[Thread 18280.0x58a0 exited with code 0]
[New Thread 18280.0x6928]
[Thread 18280.0x6928 exited with code 0]
[New Thread 18280.0x2ed8]
[New Thread 18280.0x29d8]
[New Thread 18280.0x3528]
[New Thread 18280.0x6bf4]
[New Thread 18280.0x2edc]
warning: HEAP[ffmpeg_g.exe]:
warning: Invalid address specified to RtlFreeHeap( 00000000000A0000, 00000000017688E0 )

Program received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffef96eb61f in ntdll!RtlpNtMakeTemporaryKey () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) bt
#0  0x00007ffef96eb61f in ntdll!RtlpNtMakeTemporaryKey () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffef96b7408 in ntdll!memset () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#2  0x00007ffef9682a71 in ntdll!EtwEventProviderEnabled () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#3  0x00007ffef96acfb3 in ntdll!memset () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#4  0x00007ffef962c214 in ntdll!RtlFreeHeap () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#5  0x00007ffed1e15f88 in Source!DllUnregisterServer () from /cygdrive/c/Windows/System32/mfksproxy.dll
#6  0x00007ffed1df6b50 in ?? () from /cygdrive/c/Windows/System32/mfksproxy.dll
#7  0x00007ffed45e9464 in QUARTZ!AMGetErrorTextW () from /cygdrive/c/Windows/System32/quartz.dll
#8  0x00007ffed45fb5f7 in QUARTZ!AMGetErrorTextW () from /cygdrive/c/Windows/System32/quartz.dll
#9  0x00007ffed45fab0d in QUARTZ!AMGetErrorTextW () from /cygdrive/c/Windows/System32/quartz.dll
#10 0x00007ffed45fcc79 in QUARTZ!AMGetErrorTextW () from /cygdrive/c/Windows/System32/quartz.dll
#11 0x00007ffed45fc6e5 in QUARTZ!AMGetErrorTextW () from /cygdrive/c/Windows/System32/quartz.dll
#12 0x0000000140025d4a in dshow_read_header (avctx=0xe752a0) at libavdevice/dshow.c:1209
#13 0x000000014026b487 in avformat_open_input (ps=ps@entry=0x5ff848, filename=filename@entry=0xe74a93 "video=Logitech HD Webcam C310", fmt=fmt@entry=0x140d1a140 <ff_dshow_demuxer>, options=0xe74de8) at libavformat/utils.c:555
#14 0x000000014000db07 in open_input_file (o=o@entry=0x5ffa40, filename=<optimized out>) at ffmpeg_opt.c:982
#15 0x000000014000f0ef in open_files (inout=0x140d635bf <global_group+6927> "input", open_file=0x14000c290 <open_input_file>, l=<optimized out>, l=<optimized out>) at ffmpeg_opt.c:3069
#16 ffmpeg_parse_options (argc=argc@entry=6, argv=argv@entry=0xe74830) at ffmpeg_opt.c:3106
#17 0x0000000140c9a70e in main (argc=6, argv=0xe74830) at ffmpeg.c:4325
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0x7ffef96eb5ff to 0x7ffef96eb63f:
   0x00007ffef96eb5ff <ntdll!RtlpNtMakeTemporaryKey+17199>:     int3
   0x00007ffef96eb600 <ntdll!RtlpNtMakeTemporaryKey+17200>:     int3
   0x00007ffef96eb601 <ntdll!RtlpNtMakeTemporaryKey+17201>:     int3
   0x00007ffef96eb602 <ntdll!RtlpNtMakeTemporaryKey+17202>:     int3
   0x00007ffef96eb603 <ntdll!RtlpNtMakeTemporaryKey+17203>:     int3
   0x00007ffef96eb604 <ntdll!RtlpNtMakeTemporaryKey+17204>:     int3
   0x00007ffef96eb605 <ntdll!RtlpNtMakeTemporaryKey+17205>:     int3
   0x00007ffef96eb606 <ntdll!RtlpNtMakeTemporaryKey+17206>:     int3
   0x00007ffef96eb607 <ntdll!RtlpNtMakeTemporaryKey+17207>:     int3
   0x00007ffef96eb608 <ntdll!RtlpNtMakeTemporaryKey+17208>:     mov    %gs:0x60,%rax
   0x00007ffef96eb611 <ntdll!RtlpNtMakeTemporaryKey+17217>:     cmpb   $0x0,0x2(%rax)
   0x00007ffef96eb615 <ntdll!RtlpNtMakeTemporaryKey+17221>:     je     0x7ffef96eb626 <ntdll!RtlpNtMakeTemporaryKey+17238>
   0x00007ffef96eb617 <ntdll!RtlpNtMakeTemporaryKey+17223>:     movb   $0x1,0x55033(%rip)        # 0x7ffef9740651
   0x00007ffef96eb61e <ntdll!RtlpNtMakeTemporaryKey+17230>:     int3
=> 0x00007ffef96eb61f <ntdll!RtlpNtMakeTemporaryKey+17231>:     movb   $0x0,0x5502b(%rip)        # 0x7ffef9740651
   0x00007ffef96eb626 <ntdll!RtlpNtMakeTemporaryKey+17238>:     retq
   0x00007ffef96eb627 <ntdll!RtlpNtMakeTemporaryKey+17239>:     int3
   0x00007ffef96eb628 <ntdll!RtlpNtMakeTemporaryKey+17240>:     int3
   0x00007ffef96eb629 <ntdll!RtlpNtMakeTemporaryKey+17241>:     int3
   0x00007ffef96eb62a <ntdll!RtlpNtMakeTemporaryKey+17242>:     int3
   0x00007ffef96eb62b <ntdll!RtlpNtMakeTemporaryKey+17243>:     int3
   0x00007ffef96eb62c <ntdll!RtlpNtMakeTemporaryKey+17244>:     int3
   0x00007ffef96eb62d <ntdll!RtlpNtMakeTemporaryKey+17245>:     int3
   0x00007ffef96eb62e <ntdll!RtlpNtMakeTemporaryKey+17246>:     int3
   0x00007ffef96eb62f <ntdll!RtlpNtMakeTemporaryKey+17247>:     int3
   0x00007ffef96eb630 <ntdll!RtlpNtMakeTemporaryKey+17248>:     mov    %rbx,0x8(%rsp)
   0x00007ffef96eb635 <ntdll!RtlpNtMakeTemporaryKey+17253>:     mov    %r9,0x20(%rsp)
   0x00007ffef96eb63a <ntdll!RtlpNtMakeTemporaryKey+17258>:     mov    %r8b,0x18(%rsp)
End of assembler dump.
(gdb) info all-registers
rax            0x3a0000 3801088
rbx            0x17688d0        24545488
rcx            0x975f0c6c27e60000       -7539293592529534976
rdx            0x39007b005c007d 16044601959514237
rsi            0x7ffef96fea38   140733083281976
rdi            0xa0000  655360
rbp            0x0      0x0
rsp            0x5fe048 0x5fe048
r8             0x30002d00610065 13510992161996901
r9             0x63003000610030 27866228859142192
r10            0x33003200320039 14355438563885113
r11            0x7d003600390031 35184604020801585
r12            0xe7cb68 15190888
r13            0x0      0
r14            0x0      0
r15            0x17688e0        24545504
rip            0x7ffef96eb61f   0x7ffef96eb61f <ntdll!RtlpNtMakeTemporaryKey+17231>
eflags         0x202    [ IF ]
cs             0x33     51
ss             0x2b     43
ds             0x2b     43
es             0x2b     43
fs             0x53     83
gs             0x2b     43
st0            <invalid float value>    (raw 0x708b0000007d00300030)
st1            0        (raw 0x000000000004cba73088)
st2            <invalid float value>    (raw 0x000500000000000a6790)
st3            <invalid float value>    (raw 0x001400000000005fdb40)
st4            <invalid float value>    (raw 0x000200007ffecba73088)
st5            <invalid float value>    (raw 0x00630000a8c10c735e78)
st6            <invalid float value>    (raw 0x00020000000000000001)
st7            <invalid float value>    (raw 0x240e0000000000000002)
fctrl          0x37f    895
fstat          0x0      0
ftag           0x640000 6553600
fiseg          0x32     50
fioff          0x2d0036 2949174
foseg          0x30     48
fooff          0x620064 6422628
fop            0x0      0
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc8, 0x2, 0xe7, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x2, 0x0, 0x0, 0x0, 0x2c8, 0xe7, 0x0, 0x0}, v4_int32 = {0x2, 0x0, 0xe702c8, 0x0}, v2_int64 = {0x2,
    0xe702c8}, uint128 = 0x0000000000e702c80000000000000002}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0xe0, 0xdd, 0x5f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe7, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xdde0, 0x5f, 0x0, 0x0, 0x0, 0xe7, 0x0, 0x0}, v4_int32 = {0x5fdde0, 0x0, 0xe70000, 0x0},
  v2_int64 = {0x5fdde0, 0xe70000}, uint128 = 0x0000000000e7000000000000005fdde0}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0}, v4_int32 = {0x1, 0x0, 0x2, 0x0}, v2_int64 = {0x1, 0x2},
  uint128 = 0x00000000000000020000000000000001}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x20, 0x89, 0x76, 0x1, 0x0, 0x0, 0x0, 0x0, 0x65, 0xaa, 0x62, 0xf9, 0xfe, 0x7f, 0x0, 0x0}, v8_int16 = {0x8920, 0x176, 0x0, 0x0, 0xaa65, 0xf962, 0x7ffe, 0x0}, v4_int32 = {0x1768920, 0x0,
    0xf962aa65, 0x7ffe}, v2_int64 = {0x1768920, 0x7ffef962aa65}, uint128 = 0x00007ffef962aa650000000001768920}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0xe7, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xdd, 0x5f, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0xe7, 0x0, 0x0, 0xdde0, 0x5f, 0x0, 0x0}, v4_int32 = {0xe70000, 0x0, 0x5fdde0, 0x0},
  v2_int64 = {0xe70000, 0x5fdde0}, uint128 = 0x00000000005fdde00000000000e70000}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x10, 0x89, 0x76, 0x1, 0x0, 0x0, 0x0, 0x0, 0x14, 0xc2, 0x62, 0xf9, 0xfe, 0x7f, 0x0, 0x0}, v8_int16 = {0x8910, 0x176, 0x0, 0x0, 0xc214, 0xf962, 0x7ffe, 0x0}, v4_int32 = {0x1768910, 0x0,
    0xf962c214, 0x7ffe}, v2_int64 = {0x1768910, 0x7ffef962c214}, uint128 = 0x00007ffef962c2140000000001768910}
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          0x1fa0   [ PE IM DM ZM OM UM PM ]
(gdb)

Attachments (5)

compilation failure with no configure options.txt (146.1 KB) - added by ctdavids 14 months ago.
Compile failure requested by cehoyos
patcharc4random1.diff (417 bytes) - added by cehoyos 14 months ago.
patcharc4random2.diff (515 bytes) - added by cehoyos 14 months ago.
patch2output.txt (28.3 KB) - added by ctdavids 14 months ago.
Output from cehoyos patch 2
patch1output.txt (178.3 KB) - added by ctdavids 14 months ago.
Output from cehoyos patch 1

Download all attachments as: .zip

Change History (23)

comment:1 follow-up: Changed 14 months ago by cehoyos

  • Keywords crash added; webcam windows anniversary removed

Am I correct that the crash also happens if you don't provide an output file name?

comment:2 follow-up: Changed 14 months ago by cehoyos

And just to make sure please recompile with ./configure && make ffmpeg.exe.

comment:3 in reply to: ↑ 1 Changed 14 months ago by ctdavids

Replying to cehoyos:

Am I correct that the crash also happens if you don't provide an output file name?

Yes, you are correct. I hadn't considered doing that, but I just tried it and the crash occurs without the output file name.

comment:4 in reply to: ↑ 2 Changed 14 months ago by ctdavids

Replying to cehoyos:

And just to make sure please recompile with ./configure && make ffmpeg.exe.

So I tried to do ./configure followed by make ffmpeg.exe, but the compilation failed. I can provide the output from the attempt (and the later successful one) if desired, but I think maybe it was just an issue with not specifying cross-compilation. Unsure. Certainly not my area of expertise.

I then tried what seemed like a reasonably minimal configure with cross compilation

./configure --enable-gpl --enable-version3 --arch=x86_64 --target-os=mingw32 --extra-ldflags=-static --cross-prefix=x86_64-w64-mingw32-

followed by

make ffmpeg.exe

and this produced the same failure.

Edited: stack trace removed as see comment 7 indicating gdb was breaking on a memory warning rather than on the crash so the output was meaningless for this issue.

Last edited 14 months ago by ctdavids (previous) (diff)

comment:5 follow-up: Changed 14 months ago by cehoyos

I would consider a failure in native default compilation much more important for us than an apparent change in an external interface.

Changed 14 months ago by ctdavids

Compile failure requested by cehoyos

comment:6 in reply to: ↑ 5 Changed 14 months ago by ctdavids

Replying to cehoyos:

I would consider a failure in native default compilation much more important for us than an apparent change in an external interface.

Well, I'm compiling it in cygwin, not linux (based off https://trac.ffmpeg.org/wiki/CompilationGuide/CrossCompilingForWindows). So I imagine that's why there's a problem with a 0 argument configure. But I consider myself a neophyte with respect to ffmpeg compilation so I could certainly be wrong.

I have attached the console output from running ./configure and make ffmpeg.exe in cygwin so you can see for yourself.

comment:7 Changed 14 months ago 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)

Changed 14 months ago by cehoyos

Changed 14 months ago by cehoyos

comment:8 follow-up: Changed 14 months ago by cehoyos

Please test the two attached patches independently with ./configure && make V=1 libavutil/random_seed.o

Changed 14 months ago by ctdavids

Output from cehoyos patch 2

comment:9 in reply to: ↑ 8 Changed 14 months ago by ctdavids

Replying to cehoyos:

Please test the two attached patches independently with ./configure && make V=1 libavutil/random_seed.o

Outputs attached. Looks like patch 2 avoided the warning for the compilation of the random seed file.

comment:10 follow-up: Changed 14 months ago by cehoyos

Sorry, patch 1 needs ./configure && make ffmpeg.exe to test...

Changed 14 months ago by ctdavids

Output from cehoyos patch 1

comment:11 in reply to: ↑ 10 Changed 14 months ago by ctdavids

Replying to cehoyos:

Sorry, patch 1 needs ./configure && make ffmpeg.exe to test...

I have updated the output from patch 1 and it too seems to work. I have also run make ffmpeg.exe on the patch2 branch and it completes without error.

However, when built in this manner, and trying to run the command at issue

./ffmpeg.exe -f dshow -i video="Logitech HD Webcam C310"

You get

$ ./ffmpeg.exe -f dshow -i video="Logitech HD Webcam C310"
ffmpeg version git-2016-08-12-b5f30fe Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration:
  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
Unknown input format: 'dshow'

which I'd imagine is caused by it not being cross-compiled and thus it isn't possible to diagnose the filed issue using this build.

comment:12 Changed 14 months ago by cehoyos

Please find the and post the relevant part of config.log starting with check_type dshow.h IBaseFilter

comment:13 Changed 14 months ago by ctdavids

So, I've made a best guess as to what the relevant part of the config log is. Also, you said "post" so I'm assuming you want it in a code block (despite the length of at least one of them) rather than an attachment.

From patch 1 build

check_type dshow.h IBaseFilter
check_code cc dshow.h IBaseFilter v
check_cc
BEGIN /tmp/ffconf.LowfOwg0.c
    1	#include <dshow.h>
    2	int main(void) { IBaseFilter v; return 0; }
END /tmp/ffconf.LowfOwg0.c
gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -U__STRICT_ANSI__ -DPIC -std=c99 -fomit-frame-pointer -pthread -c -o /tmp/ffconf.oOoXQWdQ.o /tmp/ffconf.LowfOwg0.c
In file included from /usr/include/w32api/dshow.h:33:0,
                 from /tmp/ffconf.LowfOwg0.c:1:
/usr/include/w32api/strsafe.h: In function 'StringGetsExWorkerW':
/usr/include/w32api/strsafe.h:1855:11: error: 'WEOF' undeclared (first use in this function)
    if(ch==WEOF) {
           ^
/usr/include/w32api/strsafe.h:1855:11: note: each undeclared identifier is reported only once for each function it appears in
check_header dev/bktr/ioctl_meteor.h

From patch 2 build(looks very similar)

check_type dshow.h IBaseFilter
check_code cc dshow.h IBaseFilter v
check_cc
BEGIN /tmp/ffconf.6ms7EEFG.c
    1	#include <dshow.h>
    2	int main(void) { IBaseFilter v; return 0; }
END /tmp/ffconf.6ms7EEFG.c
gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -U__STRICT_ANSI__ -DPIC -std=c99 -fomit-frame-pointer -pthread -c -o /tmp/ffconf.SpLuvXBr.o /tmp/ffconf.6ms7EEFG.c
In file included from /usr/include/w32api/dshow.h:33:0,
                 from /tmp/ffconf.6ms7EEFG.c:1:
/usr/include/w32api/strsafe.h: In function 'StringGetsExWorkerW':
/usr/include/w32api/strsafe.h:1855:11: error: 'WEOF' undeclared (first use in this function)
    if(ch==WEOF) {
           ^
/usr/include/w32api/strsafe.h:1855:11: note: each undeclared identifier is reported only once for each function it appears in
check_header dev/bktr/ioctl_meteor.h

From cross-compiled build

check_type dshow.h IBaseFilter
check_code cc dshow.h IBaseFilter v
check_cc
BEGIN /tmp/ffconf.KlbWoqxj.c
    1	#include <dshow.h>
    2	int main(void) { IBaseFilter v; return 0; }
END /tmp/ffconf.KlbWoqxj.c
x86_64-w64-mingw32-gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 -D__printf__=__gnu_printf__ -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -c -o /tmp/ffconf.ravTTbfM.o /tmp/ffconf.KlbWoqxj.c
In file included from /usr/x86_64-w64-mingw32/sys-root/mingw/include/dshow.h:33:0,
                 from /tmp/ffconf.KlbWoqxj.c:1:
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:865:12: warning: inline function 'StringCbLengthW' declared but never defined
 STRSAFEAPI StringCbLengthW(STRSAFE_LPCWSTR psz,size_t cbMax,size_t *pcbLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:864:12: warning: inline function 'StringCbLengthA' declared but never defined
 STRSAFEAPI StringCbLengthA(STRSAFE_LPCSTR psz,size_t cbMax,size_t *pcbLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:838:12: warning: inline function 'StringCchLengthW' declared but never defined
 STRSAFEAPI StringCchLengthW(STRSAFE_LPCWSTR psz,size_t cchMax,size_t *pcchLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:837:12: warning: inline function 'StringCchLengthA' declared but never defined
 STRSAFEAPI StringCchLengthA(STRSAFE_LPCSTR psz,size_t cchMax,size_t *pcchLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:805:20: warning: inline function 'StringCbGetsExW' declared but never defined
 STRSAFE_INLINE_API StringCbGetsExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:804:20: warning: inline function 'StringCbGetsExA' declared but never defined
 STRSAFE_INLINE_API StringCbGetsExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:776:20: warning: inline function 'StringCchGetsExW' declared but never defined
 STRSAFE_INLINE_API StringCchGetsExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:775:20: warning: inline function 'StringCchGetsExA' declared but never defined
 STRSAFE_INLINE_API StringCchGetsExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:751:20: warning: inline function 'StringCbGetsW' declared but never defined
 STRSAFE_INLINE_API StringCbGetsW(STRSAFE_LPWSTR pszDest,size_t cbDest);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:750:20: warning: inline function 'StringCbGetsA' declared but never defined
 STRSAFE_INLINE_API StringCbGetsA(STRSAFE_LPSTR pszDest,size_t cbDest);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:722:20: warning: inline function 'StringCchGetsW' declared but never defined
 STRSAFE_INLINE_API StringCchGetsW(STRSAFE_LPWSTR pszDest,size_t cchDest);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:721:20: warning: inline function 'StringCchGetsA' declared but never defined
 STRSAFE_INLINE_API StringCchGetsA(STRSAFE_LPSTR pszDest,size_t cchDest);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:685:12: warning: inline function 'StringCbVPrintfExW' declared but never defined
 STRSAFEAPI StringCbVPrintfExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:684:12: warning: inline function 'StringCbVPrintfExA' declared but never defined
 STRSAFEAPI StringCbVPrintfExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:656:12: warning: inline function 'StringCchVPrintfExW' declared but never defined
 STRSAFEAPI StringCchVPrintfExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:655:12: warning: inline function 'StringCchVPrintfExA' declared but never defined
 STRSAFEAPI StringCchVPrintfExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:609:12: warning: inline function 'StringCbPrintfExW' declared but never defined
 STRSAFEAPI StringCbPrintfExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:608:12: warning: inline function 'StringCbPrintfExA' declared but never defined
 STRSAFEAPI StringCbPrintfExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:581:12: warning: inline function 'StringCchPrintfExW' declared but never defined
 STRSAFEAPI StringCchPrintfExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:580:12: warning: inline function 'StringCchPrintfExA' declared but never defined
 STRSAFEAPI StringCchPrintfExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:553:12: warning: inline function 'StringCbPrintfW' declared but never defined
 STRSAFEAPI StringCbPrintfW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:552:12: warning: inline function 'StringCbPrintfA' declared but never defined
 STRSAFEAPI StringCbPrintfA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:526:12: warning: inline function 'StringCchPrintfW' declared but never defined
 STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:525:12: warning: inline function 'StringCchPrintfA' declared but never defined
 STRSAFEAPI StringCchPrintfA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:508:12: warning: inline function 'StringCbVPrintfW' declared but never defined
 STRSAFEAPI StringCbVPrintfW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:507:12: warning: inline function 'StringCbVPrintfA' declared but never defined
 STRSAFEAPI StringCbVPrintfA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:491:12: warning: inline function 'StringCchVPrintfW' declared but never defined
 STRSAFEAPI StringCchVPrintfW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:490:12: warning: inline function 'StringCchVPrintfA' declared but never defined
 STRSAFEAPI StringCchVPrintfA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:462:12: warning: inline function 'StringCbCatNExW' declared but never defined
 STRSAFEAPI StringCbCatNExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:461:12: warning: inline function 'StringCbCatNExA' declared but never defined
 STRSAFEAPI StringCbCatNExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:445:12: warning: inline function 'StringCchCatNExW' declared but never defined
 STRSAFEAPI StringCchCatNExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:444:12: warning: inline function 'StringCchCatNExA' declared but never defined
 STRSAFEAPI StringCchCatNExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:425:12: warning: inline function 'StringCbCatNW' declared but never defined
 STRSAFEAPI StringCbCatNW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:424:12: warning: inline function 'StringCbCatNA' declared but never defined
 STRSAFEAPI StringCbCatNA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:408:12: warning: inline function 'StringCchCatNW' declared but never defined
 STRSAFEAPI StringCchCatNW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:407:12: warning: inline function 'StringCchCatNA' declared but never defined
 STRSAFEAPI StringCchCatNA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:379:12: warning: inline function 'StringCbCatExW' declared but never defined
 STRSAFEAPI StringCbCatExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:378:12: warning: inline function 'StringCbCatExA' declared but never defined
 STRSAFEAPI StringCbCatExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:361:12: warning: inline function 'StringCchCatExW' declared but never defined
 STRSAFEAPI StringCchCatExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:360:12: warning: inline function 'StringCchCatExA' declared but never defined
 STRSAFEAPI StringCchCatExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:343:12: warning: inline function 'StringCbCatW' declared but never defined
 STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:342:12: warning: inline function 'StringCbCatA' declared but never defined
 STRSAFEAPI StringCbCatA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:326:12: warning: inline function 'StringCchCatW' declared but never defined
 STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:325:12: warning: inline function 'StringCchCatA' declared but never defined
 STRSAFEAPI StringCchCatA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:293:12: warning: inline function 'StringCbCopyNExW' declared but never defined
 STRSAFEAPI StringCbCopyNExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:292:12: warning: inline function 'StringCbCopyNExA' declared but never defined
 STRSAFEAPI StringCbCopyNExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:276:12: warning: inline function 'StringCchCopyNExW' declared but never defined
 STRSAFEAPI StringCchCopyNExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:275:12: warning: inline function 'StringCchCopyNExA' declared but never defined
 STRSAFEAPI StringCchCopyNExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:255:12: warning: inline function 'StringCbCopyNW' declared but never defined
 STRSAFEAPI StringCbCopyNW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:254:12: warning: inline function 'StringCbCopyNA' declared but never defined
 STRSAFEAPI StringCbCopyNA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:237:12: warning: inline function 'StringCchCopyNW' declared but never defined
 STRSAFEAPI StringCchCopyNW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:236:12: warning: inline function 'StringCchCopyNA' declared but never defined
 STRSAFEAPI StringCchCopyNA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:206:12: warning: inline function 'StringCbCopyExW' declared but never defined
 STRSAFEAPI StringCbCopyExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:205:12: warning: inline function 'StringCbCopyExA' declared but never defined
 STRSAFEAPI StringCbCopyExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:187:12: warning: inline function 'StringCchCopyExW' declared but never defined
 STRSAFEAPI StringCchCopyExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:186:12: warning: inline function 'StringCchCopyExA' declared but never defined
 STRSAFEAPI StringCchCopyExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:169:12: warning: inline function 'StringCbCopyW' declared but never defined
 STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:168:12: warning: inline function 'StringCbCopyA' declared but never defined
 STRSAFEAPI StringCbCopyA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:153:12: warning: inline function 'StringCchCopyW' declared but never defined
 STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:152:12: warning: inline function 'StringCchCopyA' declared but never defined
 STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:148:20: warning: inline function 'StringGetsExWorkerW' declared but never defined
 STRSAFE_INLINE_API StringGetsExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:147:20: warning: inline function 'StringGetsExWorkerA' declared but never defined
 STRSAFE_INLINE_API StringGetsExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:146:12: warning: inline function 'StringLengthWorkerW' declared but never defined
 STRSAFEAPI StringLengthWorkerW(STRSAFE_LPCWSTR psz,size_t cchMax,size_t *pcchLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:145:12: warning: inline function 'StringLengthWorkerA' declared but never defined
 STRSAFEAPI StringLengthWorkerA(STRSAFE_LPCSTR psz,size_t cchMax,size_t *pcchLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:144:12: warning: inline function 'StringVPrintfExWorkerW' declared but never defined
 STRSAFEAPI StringVPrintfExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:143:12: warning: inline function 'StringVPrintfExWorkerA' declared but never defined
 STRSAFEAPI StringVPrintfExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:142:12: warning: inline function 'StringVPrintfWorkerW' declared but never defined
 STRSAFEAPI StringVPrintfWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:141:12: warning: inline function 'StringVPrintfWorkerA' declared but never defined
 STRSAFEAPI StringVPrintfWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:140:12: warning: inline function 'StringCatNExWorkerW' declared but never defined
 STRSAFEAPI StringCatNExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:139:12: warning: inline function 'StringCatNExWorkerA' declared but never defined
 STRSAFEAPI StringCatNExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:138:12: warning: inline function 'StringCatNWorkerW' declared but never defined
 STRSAFEAPI StringCatNWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:137:12: warning: inline function 'StringCatNWorkerA' declared but never defined
 STRSAFEAPI StringCatNWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:136:12: warning: inline function 'StringCatExWorkerW' declared but never defined
 STRSAFEAPI StringCatExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:135:12: warning: inline function 'StringCatExWorkerA' declared but never defined
 STRSAFEAPI StringCatExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:134:12: warning: inline function 'StringCatWorkerW' declared but never defined
 STRSAFEAPI StringCatWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:133:12: warning: inline function 'StringCatWorkerA' declared but never defined
 STRSAFEAPI StringCatWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:132:12: warning: inline function 'StringCopyNExWorkerW' declared but never defined
 STRSAFEAPI StringCopyNExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:131:12: warning: inline function 'StringCopyNExWorkerA' declared but never defined
 STRSAFEAPI StringCopyNExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:130:12: warning: inline function 'StringCopyNWorkerW' declared but never defined
 STRSAFEAPI StringCopyNWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:129:12: warning: inline function 'StringCopyNWorkerA' declared but never defined
 STRSAFEAPI StringCopyNWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:128:12: warning: inline function 'StringCopyExWorkerW' declared but never defined
 STRSAFEAPI StringCopyExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:127:12: warning: inline function 'StringCopyExWorkerA' declared but never defined
 STRSAFEAPI StringCopyExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:126:12: warning: inline function 'StringCopyWorkerW' declared but never defined
 STRSAFEAPI StringCopyWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:125:12: warning: inline function 'StringCopyWorkerA' declared but never defined
 STRSAFEAPI StringCopyWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:865:12: warning: inline function 'StringCbLengthW' declared but never defined
 STRSAFEAPI StringCbLengthW(STRSAFE_LPCWSTR psz,size_t cbMax,size_t *pcbLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:864:12: warning: inline function 'StringCbLengthA' declared but never defined
 STRSAFEAPI StringCbLengthA(STRSAFE_LPCSTR psz,size_t cbMax,size_t *pcbLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:838:12: warning: inline function 'StringCchLengthW' declared but never defined
 STRSAFEAPI StringCchLengthW(STRSAFE_LPCWSTR psz,size_t cchMax,size_t *pcchLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:837:12: warning: inline function 'StringCchLengthA' declared but never defined
 STRSAFEAPI StringCchLengthA(STRSAFE_LPCSTR psz,size_t cchMax,size_t *pcchLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:805:20: warning: inline function 'StringCbGetsExW' declared but never defined
 STRSAFE_INLINE_API StringCbGetsExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:804:20: warning: inline function 'StringCbGetsExA' declared but never defined
 STRSAFE_INLINE_API StringCbGetsExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:776:20: warning: inline function 'StringCchGetsExW' declared but never defined
 STRSAFE_INLINE_API StringCchGetsExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:775:20: warning: inline function 'StringCchGetsExA' declared but never defined
 STRSAFE_INLINE_API StringCchGetsExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:751:20: warning: inline function 'StringCbGetsW' declared but never defined
 STRSAFE_INLINE_API StringCbGetsW(STRSAFE_LPWSTR pszDest,size_t cbDest);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:750:20: warning: inline function 'StringCbGetsA' declared but never defined
 STRSAFE_INLINE_API StringCbGetsA(STRSAFE_LPSTR pszDest,size_t cbDest);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:722:20: warning: inline function 'StringCchGetsW' declared but never defined
 STRSAFE_INLINE_API StringCchGetsW(STRSAFE_LPWSTR pszDest,size_t cchDest);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:721:20: warning: inline function 'StringCchGetsA' declared but never defined
 STRSAFE_INLINE_API StringCchGetsA(STRSAFE_LPSTR pszDest,size_t cchDest);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:685:12: warning: inline function 'StringCbVPrintfExW' declared but never defined
 STRSAFEAPI StringCbVPrintfExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:684:12: warning: inline function 'StringCbVPrintfExA' declared but never defined
 STRSAFEAPI StringCbVPrintfExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:656:12: warning: inline function 'StringCchVPrintfExW' declared but never defined
 STRSAFEAPI StringCchVPrintfExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:655:12: warning: inline function 'StringCchVPrintfExA' declared but never defined
 STRSAFEAPI StringCchVPrintfExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:609:12: warning: inline function 'StringCbPrintfExW' declared but never defined
 STRSAFEAPI StringCbPrintfExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:608:12: warning: inline function 'StringCbPrintfExA' declared but never defined
 STRSAFEAPI StringCbPrintfExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:581:12: warning: inline function 'StringCchPrintfExW' declared but never defined
 STRSAFEAPI StringCchPrintfExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:580:12: warning: inline function 'StringCchPrintfExA' declared but never defined
 STRSAFEAPI StringCchPrintfExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:553:12: warning: inline function 'StringCbPrintfW' declared but never defined
 STRSAFEAPI StringCbPrintfW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:552:12: warning: inline function 'StringCbPrintfA' declared but never defined
 STRSAFEAPI StringCbPrintfA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:526:12: warning: inline function 'StringCchPrintfW' declared but never defined
 STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:525:12: warning: inline function 'StringCchPrintfA' declared but never defined
 STRSAFEAPI StringCchPrintfA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,...);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:508:12: warning: inline function 'StringCbVPrintfW' declared but never defined
 STRSAFEAPI StringCbVPrintfW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:507:12: warning: inline function 'StringCbVPrintfA' declared but never defined
 STRSAFEAPI StringCbVPrintfA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:491:12: warning: inline function 'StringCchVPrintfW' declared but never defined
 STRSAFEAPI StringCchVPrintfW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:490:12: warning: inline function 'StringCchVPrintfA' declared but never defined
 STRSAFEAPI StringCchVPrintfA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:462:12: warning: inline function 'StringCbCatNExW' declared but never defined
 STRSAFEAPI StringCbCatNExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:461:12: warning: inline function 'StringCbCatNExA' declared but never defined
 STRSAFEAPI StringCbCatNExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:445:12: warning: inline function 'StringCchCatNExW' declared but never defined
 STRSAFEAPI StringCchCatNExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:444:12: warning: inline function 'StringCchCatNExA' declared but never defined
 STRSAFEAPI StringCchCatNExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:425:12: warning: inline function 'StringCbCatNW' declared but never defined
 STRSAFEAPI StringCbCatNW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:424:12: warning: inline function 'StringCbCatNA' declared but never defined
 STRSAFEAPI StringCbCatNA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:408:12: warning: inline function 'StringCchCatNW' declared but never defined
 STRSAFEAPI StringCchCatNW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:407:12: warning: inline function 'StringCchCatNA' declared but never defined
 STRSAFEAPI StringCchCatNA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:379:12: warning: inline function 'StringCbCatExW' declared but never defined
 STRSAFEAPI StringCbCatExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:378:12: warning: inline function 'StringCbCatExA' declared but never defined
 STRSAFEAPI StringCbCatExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:361:12: warning: inline function 'StringCchCatExW' declared but never defined
 STRSAFEAPI StringCchCatExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:360:12: warning: inline function 'StringCchCatExA' declared but never defined
 STRSAFEAPI StringCchCatExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:343:12: warning: inline function 'StringCbCatW' declared but never defined
 STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:342:12: warning: inline function 'StringCbCatA' declared but never defined
 STRSAFEAPI StringCbCatA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:326:12: warning: inline function 'StringCchCatW' declared but never defined
 STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:325:12: warning: inline function 'StringCchCatA' declared but never defined
 STRSAFEAPI StringCchCatA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:293:12: warning: inline function 'StringCbCopyNExW' declared but never defined
 STRSAFEAPI StringCbCopyNExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:292:12: warning: inline function 'StringCbCopyNExA' declared but never defined
 STRSAFEAPI StringCbCopyNExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:276:12: warning: inline function 'StringCchCopyNExW' declared but never defined
 STRSAFEAPI StringCchCopyNExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:275:12: warning: inline function 'StringCchCopyNExA' declared but never defined
 STRSAFEAPI StringCchCopyNExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:255:12: warning: inline function 'StringCbCopyNW' declared but never defined
 STRSAFEAPI StringCbCopyNW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:254:12: warning: inline function 'StringCbCopyNA' declared but never defined
 STRSAFEAPI StringCbCopyNA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:237:12: warning: inline function 'StringCchCopyNW' declared but never defined
 STRSAFEAPI StringCchCopyNW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:236:12: warning: inline function 'StringCchCopyNA' declared but never defined
 STRSAFEAPI StringCchCopyNA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:206:12: warning: inline function 'StringCbCopyExW' declared but never defined
 STRSAFEAPI StringCbCopyExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:205:12: warning: inline function 'StringCbCopyExA' declared but never defined
 STRSAFEAPI StringCbCopyExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:187:12: warning: inline function 'StringCchCopyExW' declared but never defined
 STRSAFEAPI StringCchCopyExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:186:12: warning: inline function 'StringCchCopyExA' declared but never defined
 STRSAFEAPI StringCchCopyExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:169:12: warning: inline function 'StringCbCopyW' declared but never defined
 STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:168:12: warning: inline function 'StringCbCopyA' declared but never defined
 STRSAFEAPI StringCbCopyA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:153:12: warning: inline function 'StringCchCopyW' declared but never defined
 STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:152:12: warning: inline function 'StringCchCopyA' declared but never defined
 STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:148:20: warning: inline function 'StringGetsExWorkerW' declared but never defined
 STRSAFE_INLINE_API StringGetsExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:147:20: warning: inline function 'StringGetsExWorkerA' declared but never defined
 STRSAFE_INLINE_API StringGetsExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
                    ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:146:12: warning: inline function 'StringLengthWorkerW' declared but never defined
 STRSAFEAPI StringLengthWorkerW(STRSAFE_LPCWSTR psz,size_t cchMax,size_t *pcchLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:145:12: warning: inline function 'StringLengthWorkerA' declared but never defined
 STRSAFEAPI StringLengthWorkerA(STRSAFE_LPCSTR psz,size_t cchMax,size_t *pcchLength);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:144:12: warning: inline function 'StringVPrintfExWorkerW' declared but never defined
 STRSAFEAPI StringVPrintfExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:143:12: warning: inline function 'StringVPrintfExWorkerA' declared but never defined
 STRSAFEAPI StringVPrintfExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:142:12: warning: inline function 'StringVPrintfWorkerW' declared but never defined
 STRSAFEAPI StringVPrintfWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:141:12: warning: inline function 'StringVPrintfWorkerA' declared but never defined
 STRSAFEAPI StringVPrintfWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,va_list argList);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:140:12: warning: inline function 'StringCatNExWorkerW' declared but never defined
 STRSAFEAPI StringCatNExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:139:12: warning: inline function 'StringCatNExWorkerA' declared but never defined
 STRSAFEAPI StringCatNExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:138:12: warning: inline function 'StringCatNWorkerW' declared but never defined
 STRSAFEAPI StringCatNWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:137:12: warning: inline function 'StringCatNWorkerA' declared but never defined
 STRSAFEAPI StringCatNWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:136:12: warning: inline function 'StringCatExWorkerW' declared but never defined
 STRSAFEAPI StringCatExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:135:12: warning: inline function 'StringCatExWorkerA' declared but never defined
 STRSAFEAPI StringCatExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:134:12: warning: inline function 'StringCatWorkerW' declared but never defined
 STRSAFEAPI StringCatWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:133:12: warning: inline function 'StringCatWorkerA' declared but never defined
 STRSAFEAPI StringCatWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:132:12: warning: inline function 'StringCopyNExWorkerW' declared but never defined
 STRSAFEAPI StringCopyNExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:131:12: warning: inline function 'StringCopyNExWorkerA' declared but never defined
 STRSAFEAPI StringCopyNExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:130:12: warning: inline function 'StringCopyNWorkerW' declared but never defined
 STRSAFEAPI StringCopyNWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:129:12: warning: inline function 'StringCopyNWorkerA' declared but never defined
 STRSAFEAPI StringCopyNWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:128:12: warning: inline function 'StringCopyExWorkerW' declared but never defined
 STRSAFEAPI StringCopyExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:127:12: warning: inline function 'StringCopyExWorkerA' declared but never defined
 STRSAFEAPI StringCopyExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:126:12: warning: inline function 'StringCopyWorkerW' declared but never defined
 STRSAFEAPI StringCopyWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
            ^
/usr/x86_64-w64-mingw32/sys-root/mingw/include/strsafe.h:125:12: warning: inline function 'StringCopyWorkerA' declared but never defined
 STRSAFEAPI StringCopyWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
            ^
check_header dev/bktr/ioctl_meteor.h

comment:14 Changed 14 months ago by ctdavids

By the way, for what's it worth, Microsoft seems to have made changes in the update in question to allow multiple applications to access the webcam at the same time. Part of this change seems to involve svchost.exe accessing the webcam and acting as a proxy in some way. At least that's my best guess based on seen behaviour (for instance, the protection software now notes access to the webcam by svchost rather that ffmpeg, skype, or flash when those applications access it).

comment:15 Changed 14 months ago by cehoyos

I applied a fix for Cygwin default compilation as 79dc94a63b30369e39792e81cb032f2cf40539b4, thank you for testing! I don't know why Cygwin dshow compilation fails (and imo, this should absolutely be fixed) but this likely has a lower priority;-(

Concerning your original issue: Iiuc, your analysis indicates a problem that should not be fixed within FFmpeg but please contact Roger D. Pack if you need help with dshow within FFmpeg.

comment:16 Changed 13 months ago by rogerdpack

for followers, here is a partial workaround fix: https://gist.github.com/rdp/b3d080d126b341f08b112f06489a6b25
It works for any media type *except* bg24 seemingly. Hope to figure out more soon :)

comment:17 Changed 13 months ago by rogerdpack

And another hackey work around for followers: https://gist.github.com/rdp/4949907c1cafffd0b05470bc05167c1a

comment:18 Changed 13 months ago by cehoyos

Note: See TracTickets for help on using tickets.