openssl install issue in windows using mvsc

when trying to run install-script.bat batch file, in the openssl step, i get a dialog box as follows:

If I ignore this and continue installing, I get this below error in the building producer sdk step.
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal erro
r C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-video
-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
KinesisVideoStream.cpp
You are not using DLL C run time library.
Build FAILED.
   "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj" (defa
   ult target) (1) ->
   (ClCompile target) ->
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\ongoingstreamstate.h(1
   0): fatal error C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon
   -kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\opensslthreadcallbacks
   .cpp(3): fatal error C1083: Cannot open include file: 'openssl/crypto.h': No such file or directory [C:\Users\ps
   idd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\response.h(4): fatal e
   rror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vi
   deo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\request.h(7): fatal er
   ror C1083: Cannot open include file: 'curl/curl.h': No such file or directory [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]

0 Warning(s)
15 Error(s)

Time Elapsed 00:00:08.33
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>if ERRORLEVEL 1 goto :showerror
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>cd "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads.."
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>echo Build error occurred! Please delete related directories in downloads\ to start a clean build.
Build error occurred! Please delete related directories in downloads\ to start a clean build.
Any help would be appreciated!Thanks much!

Hi @sujithaperumal ,
What is your Windows version and bitwise (32 bit or 64 bit)? Which install instruction are you following?
Thanks,
-Zh

Hi @zhiyua-git
I have a windows 10 version and it is 64-bit. I'm following the install instructions for windows using microsoft visual c++

Hi @sujithaperumal ,
Can you try to download this msi and see if it can be run on your Win10? http://strawberryperl.com/download/<IP_ADDRESS>/strawberry-perl-<IP_ADDRESS>-64bit.msi
This is the msi for perl needed for building openssl on windows. Seems you had issue when install script try to do this.
Thanks,
-ZH

@zhiyua-git The site isn't loading!

@sujithaperumal  What about http://strawberryperl.com ?

@zhiyua-git No. The site isn't loading!

@sujithaperumal What about https://www.activestate.com/products/activeperl/ ?

@zhiyua-git  Yup! That works. Thanks!

If that ActivePerl works for you, make sure you add the perl to your PATH environment variable.
Delete your kinesis-video-native-build/downloads directory.
Open CMD with administrator permission.
Run vs-buildtools-install.bat.
Download windows-install-script-with-perl.txt
and Rename it to windows-install-script-with-perl.bat.
Run windows-install-script-with-perl.bat64.
@sujithaperumal Let me know if these steps work for you.

@zhiyua-git Thanks! It works. But why do I get this below error?
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>if ERRORLEVEL 1 goto :showerror
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>msbuild kinesis_video_gstreamer_sample_rtsp_app.vcxproj  /p:Configuration=Release /p:Platform=x64 /m
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
MSBUILD : error MSB1009: Project file does not exist.
Switch: kinesis_video_gstreamer_sample_rtsp_app.vcxproj
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>if ERRORLEVEL 1 goto :showerror
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>cd "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads.."
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>echo Build error occurred! Please delete related directories in downloads\ to start a clean build.
Build error occurred! Please delete related directories in downloads\ to start a clean build.

@sujithaperumal Can you put a complete log here? It is not clear what is happening according to this. Thanks.

C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads>echo "Building Producer SDK"
"Building Producer SDK"
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads>cd "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads"
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads>cd ..
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>IF 64 == 32 (cmake -G "Visual Studio 15 2017" )  ELSE (cmake -G "Visual Studio 15 2017 Win64" )
-- The C compiler identification is MSVC 19.16.27027.1
-- The CXX compiler identification is MSVC 19.16.27027.1
-- Check for working C compiler: C:/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe
-- Check for working C compiler: C:/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe
-- Check for working CXX compiler: C:/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- System name is Windows
-- Kinesis Video PIC path is ../kinesis-video-pic
-- Kinesis Video Producer path is ../kinesis-video-producer
-- Kinesis Video JNI path is ../kinesis-video-producer-jni
-- Kinesis Video Gstreamer demp app path is ../kinesis-video-gst-demo
-- Kinesis Video Open Source path is C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads
-- Configuration Visual Studio 15 2017 Win64
-- Bitness 64 bits
-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE
-- exe libraries Threads::Threads
-- Using static CRT
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>msbuild producer.vcxproj  /p:Configuration=Release /p:Platform=x64 /m
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 2/16/2019 2:00:25 AM.
1>Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxpro
j" on node 1 (default targets).
1>Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxpro
j" (1) is building "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\ZERO
_CHECK.vcxproj" (2) on node 1 (default targets).
2>PrepareForBuild:
Creating directory "x64\Release\ZERO_CHECK".
Creating directory "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog".
InitializeBuildStatus:
Creating "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
Checking Build System
CMake does not need to re-run because C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-vid
eo-native-build/CMakeFiles/generate.stamp is up-to-date.
FinalizeBuildStatus:
Deleting file "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
Touching "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
2>Done Building Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\Z
ERO_CHECK.vcxproj" (default targets).
1>PrepareForBuild:
Creating directory "producer.dir\Release".
Creating directory "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\Re
lease".
Creating directory "producer.dir\Release\producer.tlog".
InitializeBuildStatus:
Creating "producer.dir\Release\producer.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
Building Custom Rule C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/C
MakeLists.txt
CMake does not need to re-run because C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-vid
eo-native-build/CMakeFiles/generate.stamp is up-to-date.
ClCompile:
C:\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\CL.exe /c /I"C:\Users\psidd\amazon-kinesis-video-strea
ms-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic" /I"C:\Users\psidd\amazon-kinesis-video-st
reams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\client\include" /I"C:\Users\psidd\a
mazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\client\includ
e\com\amazonaws\kinesis\video\client" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-
video-native-build..\kinesis-video-pic\src\client\src" /I"C:\Users\psidd\amazon-kinesis-video-streams-produce
r-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\client\tst" /I"C:\Users\psidd\amazon-kinesis-vid
eo-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\common\include" /I"C:\Users\ps
idd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\common\i
nclude\com\amazonaws\kinesis\video\common" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kin
esis-video-native-build..\kinesis-video-pic\src\heap\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-
producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\heap\include\com\amazonaws\kinesis\video
heap" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-vi
deo-pic\src\heap\src" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-bui
ld..\kinesis-video-pic\src\heap\tst" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-
video-native-build..\kinesis-video-pic\src\trace\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-prod
ucer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\mkvgen\include" /I"C:\Users\psidd\amazon-kine
sis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\mkvgen\include\com\amaz
onaws\kinesis\video\mkvgen" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-nati
ve-build..\kinesis-video-pic\src\mkvgen\src" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp
kinesis-video-native-build..\kinesis-video-pic\src\mkvgen\tst" /I"C:\Users\psidd\amazon-kinesis-video-streams
-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\view\include" /I"C:\Users\psidd\amazon-k
inesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\view\include\com\ama
zonaws\kinesis\video\view" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-nativ
e-build..\kinesis-video-pic\src\view\src" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kin
esis-video-native-build..\kinesis-video-pic\src\view\tst" /I"C:\Users\psidd\amazon-kinesis-video-streams-prod
ucer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\utils\include" /I"C:\Users\psidd\amazon-kines
is-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\utils\src" /I"C:\Users\p
sidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-producer\src" /
I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pro
ducer\opensource\jsoncpp" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native
-build..\kinesis-video-producer\tst" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-
video-native-build..\kinesis-video-producer\src\credential-providers" /I"C:\Users\psidd\amazon-kinesis-video-
streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-producer\src\common" /I"C:\Users\psidd\am
azon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-producer-jni\src\inclu
de" /I\System\Library\Frameworks\JavaVM.framework\Versions\Current\Headers /I"C:\Program Files\Java\jdk1.8.0_1
71\include" /I"C:\Program Files\Java\jdk1.8.0_171\include\windows" /I"C:\Program Files\Java\jdk1.8.0_171\inclu
de\win32" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads
\googletest-release-1.8.0\googletest\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp
kinesis-video-native-build\downloads\log4cplus-1.2.1\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-p
roducer-sdk-cpp\kinesis-video-native-build\downloads\curl-7.60.0\builds\libcurl-vc15-x64-release-static-sspi-w
inssl\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\down
loads\openssl-OpenSSL_1_1_0f\OpenSSL\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp
kinesis-video-native-build\downloads\gstreamer\1.0\x86_64\include\gstreamer-1.0" /I"C:\Users\psidd\amazon-kine
sis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads\gstreamer\1.0\x86_64\include\glib-2.0"
/I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads\gstreame
r\1.0\x86_64\lib\glib-2.0\include" /nologo /W3 /WX- /diagnostics:classic /O2 /Ob2 /D WIN32 /D _WINDOWS /D NDEB
UG /D CURL_STATICLIB /D WIN32_LEAN_AND_MEAN /D VC_EXTRALEAN /D _HAS_ITERATOR_DEBUGGING=0 /D _CRT_SECURE_NO_WAR
NINGS /D _CRT_NONSTDC_NO_WARNINGS /D _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING /D "CMAKE_INTDIR="Release""
/D _MBCS /Gm- /EHsc /MT /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /std:c++14 /Fo"producer.dir\Re
lease\" /Fd"producer.dir\Release\producer.pdb" /Gd /TP /FC /errorReport:queue "C:\Users\psidd\amazon-kinesis-
video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\AuthIntegration.cpp" "C:\Users\psidd\amazon-ki
nesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\Callbacks.cpp" "C:\Users\psidd\amazon-ki
nesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\Client.cpp" "C:\Users\psidd\amazon-kines
is-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\ClientEvent.cpp" "C:\Users\psidd\amazon-kin
esis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\ClientState.cpp" "C:\Users\psidd\amazon-k
inesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\InputValidator.cpp" "C:\Users\psidd\ama
zon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\State.cpp" "C:\Users\psidd\amazon-
kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\AckParser.cpp" "C:\Users\psidd\amazon-
kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\Stream.cpp" "C:\Users\psidd\amazon-kin
esis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\StreamEvent.cpp" "C:\Users\psidd\amazon-k
inesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\StreamState.cpp" "C:\Users\psidd\amazon
-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\heap\src\AivHeap.cpp" "C:\Users\psidd\amazon-kin
esis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\heap\src\Common.cpp" "C:\Users\psidd\amazon-kinesis-
video-streams-producer-sdk-cpp\kinesis-video-pic\src\heap\src\Heap.cpp" "C:\Users\psidd\amazon-kinesis-video-s
treams-producer-sdk-cpp\kinesis-video-pic\src\heap\src\HybridHeap.cpp" "C:\Users\psidd\amazon-kinesis-video-st
reams-producer-sdk-cpp\kinesis-video-pic\src\heap\src\SystemHeap.cpp" "C:\Users\psidd\amazon-kinesis-video-str
eams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\MkvGenerator.cpp" "C:\Users\psidd\amazon-kinesis-video-
streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\MkvStatics.cpp" "C:\Users\psidd\amazon-kinesis-video
-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\NalAdapter.cpp" "C:\Users\psidd\amazon-kinesis-vide
o-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\SpsParser.cpp" "C:\Users\psidd\amazon-kinesis-vide
o-streams-producer-sdk-cpp\kinesis-video-pic\src\trace\src\TraceProfiler.cpp" "C:\Users\psidd\amazon-kinesis-v
ideo-streams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\Allocators.cpp" "C:\Users\psidd\amazon-kinesis-v
ideo-streams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\Base64.cpp" "C:\Users\psidd\amazon-kinesis-video
-streams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\BitField.cpp" "C:\Users\psidd\amazon-kinesis-video-s
treams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\BitReader.cpp" "C:\Users\psidd\amazon-kinesis-video-st
reams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\Directory.cpp" "C:\Users\psidd\amazon-kinesis-video-str
eams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\DoubleLinkedList.cpp" "C:\Users\psidd\amazon-kinesis-vid
eo-streams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\DynamicLibrary.cpp" "C:\Users\psidd\amazon-kinesis
-video-streams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\Endianness.cpp" "C:\Users\psidd\amazon-kinesis
-video-streams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\FileIo.cpp" "C:\Users\psidd\amazon-kinesis-vid
eo-streams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\HashTable.cpp" "C:\Users\psidd\amazon-kinesis-vide
o-streams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\Hex.cpp" "C:\Users\psidd\amazon-kinesis-video-strea
ms-producer-sdk-cpp\kinesis-video-pic\src\utils\src\Mutex.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-pr
oducer-sdk-cpp\kinesis-video-pic\src\utils\src\SingleLinkedList.cpp" "C:\Users\psidd\amazon-kinesis-video-stre
ams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\StackQueue.cpp" "C:\Users\psidd\amazon-kinesis-video-stre
ams-producer-sdk-cpp\kinesis-video-pic\src\utils\src\String.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-
producer-sdk-cpp\kinesis-video-pic\src\utils\src\Thread.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-prod
ucer-sdk-cpp\kinesis-video-pic\src\utils\src\Time.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-s
dk-cpp\kinesis-video-pic\src\utils\src\Logger.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-c
pp\kinesis-video-pic\src\view\src\ContentView.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-c
pp\kinesis-video-producer\src\KinesisVideoProducer.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-
sdk-cpp\kinesis-video-producer\src\KinesisVideoStream.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-produc
er-sdk-cpp\kinesis-video-producer\src\Auth.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp
kinesis-video-producer\src\AwsV4Signer.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kine
sis-video-producer\src\CallbackProvider.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kin
esis-video-producer\src\CurlCallManager.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kin
esis-video-producer\src\DefaultCallbackProvider.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk
-cpp\kinesis-video-producer\src\OngoingStreamState.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-
sdk-cpp\kinesis-video-producer\src\CachingEndpointOnlyCallbackProvider.cpp" "C:\Users\psidd\amazon-kinesis-vid
eo-streams-producer-sdk-cpp\kinesis-video-producer\src\DefaultDeviceInfoProvider.cpp" "C:\Users\psidd\amazon-k
inesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\OpenSSLThreadCallbacks.cpp" "C:\Users\psidd\a
mazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\Request.cpp" "C:\Users\psidd\amazon-ki
nesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\Response.cpp" "C:\Users\psidd\amazon-kinesis-v
ideo-streams-producer-sdk-cpp\kinesis-video-producer\src\StreamTags.cpp" "C:\Users\psidd\amazon-kinesis-video-
streams-producer-sdk-cpp\kinesis-video-producer\src\Version.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-
producer-sdk-cpp\kinesis-video-producer\src\GetTime.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer
-sdk-cpp\kinesis-video-producer\src\credential-providers\CredentialProviderUtil.cpp" "C:\Users\psidd\amazon-ki
nesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\credential-providers\IotCertCredentialProvider
.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\credential-prov
iders\RotatingCredentialProvider.cpp" "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-vi
deo-producer\src\credential-providers\RotatingStaticCredentialProvider.cpp" "C:\Users\psidd\amazon-kinesis-vid
eo-streams-producer-sdk-cpp\kinesis-video-producer\src\common\PutFrameHelper.cpp" "C:\Users\psidd\amazon-kines
is-video-streams-producer-sdk-cpp\kinesis-video-producer\opensource\jsoncpp\jsoncpp.cpp"
AuthIntegration.cpp
Callbacks.cpp
Client.cpp
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\client.cpp(733): w
arning C4101: 'pUploadHandleInfo': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-streams-prod
ucer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
ClientEvent.cpp
ClientState.cpp
InputValidator.cpp
State.cpp
AckParser.cpp
Stream.cpp
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\stream.cpp(295): w
arning C4101: 'i': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kin
esis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\stream.cpp(1431):
warning C4244: '=': conversion from 'DOUBLE' to 'UINT64', possible loss of data [C:\Users\psidd\amazon-kinesis-v
ideo-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
StreamEvent.cpp
StreamState.cpp
AivHeap.cpp
Common.cpp
Heap.cpp
HybridHeap.cpp
SystemHeap.cpp
MkvGenerator.cpp
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(8
73): warning C4244: 'argument': conversion from '__int64' to 'UINT32', possible loss of data [C:\Users\psidd\ama
zon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(8
81): warning C4244: 'argument': conversion from '__int64' to 'UINT32', possible loss of data [C:\Users\psidd\ama
zon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(8
99): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-kine
sis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(9
04): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-kine
sis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(9
09): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-kine
sis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(9
14): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-kine
sis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(9
19): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-kine
sis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(1
088): warning C4101: 'i': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-
cpp\kinesis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(1
154): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-kin
esis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(1
173): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-kin
esis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(1
433): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-kin
esis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp(1
439): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-kin
esis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
MkvStatics.cpp
NalAdapter.cpp
SpsParser.cpp
Generating Code...
Compiling...
TraceProfiler.cpp
Allocators.cpp
Base64.cpp
BitField.cpp
BitReader.cpp
Directory.cpp
DoubleLinkedList.cpp
DynamicLibrary.cpp
Endianness.cpp
FileIo.cpp
HashTable.cpp
Hex.cpp
Mutex.cpp
SingleLinkedList.cpp
StackQueue.cpp
String.cpp
Thread.cpp
Time.cpp
Logger.cpp
ContentView.cpp
Generating Code...
Compiling...
KinesisVideoProducer.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
KinesisVideoStream.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
Auth.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
AwsV4Signer.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
CallbackProvider.cpp
CurlCallManager.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
DefaultCallbackProvider.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
OngoingStreamState.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
CachingEndpointOnlyCallbackProvider.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\cachingendpointonlycallb
ackprovider.cpp(162): warning C4018: '<': signed/unsigned mismatch [C:\Users\psidd\amazon-kinesis-video-streams-
producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
DefaultDeviceInfoProvider.cpp
OpenSSLThreadCallbacks.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
Request.cpp
Response.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
StreamTags.cpp
Version.cpp
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\version.cpp(52): warning
C4996: 'GetVersionExA': was declared deprecated [C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\k
inesis-video-native-build\producer.vcxproj]
c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\sysinfoapi.h(378): note: see declaration of 'Ge
tVersionExA'
GetTime.cpp
CredentialProviderUtil.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
IotCertCredentialProvider.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
RotatingCredentialProvider.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
RotatingStaticCredentialProvider.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
Generating Code...
Compiling...
PutFrameHelper.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
jsoncpp.cpp
Generating Code...
Lib:
C:\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\Lib.exe /OUT:"C:\Users\psidd\amazon-kinesis-video-stre
ams-producer-sdk-cpp\kinesis-video-native-build\Release\producer.lib" /NOLOGO /MACHINE:X64  /machine:x64 produ
cer.dir\Release\AuthIntegration.obj
producer.dir\Release\Callbacks.obj
producer.dir\Release\Client.obj
producer.dir\Release\ClientEvent.obj
producer.dir\Release\ClientState.obj
producer.dir\Release\InputValidator.obj
producer.dir\Release\State.obj
producer.dir\Release\AckParser.obj
producer.dir\Release\Stream.obj
producer.dir\Release\StreamEvent.obj
producer.dir\Release\StreamState.obj
producer.dir\Release\AivHeap.obj
producer.dir\Release\Common.obj
producer.dir\Release\Heap.obj
producer.dir\Release\HybridHeap.obj
producer.dir\Release\SystemHeap.obj
producer.dir\Release\MkvGenerator.obj
producer.dir\Release\MkvStatics.obj
producer.dir\Release\NalAdapter.obj
producer.dir\Release\SpsParser.obj
producer.dir\Release\TraceProfiler.obj
producer.dir\Release\Allocators.obj
producer.dir\Release\Base64.obj
producer.dir\Release\BitField.obj
producer.dir\Release\BitReader.obj
producer.dir\Release\Directory.obj
producer.dir\Release\DoubleLinkedList.obj
producer.dir\Release\DynamicLibrary.obj
producer.dir\Release\Endianness.obj
producer.dir\Release\FileIo.obj
producer.dir\Release\HashTable.obj
producer.dir\Release\Hex.obj
producer.dir\Release\Mutex.obj
producer.dir\Release\SingleLinkedList.obj
producer.dir\Release\StackQueue.obj
producer.dir\Release\String.obj
producer.dir\Release\Thread.obj
producer.dir\Release\Time.obj
producer.dir\Release\Logger.obj
producer.dir\Release\ContentView.obj
producer.dir\Release\KinesisVideoProducer.obj
producer.dir\Release\KinesisVideoStream.obj
producer.dir\Release\Auth.obj
producer.dir\Release\AwsV4Signer.obj
producer.dir\Release\CallbackProvider.obj
producer.dir\Release\CurlCallManager.obj
producer.dir\Release\DefaultCallbackProvider.obj
producer.dir\Release\OngoingStreamState.obj
producer.dir\Release\CachingEndpointOnlyCallbackProvider.obj
producer.dir\Release\DefaultDeviceInfoProvider.obj
producer.dir\Release\OpenSSLThreadCallbacks.obj
producer.dir\Release\Request.obj
producer.dir\Release\Response.obj
producer.dir\Release\StreamTags.obj
producer.dir\Release\Version.obj
producer.dir\Release\GetTime.obj
producer.dir\Release\CredentialProviderUtil.obj
producer.dir\Release\IotCertCredentialProvider.obj
producer.dir\Release\RotatingCredentialProvider.obj
producer.dir\Release\RotatingStaticCredentialProvider.obj
producer.dir\Release\PutFrameHelper.obj
producer.dir\Release\jsoncpp.obj
producer.vcxproj -> C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\Re
lease\producer.lib
FinalizeBuildStatus:
Deleting file "producer.dir\Release\producer.tlog\unsuccessfulbuild".
Touching "producer.dir\Release\producer.tlog\producer.lastbuildstate".
1>Done Building Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\p
roducer.vcxproj" (default targets).
Build succeeded.
   "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj" (defa
   ult target) (1) ->
   (ClCompile target) ->
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\client.cpp(733):
    warning C4101: 'pUploadHandleInfo': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-streams-pr
   oducer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\stream.cpp(295):
    warning C4101: 'i': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\k
   inesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\src\stream.cpp(1431)
   : warning C4244: '=': conversion from 'DOUBLE' to 'UINT64', possible loss of data [C:\Users\psidd\amazon-kinesis
   -video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (873): warning C4244: 'argument': conversion from '__int64' to 'UINT32', possible loss of data [C:\Users\psidd\a
   mazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (881): warning C4244: 'argument': conversion from '__int64' to 'UINT32', possible loss of data [C:\Users\psidd\a
   mazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (899): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-ki
   nesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (904): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-ki
   nesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (909): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-ki
   nesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (914): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-ki
   nesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (919): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-ki
   nesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (1088): warning C4101: 'i': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-streams-producer-sd
   k-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (1154): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-k
   inesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (1173): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-k
   inesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (1433): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-k
   inesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\src\mkvgenerator.cpp
   (1439): warning C4267: '=': conversion from 'size_t' to 'UINT32', possible loss of data [C:\Users\psidd\amazon-k
   inesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\cachingendpointonlycal
   lbackprovider.cpp(162): warning C4018: '<': signed/unsigned mismatch [C:\Users\psidd\amazon-kinesis-video-stream
   s-producer-sdk-cpp\kinesis-video-native-build\producer.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-producer\src\version.cpp(52): warni
   ng C4996: 'GetVersionExA': was declared deprecated [C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp
   \kinesis-video-native-build\producer.vcxproj]

17 Warning(s)
0 Error(s)

Time Elapsed 00:01:10.31
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>if ERRORLEVEL 1 goto :showerror
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>msbuild start.vcxproj  /p:Configuration=Release /p:Platform=x64 /m
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 2/16/2019 2:01:36 AM.
1>Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\start.vcxproj"
on node 1 (default targets).
1>Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\start.vcxproj"
(1) is building "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\ZERO_CH
ECK.vcxproj" (2) on node 1 (default targets).
2>InitializeBuildStatus:
Creating "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
All outputs are up-to-date.
FinalizeBuildStatus:
Deleting file "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
Touching "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
2>Done Building Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\Z
ERO_CHECK.vcxproj" (default targets).
1>Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\start.vcxproj"
(1) is building "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\produce
r.vcxproj" (3) on node 2 (default targets).
3>InitializeBuildStatus:
Creating "producer.dir\Release\producer.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
All outputs are up-to-date.
ClCompile:
All outputs are up-to-date.
Lib:
All outputs are up-to-date.
producer.vcxproj -> C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\Re
lease\producer.lib
FinalizeBuildStatus:
Deleting file "producer.dir\Release\producer.tlog\unsuccessfulbuild".
Touching "producer.dir\Release\producer.tlog\producer.lastbuildstate".
3>Done Building Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\p
roducer.vcxproj" (default targets).
1>PrepareForBuild:
Creating directory "start.dir\Release".
Creating directory "start.dir\Release\start.tlog".
InitializeBuildStatus:
Creating "start.dir\Release\start.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.

Compiling...
AvccNalAdapterTest.cpp
SpsParserTest.cpp
TraceApiFunctionalityTest.cpp
TraceApiTest.cpp
TraceTestFixture.cpp
BitField.cpp
BitReader.cpp
Directory.cpp
Thread.cpp
DoubleLinkedList.cpp
HashTable.cpp
IntegerToString.cpp
SingleLinkedList.cpp
StackQueue.cpp
StringToInteger.cpp
UtilTestFixture.cpp
ViewApiFunctionalityTest.cpp
ViewApiTest.cpp
ViewTestFixture.cpp
ProducerTestFixture.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
Generating Code...
Compiling...
main.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
ProducerApiTest.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
ProducerFunctionalityTest.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
TestDefaultCallbackProvider.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
Generating Code...
Link:
C:\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\Users\psidd\amazo
n-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\Release\start.exe" /INCREMENTAL:NO /NOLOGO
/LIBPATH:"C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/l
ocal/lib" /LIBPATH:"C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/do
wnloads/local/lib/Release" /LIBPATH:"C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-vide
o-native-build/downloads/curl-7.60.0/builds/libcurl-vc15-x64-release-static-sspi-winssl/lib" /LIBPATH:"C:/User
s/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/curl-7.60.0/builds/
libcurl-vc15-x64-release-static-sspi-winssl/lib/Release" /LIBPATH:"C:/Users/psidd/amazon-kinesis-video-streams
-producer-sdk-cpp/kinesis-video-native-build/downloads/gstreamer/1.0/x86_64/lib" /LIBPATH:"C:/Users/psidd/amaz
on-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/gstreamer/1.0/x86_64/lib/Releas
e" Release\producer.lib ws2_32.lib crypt32.lib Wldap32.lib Normaliz.lib libcurl_a.lib "downloads\log4cplus-1.2
.1\msvc10\x64\bin.Release\log4cplusS.lib" "downloads\openssl-OpenSSL_1_1_0f\OpenSSL\lib\libssl.lib" "downloads
\openssl-OpenSSL_1_1_0f\OpenSSL\lib\libcrypto.lib" "downloads\googletest-release-1.8.0\googletest\msvc\x64\Rel
ease\gtest.lib" kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib com
dlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:"C:/Us
ers/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/Release/start.pdb" /SUBSYST
EM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-c
pp/kinesis-video-native-build/Release/start.lib" /MACHINE:X64  /machine:x64 start.dir\Release\ClientApiFunctio
nalityTest.obj
start.dir\Release\ClientApiTest.obj
start.dir\Release\StreamPutGetTest.obj
start.dir\Release\ClientTestFixture.obj
start.dir\Release\StreamApiFunctionalityTest.obj
start.dir\Release\StreamApiServiceCallsTest.obj
start.dir\Release\StreamApiTest.obj
start.dir\Release\StreamDeviceTagsTest.obj
start.dir\Release\StreamParallelTest.obj
start.dir\Release\StreamStateTransitionsTest.obj
start.dir\Release\StreamTokenRotationTest.obj
start.dir\Release\HeapApiFunctionalityTest.obj
start.dir\Release\HeapApiTest.obj
start.dir\Release\HeapTestFixture.obj
start.dir\Release\HybridHeapTest.obj
start.dir\Release\MkvgenApiFunctionalityTest.obj
start.dir\Release\MkvgenApiTest.obj
start.dir\Release\MkvgenTestFixture.obj
start.dir\Release\AnnexBNalAdapterTest.obj
start.dir\Release\AnnexBCpdNalAdapterTest.obj
start.dir\Release\AvccNalAdapterTest.obj
start.dir\Release\SpsParserTest.obj
start.dir\Release\TraceApiFunctionalityTest.obj
start.dir\Release\TraceApiTest.obj
start.dir\Release\TraceTestFixture.obj
start.dir\Release\BitField.obj
start.dir\Release\BitReader.obj
start.dir\Release\Directory.obj
start.dir\Release\Thread.obj
start.dir\Release\DoubleLinkedList.obj
start.dir\Release\HashTable.obj
start.dir\Release\IntegerToString.obj
start.dir\Release\SingleLinkedList.obj
start.dir\Release\StackQueue.obj
start.dir\Release\StringToInteger.obj
start.dir\Release\UtilTestFixture.obj
start.dir\Release\ViewApiFunctionalityTest.obj
start.dir\Release\ViewApiTest.obj
start.dir\Release\ViewTestFixture.obj
start.dir\Release\ProducerTestFixture.obj
start.dir\Release\main.obj
start.dir\Release\ProducerApiTest.obj
start.dir\Release\ProducerFunctionalityTest.obj
start.dir\Release\TestDefaultCallbackProvider.obj
log4cplusS.lib(logger.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; ad
d /LTCG to the link command line to improve linker performance
Creating library C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/Re
lease/start.lib and object C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-b
uild/Release/start.exp
Generating code
Finished generating code
start.vcxproj -> C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\Relea
se\start.exe
FinalizeBuildStatus:
Deleting file "start.dir\Release\start.tlog\unsuccessfulbuild".
Touching "start.dir\Release\start.tlog\start.lastbuildstate".
1>Done Building Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\s
tart.vcxproj" (default targets).
Build succeeded.
   "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\start.vcxproj" (default
    target) (1) ->
   (ClCompile target) ->
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\tst\streamapifunctio
   nalitytest.cpp(1114): warning C4101: 'remaining': unreferenced local variable [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\start.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\tst\streamapifunctio
   nalitytest.cpp(1168): warning C4101: 'remaining': unreferenced local variable [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\start.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\client\tst\streamapifunctio
   nalitytest.cpp(1231): warning C4101: 'remaining': unreferenced local variable [C:\Users\psidd\amazon-kinesis-vid
   eo-streams-producer-sdk-cpp\kinesis-video-native-build\start.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\tst\mkvgenapitest.cp
   p(205): warning C4101: 'timestamp': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-streams-pro
   ducer-sdk-cpp\kinesis-video-native-build\start.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-pic\src\mkvgen\tst\mkvgenapitest.cp
   p(203): warning C4101: 'testBuf': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-streams-produ
   cer-sdk-cpp\kinesis-video-native-build\start.vcxproj]

5 Warning(s)
0 Error(s)

Time Elapsed 00:01:49.31
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>if ERRORLEVEL 1 goto :showerror
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>msbuild kinesis_video_gstreamer_sample_app.vcxproj  /p:Configuration=Release /p:Platform=x64 /m
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 2/16/2019 2:03:26 AM.
1>Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\kinesis_video_g
streamer_sample_app.vcxproj" on node 1 (default targets).
1>Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\kinesis_video_g
streamer_sample_app.vcxproj" (1) is building "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kines
is-video-native-build\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
2>InitializeBuildStatus:
Creating "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
All outputs are up-to-date.
FinalizeBuildStatus:
Deleting file "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
Touching "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
2>Done Building Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\Z
ERO_CHECK.vcxproj" (default targets).
1>Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\kinesis_video_g
streamer_sample_app.vcxproj" (1) is building "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kines
is-video-native-build\producer.vcxproj" (3) on node 2 (default targets).
3>InitializeBuildStatus:
Creating "producer.dir\Release\producer.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
All outputs are up-to-date.
ClCompile:
All outputs are up-to-date.
Lib:
All outputs are up-to-date.
producer.vcxproj -> C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\Re
lease\producer.lib
FinalizeBuildStatus:
Deleting file "producer.dir\Release\producer.tlog\unsuccessfulbuild".
Touching "producer.dir\Release\producer.tlog\producer.lastbuildstate".
3>Done Building Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\p
roducer.vcxproj" (default targets).
1>PrepareForBuild:
Creating directory "kinesis_video_gstreamer_sample_app.dir\Release".
Creating directory "kinesis_video_gstreamer_sample_app.dir\Release\kinesis_.1B79C50E.tlog".
InitializeBuildStatus:
Creating "kinesis_video_gstreamer_sample_app.dir\Release\kinesis_.1B79C50E.tlog\unsuccessfulbuild" because "Al
waysCreate" was specified.
ClCompile:
C:\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\CL.exe /c /I"C:\Users\psidd\amazon-kinesis-video-strea
ms-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic" /I"C:\Users\psidd\amazon-kinesis-video-st
reams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\client\include" /I"C:\Users\psidd\a
mazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\client\includ
e\com\amazonaws\kinesis\video\client" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-
video-native-build..\kinesis-video-pic\src\client\src" /I"C:\Users\psidd\amazon-kinesis-video-streams-produce
r-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\client\tst" /I"C:\Users\psidd\amazon-kinesis-vid
eo-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\common\include" /I"C:\Users\ps
idd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\common\i
nclude\com\amazonaws\kinesis\video\common" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kin
esis-video-native-build..\kinesis-video-pic\src\heap\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-
producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\heap\include\com\amazonaws\kinesis\video
heap" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-vi
deo-pic\src\heap\src" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-bui
ld..\kinesis-video-pic\src\heap\tst" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-
video-native-build..\kinesis-video-pic\src\trace\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-prod
ucer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\mkvgen\include" /I"C:\Users\psidd\amazon-kine
sis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\mkvgen\include\com\amaz
onaws\kinesis\video\mkvgen" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-nati
ve-build..\kinesis-video-pic\src\mkvgen\src" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp
kinesis-video-native-build..\kinesis-video-pic\src\mkvgen\tst" /I"C:\Users\psidd\amazon-kinesis-video-streams
-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\view\include" /I"C:\Users\psidd\amazon-k
inesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\view\include\com\ama
zonaws\kinesis\video\view" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-nativ
e-build..\kinesis-video-pic\src\view\src" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kin
esis-video-native-build..\kinesis-video-pic\src\view\tst" /I"C:\Users\psidd\amazon-kinesis-video-streams-prod
ucer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\utils\include" /I"C:\Users\psidd\amazon-kines
is-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pic\src\utils\src" /I"C:\Users\p
sidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-producer\src" /
I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-pro
ducer\opensource\jsoncpp" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native
-build..\kinesis-video-producer\tst" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-
video-native-build..\kinesis-video-producer\src\credential-providers" /I"C:\Users\psidd\amazon-kinesis-video-
streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-producer\src\common" /I"C:\Users\psidd\am
azon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build..\kinesis-video-producer-jni\src\inclu
de" /I\System\Library\Frameworks\JavaVM.framework\Versions\Current\Headers /I"C:\Program Files\Java\jdk1.8.0_1
71\include" /I"C:\Program Files\Java\jdk1.8.0_171\include\windows" /I"C:\Program Files\Java\jdk1.8.0_171\inclu
de\win32" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads
\googletest-release-1.8.0\googletest\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp
kinesis-video-native-build\downloads\log4cplus-1.2.1\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-p
roducer-sdk-cpp\kinesis-video-native-build\downloads\curl-7.60.0\builds\libcurl-vc15-x64-release-static-sspi-w
inssl\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\down
loads\openssl-OpenSSL_1_1_0f\OpenSSL\include" /I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp
kinesis-video-native-build\downloads\gstreamer\1.0\x86_64\include\gstreamer-1.0" /I"C:\Users\psidd\amazon-kine
sis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads\gstreamer\1.0\x86_64\include\glib-2.0"
/I"C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads\gstreame
r\1.0\x86_64\lib\glib-2.0\include" /nologo /W3 /WX- /diagnostics:classic /O2 /Ob2 /D WIN32 /D _WINDOWS /D NDEB
UG /D CURL_STATICLIB /D WIN32_LEAN_AND_MEAN /D VC_EXTRALEAN /D _HAS_ITERATOR_DEBUGGING=0 /D _CRT_SECURE_NO_WAR
NINGS /D _CRT_NONSTDC_NO_WARNINGS /D _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING /D "CMAKE_INTDIR="Release""
/D _MBCS /Gm- /EHsc /MT /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /std:c++14 /Fo"kinesis_video_g
streamer_sample_app.dir\Release\" /Fd"kinesis_video_gstreamer_sample_app.dir\Release\vc141.pdb" /Gd /TP /FC /
errorReport:queue "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-gst-demo\kinesis
video_gstreamer_sample_app.cpp"
kinesis_video_gstreamer_sample_app.cpp
You are not using DLL C run time library. You must call log4cplus::initialize() once before you use any other
log4cplus API.
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-gst-demo\kinesis_video_gstreamer_samp
le_app.cpp(360): warning C4244: '=': conversion from 'double' to 'uint32_t', possible loss of data [C:\Users\psi
dd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\kinesis_video_gstreamer_sample_app.v
cxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-gst-demo\kinesis_video_gstreamer_samp
le_app.cpp(1031): warning C4101: 'err': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-streams
-producer-sdk-cpp\kinesis-video-native-build\kinesis_video_gstreamer_sample_app.vcxproj]
1>c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-gst-demo\kinesis_video_gstreamer_samp
le_app.cpp(1097): warning C4101: 'err': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-streams
-producer-sdk-cpp\kinesis-video-native-build\kinesis_video_gstreamer_sample_app.vcxproj]
Link:
C:\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\Users\psidd\amazo
n-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\Release\kinesis_video_gstreamer_sample_app
.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-v
ideo-native-build/downloads/local/lib" /LIBPATH:"C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/
kinesis-video-native-build/downloads/local/lib/Release" /LIBPATH:"C:/Users/psidd/amazon-kinesis-video-streams-
producer-sdk-cpp/kinesis-video-native-build/downloads/curl-7.60.0/builds/libcurl-vc15-x64-release-static-sspi-
winssl/lib" /LIBPATH:"C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/
downloads/curl-7.60.0/builds/libcurl-vc15-x64-release-static-sspi-winssl/lib/Release" /LIBPATH:"C:/Users/psidd
/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/gstreamer/1.0/x86_64/lib"
/LIBPATH:"C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/gs
treamer/1.0/x86_64/lib/Release" Release\producer.lib "gstreamer-1.0.lib" "gstapp-1.0.lib" "gobject-2.0.lib" "g
lib-2.0.lib" ws2_32.lib crypt32.lib Wldap32.lib Normaliz.lib libcurl_a.lib "downloads\log4cplus-1.2.1\msvc10\x
64\bin.Release\log4cplusS.lib" "downloads\openssl-OpenSSL_1_1_0f\OpenSSL\lib\libssl.lib" "downloads\openssl-Op
enSSL_1_1_0f\OpenSSL\lib\libcrypto.lib" "downloads\googletest-release-1.8.0\googletest\msvc\x64\Release\gtest.
lib" kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib a
dvapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:"C:/Users/psidd/a
mazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/Release/kinesis_video_gstreamer_sample
app.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/Users/psidd/amazon-kinesis-video-stre
ams-producer-sdk-cpp/kinesis-video-native-build/Release/kinesis_video_gstreamer_sample_app.lib" /MACHINE:X64
/machine:x64 kinesis_video_gstreamer_sample_app.dir\Release\kinesis_video_gstreamer_sample_app.obj
log4cplusS.lib(logger.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; ad
d /LTCG to the link command line to improve linker performance
Creating library C:/Users/psidd/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/Re
lease/kinesis_video_gstreamer_sample_app.lib and object C:/Users/psidd/amazon-kinesis-video-streams-producer-s
dk-cpp/kinesis-video-native-build/Release/kinesis_video_gstreamer_sample_app.exp
Generating code
Finished generating code
kinesis_video_gstreamer_sample_app.vcxproj -> C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kin
esis-video-native-build\Release\kinesis_video_gstreamer_sample_app.exe
FinalizeBuildStatus:
Deleting file "kinesis_video_gstreamer_sample_app.dir\Release\kinesis.1B79C50E.tlog\unsuccessfulbuild".
Touching "kinesis_video_gstreamer_sample_app.dir\Release\kinesis.1B79C50E.tlog\kinesis_video_gstreamer_sample
_app.lastbuildstate".
1>Done Building Project "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\k
inesis_video_gstreamer_sample_app.vcxproj" (default targets).
Build succeeded.
   "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\kinesis_video_gstreamer
   _sample_app.vcxproj" (default target) (1) ->
   (ClCompile target) ->
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-gst-demo\kinesis_video_gstreamer_sa
   mple_app.cpp(360): warning C4244: '=': conversion from 'double' to 'uint32_t', possible loss of data [C:\Users\p
   sidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\kinesis_video_gstreamer_sample_app
   .vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-gst-demo\kinesis_video_gstreamer_sa
   mple_app.cpp(1031): warning C4101: 'err': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-strea
   ms-producer-sdk-cpp\kinesis-video-native-build\kinesis_video_gstreamer_sample_app.vcxproj]
     c:\users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-gst-demo\kinesis_video_gstreamer_sa
   mple_app.cpp(1097): warning C4101: 'err': unreferenced local variable [C:\Users\psidd\amazon-kinesis-video-strea
   ms-producer-sdk-cpp\kinesis-video-native-build\kinesis_video_gstreamer_sample_app.vcxproj]

3 Warning(s)
0 Error(s)

Time Elapsed 00:00:14.91
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>if ERRORLEVEL 1 goto :showerror
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>msbuild kinesis_video_gstreamer_sample_rtsp_app.vcxproj  /p:Configuration=Release /p:Platform=x64 /m
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
MSBUILD : error MSB1009: Project file does not exist.
Switch: kinesis_video_gstreamer_sample_rtsp_app.vcxproj
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>if ERRORLEVEL 1 goto :showerror
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>cd "C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads.."
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>echo Build error occurred! Please delete related directories in downloads\ to start a clean build.
Build error occurred! Please delete related directories in downloads\ to start a clean build.
C:\Users\psidd\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build>exit /b1

Hi @sujithaperumal ,
Can you remove these two lines from windows-install-script-with-perl.bat and rerun? We will update the install script soon. Thanks.
msbuild kinesis_video_gstreamer_sample_rtsp_app.vcxproj  /p:Configuration=Release /p:Platform=%BUILD_BITNESS_TYPE% /m
if ERRORLEVEL 1 goto :showerror

@zhiyua-git It worked!Thanks much!

Hi @zhiyua-git,
My video streams successfully to the kinesis video stream. Is it possible to store the streaming video in S3?

@zhiyua-git ,
when I try to run the gst-launch-1.0 command in order to send video to the stream, I'm getting this below error
'gst-launch-1.0' is not recognized as an internal or external command,
operable program or batch file.

@sujithaperumal Have you set environment variables as mentioned in step 1 here? https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/install-instructions-windows-msvc.md#running-the-sample-demo-applications-to-stream-video-to-kinesis-video-streams
For your question about storing video to S3, can you provide more information about your use case? Kinesis Video provides video storage itself and you can retrieve the video in retention window through our consumption APIs.

Yes I did and this is what I get when I try to run the gst-launch-1.0 command. The command worked perfectly well the day before.

As for storing video to s3, I want to detect objects in a video. I didn't know how to detect objects in a live streaming video. So if I could store the video in s3, I can then use rekognition to detect objects. You also told me that you could use Amazon sagemaker to detect objects and when I tried that option, my sagemaker endpoint gets failed to create due to exec: "serve": executable file not found in $PATH error.

I didn't know how to detect objects in a live streaming video.

We have two offerings here,

https://docs.aws.amazon.com/rekognition/latest/dg/streaming-video.html
You can also use your own ML model via SageMaker - https://aws.amazon.com/blogs/machine-learning/analyze-live-video-at-scale-in-real-time-using-amazon-kinesis-video-streams-and-amazon-sagemaker/

@sujithaperumal , regarding the gst-launch failure. This simply means that Windows command prompt couldn't find a built-in command or an executable by that name in its standard path. Have you followed the following: https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/install-instructions-windows-msvc.md#running-the-sample-demo-applications-to-stream-video-to-kinesis-video-streams
You might need to add the path to your %PATH% variable

@MushMal Thanks! It worked!

@vijaygj I tried the second option and I get exec: "serve": executable file not found in $PATH error when trying to create the sagemaker endpoint

@sujithaperumal
for error
"serve": executable file not found in $PATH error when trying to create the sagemaker endpoint

Where did you get this error? If SageMaker endpoint creation failing, we would suggest you consulting with SageMaker team.

Closing the issue as the question  has been answered. Please reopen or create new issue as needed. Thanks


can't install

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project mslinks: Fatal error compiling

Can you maybe paste the entire build log?

i closed cas i can found proper dependency form your git

com.github.vatbub
mslinks
<IP_ADDRESS>

i used not proper dependency


Added Named Values support for Creator

Added support for Named Values within the yaml config files used by the Creator.
Followed definition in Microsoft Docs and reused elements from the extractor when possible.
I added and updated tests for the Properties and I have validated that I was able to deploy multiple defined Named Values with some being secrets and having tags.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: rawrspace sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@rawrspace Good work!


Chrome blocks scripting into gallery by extension

Gallery ( https://chrome.google.com/webstore/* ) is blacklisted by Google Chrome.
http://stackoverflow.com/questions/11613371/chrome-extension-content-script-on-https-chrome-google-com-webstore

Please check English message: Sorry, this page cannot gyazo because blocked by Chrome. Please use native application.

@pastak Here is my edit:
"Sorry, capturing with an extension is blocked on this page by Chrome. Please use the native Gyazo desktop application."

Thanks for install. Let\'s gyazo on newtab!

LGTM


Configure automatic upgrading of bpmn-io dependencies

What shall we do

[ ] Add a dependabot configuration that automatically proposes dependency bumps on bpmn-io* deps

Closed via https://github.com/camunda/camunda-bpmn-js-behaviors/commit/c546d7b008086f06ce4a491e141e18ec73e6da3a


How to deleting message from queue manually?

Can you please explain how we can delete messages manually? I went through the complete library code, but I didn't find any implementation for deleting the message from the SQS queue.

This library only provides a way to consume and produce SQS messages at this time. I will consider to implement the feature that we can access to the underlying SQS client.
In the meanwhile, since you should provide a SQSClient, which @aws-sdk/client-sqs library has, you can do what you want to do with direct access of the client object.


Resolve selectively based on include/exclude/files in tsconfig.json

Path resolutions should only apply to files that match the include, exclude, or files options.

Both include and exclude are now supported.
Released in v3.2.0

Closing. If someone wants files to be supported, please open a PR.


Redis is down in staging

Honeybadger reported that Redis is down in staging (https://app.honeybadger.io/projects/113559/faults/104742469) and we noticed that it stayed down for hours. Still is down.
We need to figure out how to restart it and how to make sure it restarts on its own if it goes down again.
We also noticed that Redis was down for PDC Describe (https://app.honeybadger.io/projects/99214/faults/102905699) and we think this might be related but given that each server runs its own Redis locally that might not be the case.
Acceptance criteria:

[ ] run the new playbook on tigerdata-staging1 /2 & tigerdata-prod1 /2

Looking in the logs redis shut down for some odd reason.  It looks like something shut it down...
57370:signal-handler<PHONE_NUMBER>) Received SIGTERM scheduling shutdown...
57370:M 26 Feb 2024 12:24:36.034 * User requested shutdown...
57370:M 26 Feb 2024 12:24:36.034 * Saving the final RDB snapshot before exiting.
57370:M 26 Feb 2024 12:24:36.044 * DB saved on disk
57370:M 26 Feb 2024 12:24:36.044 * Removing the pid file.
57370:M 26 Feb 2024 12:24:36.044 # Redis is now ready to exit, bye bye...

Prod had the same issue this morning
31554:signal-handler<PHONE_NUMBER>) Received SIGTERM scheduling shutdown...
31554:M 27 Feb 2024 12:09:34.351 * User requested shutdown...
31554:M 27 Feb 2024 12:09:34.351 * Saving the final RDB snapshot before exiting.
31554:M 27 Feb 2024 12:09:34.360 * DB saved on disk
31554:M 27 Feb 2024 12:09:34.360 * Removing the pid file.
31554:M 27 Feb 2024 12:09:34.360 # Redis is now ready to exit, bye bye...

@carolyncole restarted the redis server on each box with the following command
sudo service redis-server restart

Francis noted that until recently our redis did not automatically restarted on reboot: https://github.com/pulibrary/princeton_ansible/pull/4629.

We also ran to make sure it was enabled as a service
sudo systemctl enable redis-server

This can be closed one this has been implemented: https://github.com/pulibrary/princeton_ansible/issues/4707

Ran this code on staging and prod machines https://github.com/pulibrary/princeton_ansible/pull/4711


[DOCFIX] Use our own hosted strapdown script for REST docs

What changes are proposed in this pull request?
Hosting strapdown script ourselves since the link we were originally relying on is not available anymore. This script is used to help create styled doc pages in Markdown.
Why are the changes needed?
https://strapdownjs.com/v/0.2/strapdown.js is no longer available.
Does this PR introduce any user facing changes?
REST docs

alluxio-bot, merge this please

alluxio-bot, cherry-pick this to release-2.8.1 please


Geocoder.Providers.Fake returns {:error, nil} when nothing is found on call_list/1

Current behaviour
Geocoder.Providers.Fake returns {:error, nil} when nothing is found on call_list/1.
Expected behaviour
Geocoder.Providers.Fake should returns {:ok, []} when nothing is found on call_list/1.

Interesting, happy to accept a PR here!

I will take a look at this this week.

Done!

@CyrusNuevoDia what MR fixes it?

@epinault i pushed to main

I see. You got the wrong version released. Does not match the bump I had done my changelog and my MR for you to just run


3d tiles

@dabiaoluo did you mean to open this pull request? The 3d-tiles branch will not be ready until the 3D Tiles spec is ready.


added RR, reorged prereg section

@demidenm please review

outside of a couple minor things, looks good to me.


Important | Trojan:Win32/Bluteal.B1rfn found in mattermost.exe

Hi,
System Center Endpoint Protection raised an alarm today reporting that there's a trojan in the installed mattermost.exe (see screenshot attached).
Is this a faulty alarm, that is, Mattermost/Electron is using some lib commonly used by trojans too or a serious threat?

I'm not able to provide further information about the .exe itself, because it's in the quarantine and windows won't let accessing it.
The installer was mattermost-setup-4.0.1-win64.exe
Now trying with mattermost-setup-4.1.2-win64.exe
BR,
/riverman

Update:
Multiple people have reported the same issue with version *-4.0.1-win64.exe
Looks like, version mattermost-setup-4.1.2-win64.exe solves the issue, but the true reason is still unknown.

I got alerts for v4.0.1 from Windows Defender. We submitted correction to Microsoft, so the alerts should be no longer raised.
Definition version: 1.269.1577.0
If you're still seeing it, please let us know.

Hello,
I am on 4.1.2 and just got this warning

(You may ask me for translation :b)

I'll just reinstall mattermost and see if the warning continues.

Here I am again~
I actively checked C:\Users\morgy\AppData\Local\mattermost\ after reinstall and no threat was found.

¯\(ツ)/¯
Seems fixed then.


Problem differentiating through solver.run in OptaxSolver

I've been trying to use OptaxSolver to perform a simple function minimization, since I want to differentiate through it's solution (the fixed point of the solver), but ran into an issue I'm not familiar with.
Here's a MWE for the error message:
import jax
import jax.scipy as jsp
from jaxopt import OptaxSolver
import optax

def pipeline(param_for_grad, data):
    def to_minimize(latent):
        return -jsp.stats.norm.logpdf(data, loc=param_for_grad*latent, scale=1)

    solver = OptaxSolver(fun=to_minimize, opt=optax.adam(3e-4), implicit_diff=True)

    initial, _ = solver.init(init_params = 5.)

    result, _ = solver.run(init_params = initial)

    return result

jax.value_and_grad(pipeline)(2., data=6.)

which yields this error:
CustomVJPException: Detected differentiation of a custom_vjp function with respect to a closed-over value. That isn't supported because the custom VJP rule only specifies how to differentiate the custom_vjp function with respect to explicit input parameters. Try passing the closed-over value into the custom_vjp function as an argument, and adapting the custom_vjp fwd and bwd rules.

My versions are:
jax==0.2.20
jaxlib==0.1.71
jaxopt==0.0.1
optax==0.0.9

Am I doing something very silly? I guess I'm also wondering if this example within the scope of the solver API? I noticed that this doesn't occur with solver.update, just with solver.run.
Thanks :)

Hi,
I think only a couple of small changes we'd needed.
To use implicit differentiation with solver.run, you should (1) expose the args with respect to which you'd like to differentiate the solver's solution explicitly in the signature of fun and (2) avoid using keyword arguments in the call to solver.run.
In your MWE:
def pipeline(param_for_grad, data):
    def to_minimize(latent, param_for_grad):
        return -jsp.stats.norm.logpdf(data, loc=param_for_grad*latent, scale=1)

    solver = OptaxSolver(fun=to_minimize, opt=optax.adam(5e-2), implicit_diff=True)

    initial, _ = solver.init(init_params = 5.)

    result, _ = solver.run(initial, param_for_grad)

    return result

jax.value_and_grad(pipeline)(2., data=6.)

P.S. I also made a small change to the learning rate so that Adam converges in this example with the default maximum number of steps.

Thanks @phinate for the question and @fllinares for the answer!
Indeed, as Felipe explained, your param_for_grad was in the scope (this is what is meant by closed-over value) but it wasn't an explicit argument of run.
By the way, since run calls init for you, the line

initial, _ = solver.init(init_params = 5.)

is not needed. You can just set initial = 5 and then call run(initial, params_for_grad).

We are working on a documentation, hopefully these things will become clearer soon.

Thanks both @mblondel & @fllinares for your replies, and the helpful information!
I'm struggling a little with this because the suggestion of moving param_for_grad into the to_minimize call explicitly is a bit cumbersome for my use case; the way I'm actually making this objective function looks more like:

def setup_objective(param_for_grad, **kwargs):
    to_minimize = complicated_function(param_for_grad, **kwargs)
    return to_minimize

def pipeline(param_for_grad, **kwargs):
    obj = setup_objective(param_for_grad, **kwargs)
    solver = OptaxSolver(fun=to_minimize, opt=optax.adam(5e-2), implicit_diff=True)
    ... etc ...
    return result

To parametrize directly with param_for_grad would mean that I would have to construct the objective via complicated_function every time it was called in the minimization loop, when strictly this doesn't change with respect to param_for_grad during the minimization.
Am I missing something here in terms of nicely setting up this problem? Or for implicit diff, do I really need to be explicit in the way you described, even though param_for_grad is only used in the construction of the objective, and not for it's evaluation?
Thanks again for the quick response earlier, and sorry if this is somehow unclear!

We decided to use explicit variables because with closed-over-variables there is no way to tell which need to be differentiated and which don't. This is problematic if you have several big variables in your scope, such as data matrices.

By the way, you can also take a look at jax.lax.custom_root, which supports closed-over-variable. CC @shoyer

thanks @mblondel - is this something that could be in scope for jaxpot later on to add closed-over variables?  We can certainly provide metadata which variables require diffing and which don't

Could you sketch how this would look like on the user side?

could we co-opt the static_args-like API for this.
def pipeline(param_for_grad, data):
    def to_minimize(latent, param_for_grad):
        return -jsp.stats.norm.logpdf(data, loc=param_for_grad*latent, scale=1)

    solver = OptaxSolver(fun=to_minimize, opt=optax.adam(5e-2), implicit_diff=True)

    initial, _ = solver.init(init_params = 5.)

    result, _ = solver.run(initial, param_for_grad)

    return result

pipeline = jaxopt.annotate(pipeline, diff_args = (0,))

jax.value_and_grad(pipeline)(2., data=6.)

We could support handling closed-over-variables via jax.closure_convert (like jax.lax.custom_root), but the tradeoff is that it requires tracing Python functions to a JAXpr. This means you can't do dynamic control flow/debugging with Python.
The ideal solution would probably be either to (1) encourage users to use closure_convert themselves, or (2) possibly add an optional argument to allow for opting into automatic closure conversion, e.g., closure_convert=True.

thanks @shoyer - can we use clcosure_convert now to achieve the desired behavior?

Hi again all -- we followed @shoyer's suggestion of using jax.closure_convert using a function pretty much ripped from the jax docs:
def _minimize(objective_fn, lhood_pars, lr):
        converted_fn, aux_pars = jax.closure_convert(objective_fn, lhood_pars)
        # aux_pars seems to be empty, took that line from docs example
        solver = OptaxSolver(fun=converted_fn, opt=optax.adam(lr), implicit_diff=True)
        return solver.run(lhood_pars, *aux_pars)[0]

where objective_fn is usually created on-the-fly with the aforementioned setup_objective function.
Using this does allow autodiff with no errors, but we encounter a pretty substantial slowdown compared to wrapping an equivalent Adam optimiser using this more explicit implementation of the two-phase method. We were hoping to transition away from this in the interest of keeping up with jax releases and other software that also follows jax, as well as the far more active effort in jaxopt.
As a side note, we do have an additional performance bottleneck coming from external software constraints that is hard to decorrelate from the change to jaxopt (lack of ability to JIT some parts of the pipeline due to changing jax version), but based on comparisons removing the JIT from the old program, I don't think it's nearly enough to explain the ~10x slowdown.
Is there any expected drop in performance from using closure_convert, perhaps given my previous statements on the complexity of the setup_objective function?

Closure conversion relies on JAX’s jaxpr interpreter, which is much slower
than Python’s interpreter. If you can’t JIT the entire thing, that probably
explains the performance slow down.
On Sun, Oct 10, 2021 at 4:58 AM Nathan Simpson @.***>
wrote:

Hi again all -- we followed @shoyer https://github.com/shoyer's
suggestion of using jax.closure_convert using a function pretty much
ripped from the jax docs:
def _minimize(objective_fn, lhood_pars, lr):
converted_fn, aux_pars = jax.closure_convert(objective_fn, lhood_pars)
# aux_pars seems to be empty, took that line from docs example
solver = OptaxSolver(fun=converted_fn, opt=optax.adam(lr), implicit_diff=True)
return solver.run(lhood_pars, *aux_pars)[0]
where objective_fn is usually created on-the-fly with the aforementioned
setup_objective function.
Using this does allow autodiff with no errors, but we encounter a pretty
substantial slowdown compared to wrapping an equivalent Adam optimiser
using this more explicit implementation of the two-phase method
https://github.com/gehring/fax/blob/1bc0f4ddf4f0d54370b0c04282de49aa85685791/fax/implicit/twophase.py#L79.
We were hoping to transition away from this in the interest of keeping up
with jax releases and other software that also follows jax, as well as
the far more active effort in jaxopt.
As a side note, we do have an additional performance bottleneck coming
from external software constraints that is hard to decorrelate from the
change to jaxopt (lack of ability to JIT some parts of the pipeline due
to changing jax version), but based on comparisons removing the JIT from
the old program, I don't think it's nearly enough to explain the ~10x
slowdown.
Is there any expected drop in performance from using closure_convert,
perhaps given my previous statements on the complexity of the
setup_objective function?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/google/jaxopt/issues/31#issuecomment-939469490, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJJFVUS4EAJRU62MJAD5H3UGF5XDANCNFSM5EGS4IYA
.

Any follow up on this? Does your objective seem decomposable in the way I describe?

Have just thought about this a bit -- I'm not 100% if this would work, but one potential resolution to this for us in terms of decomposing the problem could be to build our statistical model (expensive boilerplate) from which we want to call a logpdf method, and then construct the objective like this
def pipeline(param_for_grad):
    res = model(param_for_grad)

    def objective_fun(params, model):
      return model.logpdf(params)

    solver = OptaxSolver(fun=objective_fun, opt=optax.adam(5e-2), implicit_diff=True)
    return solver.run(init_params, model=model).params

jax.jacobian(pipeline)(param_for_grad)

Provided this model was registered as a pytree, do you think this would resolve the problem? It's not something we've implemented, but could be if this would work.

Just an update on this: we've managed to get the jit working on our side with closure_convert, and we see the performance recover, so @shoyer got it right on that count despite my (incorrect) assumption, so thanks!
If it's helpful, I'd be happy to summarise this thread as a small entry into the documentation via a PR @mblondel, since it could come up again for other users with similar use cases.
Thanks both for the fast and attentive help!

What would the code snippet look like?

hi again, sorry to resurrect this from the dead -- my solution that uses closure_convert randomly started leaking tracers, with one of the jax/jaxlib updates and it's a bit of a nightmare to debug. Luckily, I found a fairly simple MWE:

from functools import partial

import jax
import jax.numpy as jnp
import jaxopt
import optax

# dummy model for test purposes
class Model:
    x: jax.Array
    def __init__(self, x) -> None:
        self.x = x
    def logpdf(self, pars, data):
        return jnp.sum(pars*data*self.x)

@partial(jax.jit, static_argnames=["objective_fn"])
def _minimize(
    objective_fn,
    init_pars,
    lr,
):
    # this is the line added from our discussion above
    converted_fn, aux_pars = jax.closure_convert(objective_fn, init_pars)
    # aux_pars seems to be empty -- would have assumed it was the closed-over vals or similar?
    solver = jaxopt.OptaxSolver(
        fun=converted_fn, opt=optax.adam(lr), implicit_diff=True, maxiter=5000
    )
    return solver.run(init_pars, *aux_pars)[0]

@partial(jax.jit, static_argnames=["model"])
def fit(
    data,
    model,
    init_pars,
    lr = 1e-3,
):
    def fit_objective(pars):
        return -model.logpdf(pars, data)

    fit_res = _minimize(fit_objective, init_pars, lr)
    return fit_res

def pipeline(x):
    model = Model(x)
    mle_pars = fit(
        model=model,
        data=jnp.array([5.0, 5.0]),
        init_pars=jnp.array([1.0, 1.1]),
        lr=1e-3,
    )
    return mle_pars

jax.jacrev(pipeline)(jnp.asarray(0.5))

Another thing to note: the jaxpr tracing induced by closure_convert seems to really fill up the cache, which made this quite problematic in practice (I had to use @patrick-kidger's hack from this JAX issue). Just a health warning for anyone else interested in this type of solution!
I can't see an immediate way, but if we could cast this example into the form you referenced above with the decomposed derivatives, that would be the best way to get around this issue (i.e. avoid closure_convert altogether).

I explored this a bit, and my particular workflow here was made possible if one makes the Model class a Pytree, which allows me to feed in the model as an explicit argument to the objective function while keeping jit across the optimization procedure.  I think this also means that the relevant parameters for grad are no longer closed over, since the Pytree contains that information.

import jax
import jax.numpy as jnp
import jax.scipy as jsp
import jaxopt
import optax
from simple_pytree import Pytree

# dummy model for test purposes
class Model(Pytree):
    x: jax.Array
    def __init__(self, x) -> None:
        self.x = x
    def logpdf(self, pars, data):
        return jsp.stats.norm.logpdf(data, loc=pars*self.x, scale=1.0).sum()

@jax.jit
def pipeline(param_for_grad):
    data=jnp.array([5.0, 5.0])
    init_pars=jnp.array([1.0, 1.1])
    lr=1e-3

    model = Model(param_for_grad)

    def fit(pars, model, data):
        def fit_objective(pars, model, data):
            return -model.logpdf(pars, data)

        solver = jaxopt.OptaxSolver(
            fun=fit_objective, opt=optax.adam(lr), implicit_diff=True, maxiter=5000
        )
        return solver.run(init_pars, model=model, data=data)[0]

    return fit(init_pars, model, data)

jax.jacrev(pipeline)(jnp.asarray(0.5))
# > Array([-1.33830826e+01,  7.10542736e-15], dtype=float64, weak_type=True)

Don't know if there's another potential issue above that i'm smearing over with this approach, but it works without closure_convert! It may be hard to coerce a complicated model into a Pytree, but that's possibly something for us to worry more about.

I think you're doing the right thing by making the model a PyTree, i.e. I don't think you're smearing over any issue.
This is the same approach Equinox uses ubiquitously, and this handles all the complexity of Diffrax just fine!