diff --git a/SMP/config.asm b/SMP/config.asm
index 31392b44fcff3584ae62ad96f09314d94cfcb64c..40e110919100112838381c5e8a8ad760b50d8f17 100644
--- a/SMP/config.asm
+++ b/SMP/config.asm
@@ -452,6 +452,7 @@
%define CONFIG_LIBBS2B 0
%define CONFIG_LIBCACA 0
%define CONFIG_LIBCELT 0
+%define CONFIG_LIBCODEC2 0
%define CONFIG_LIBDC1394 0
%define CONFIG_LIBDRM 0
%define CONFIG_LIBFLITE 0
@@ -1166,6 +1167,7 @@
%define CONFIG_QDMC_AT_DECODER 0
%define CONFIG_QDM2_AT_DECODER 0
%define CONFIG_LIBCELT_DECODER 0
+%define CONFIG_LIBCODEC2_DECODER 0
%define CONFIG_LIBFDK_AAC_DECODER 0
%define CONFIG_LIBGSM_DECODER 0
%define CONFIG_LIBGSM_MS_DECODER 0
@@ -1355,6 +1357,7 @@
%define CONFIG_ILBC_AT_ENCODER 0
%define CONFIG_PCM_ALAW_AT_ENCODER 0
%define CONFIG_PCM_MULAW_AT_ENCODER 0
+%define CONFIG_LIBCODEC2_ENCODER 0
%define CONFIG_LIBFDK_AAC_ENCODER 0
%define CONFIG_LIBGSM_ENCODER 0
%define CONFIG_LIBGSM_MS_ENCODER 0
@@ -1423,6 +1426,8 @@
%define CONFIG_HEVC_VAAPI_HWACCEL 0
%define CONFIG_HEVC_VDPAU_HWACCEL 0
%define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0
+%define CONFIG_MJPEG_NVDEC_HWACCEL 1
+%define CONFIG_MJPEG_VAAPI_HWACCEL 0
%define CONFIG_MPEG1_NVDEC_HWACCEL 1
%define CONFIG_MPEG1_VDPAU_HWACCEL 0
%define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
@@ -1499,6 +1504,7 @@
%define CONFIG_VP9_PARSER 1
%define CONFIG_XMA_PARSER 1
%define CONFIG_ALSA_INDEV 0
+%define CONFIG_ANDROID_CAMERA_INDEV 0
%define CONFIG_AVFOUNDATION_INDEV 0
%define CONFIG_BKTR_INDEV 0
%define CONFIG_DECKLINK_INDEV 0
@@ -1941,6 +1947,8 @@
%define CONFIG_CDG_DEMUXER 1
%define CONFIG_CDXL_DEMUXER 1
%define CONFIG_CINE_DEMUXER 1
+%define CONFIG_CODEC2_DEMUXER 1
+%define CONFIG_CODEC2RAW_DEMUXER 1
%define CONFIG_CONCAT_DEMUXER 1
%define CONFIG_DASH_DEMUXER 1
%define CONFIG_DATA_DEMUXER 1
@@ -2200,6 +2208,8 @@
%define CONFIG_BIT_MUXER 1
%define CONFIG_CAF_MUXER 1
%define CONFIG_CAVSVIDEO_MUXER 1
+%define CONFIG_CODEC2_MUXER 1
+%define CONFIG_CODEC2RAW_MUXER 1
%define CONFIG_CRC_MUXER 1
%define CONFIG_DASH_MUXER 1
%define CONFIG_DATA_MUXER 1
diff --git a/SMP/config.h b/SMP/config.h
index e8c1695d14a9478909e3ddac3a37b5c2e6b01c33..44cb3a76f150020808f9a4109a62e8dbf35cbb1d 100644
--- a/SMP/config.h
+++ b/SMP/config.h
@@ -502,6 +502,7 @@
#define CONFIG_LIBBS2B 0
#define CONFIG_LIBCACA 0
#define CONFIG_LIBCELT 0
+#define CONFIG_LIBCODEC2 0
#define CONFIG_LIBDC1394 0
#define CONFIG_LIBDRM 0
#define CONFIG_LIBFLITE 0
@@ -1231,6 +1232,7 @@
#define CONFIG_QDMC_AT_DECODER 0
#define CONFIG_QDM2_AT_DECODER 0
#define CONFIG_LIBCELT_DECODER 0
+#define CONFIG_LIBCODEC2_DECODER 0
#define CONFIG_LIBFDK_AAC_DECODER 0
#define CONFIG_LIBGSM_DECODER 0
#define CONFIG_LIBGSM_MS_DECODER 0
@@ -1420,6 +1422,7 @@
#define CONFIG_ILBC_AT_ENCODER 0
#define CONFIG_PCM_ALAW_AT_ENCODER 0
#define CONFIG_PCM_MULAW_AT_ENCODER 0
+#define CONFIG_LIBCODEC2_ENCODER 0
#define CONFIG_LIBFDK_AAC_ENCODER 0
#define CONFIG_LIBGSM_ENCODER 0
#define CONFIG_LIBGSM_MS_ENCODER 0
@@ -1488,6 +1491,8 @@
#define CONFIG_HEVC_VAAPI_HWACCEL 0
#define CONFIG_HEVC_VDPAU_HWACCEL 0
#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MJPEG_NVDEC_HWACCEL 1
+#define CONFIG_MJPEG_VAAPI_HWACCEL 0
#define CONFIG_MPEG1_NVDEC_HWACCEL 1
#define CONFIG_MPEG1_VDPAU_HWACCEL 0
#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
@@ -1585,6 +1590,7 @@
#define CONFIG_VP9_PARSER 1
#define CONFIG_XMA_PARSER 1
#define CONFIG_ALSA_INDEV 0
+#define CONFIG_ANDROID_CAMERA_INDEV 0
#define CONFIG_AVFOUNDATION_INDEV 0
#define CONFIG_BKTR_INDEV 0
#define CONFIG_DECKLINK_INDEV 0
@@ -2027,6 +2033,8 @@
#define CONFIG_CDG_DEMUXER 1
#define CONFIG_CDXL_DEMUXER 1
#define CONFIG_CINE_DEMUXER 1
+#define CONFIG_CODEC2_DEMUXER 1
+#define CONFIG_CODEC2RAW_DEMUXER 1
#define CONFIG_CONCAT_DEMUXER 1
#define CONFIG_DASH_DEMUXER 1
#define CONFIG_DATA_DEMUXER 1
@@ -2286,6 +2294,8 @@
#define CONFIG_BIT_MUXER 1
#define CONFIG_CAF_MUXER 1
#define CONFIG_CAVSVIDEO_MUXER 1
+#define CONFIG_CODEC2_MUXER 1
+#define CONFIG_CODEC2RAW_MUXER 1
#define CONFIG_CRC_MUXER 1
#define CONFIG_DASH_MUXER 1
#define CONFIG_DATA_MUXER 1
diff --git a/SMP/libavcodec.vcxproj b/SMP/libavcodec.vcxproj
index 86e01343902b6bdb2dc32f949fa7c56c82f19b1e..f59769525473f4f401fa1a83e7bd70b0fc11414d 100644
--- a/SMP/libavcodec.vcxproj
+++ b/SMP/libavcodec.vcxproj
@@ -847,6 +847,7 @@
+
diff --git a/SMP/libavcodec.vcxproj.filters b/SMP/libavcodec.vcxproj.filters
index 8c43cdd0e3c9a3a8ef78de332a15aff9efa5fa89..ba9605c33e843784250d48f092f7deb1730d0919 100644
--- a/SMP/libavcodec.vcxproj.filters
+++ b/SMP/libavcodec.vcxproj.filters
@@ -2364,6 +2364,9 @@
Source Files\libavcodec
+
+ Source Files\libavcodec
+
Source Files\libavcodec
diff --git a/SMP/libavformat.def b/SMP/libavformat.def
index e6bde1fdf2a4819f284d1f9ef7cfe233caf95449..601ab63ce58e1ebc05afa71c73db64a74a9e6ff8 100644
--- a/SMP/libavformat.def
+++ b/SMP/libavformat.def
@@ -162,6 +162,9 @@ EXPORTS
avio_wl64
avio_write
avio_write_marker
+ avpriv_codec2_mode_bit_rate
+ avpriv_codec2_mode_block_align
+ avpriv_codec2_mode_frame_size
avpriv_dv_get_packet
avpriv_dv_init_demux
avpriv_dv_produce_packet
diff --git a/SMP/libavformat.vcxproj b/SMP/libavformat.vcxproj
index 07c8d444708734b44e80b965661eec21cf3fe016..c0c18f78ec0e39dc3151043c103b4be3e5f3afa5 100644
--- a/SMP/libavformat.vcxproj
+++ b/SMP/libavformat.vcxproj
@@ -195,6 +195,8 @@
+
+
diff --git a/SMP/libavformat.vcxproj.filters b/SMP/libavformat.vcxproj.filters
index 6913dec3a05bd5c98c28cd3fd11888d1b85a05da..85113b182f32c24290fe5494705d19c10a168b71 100644
--- a/SMP/libavformat.vcxproj.filters
+++ b/SMP/libavformat.vcxproj.filters
@@ -16,9 +16,12 @@
{9fee14b2-1b77-463a-bd6b-60efdcf8850f}
-
+
{bf017c32-250d-47da-b7e6-d5a5091cb1e6}
+
+ {fd9e10e9-18f6-437d-b5d7-17290540c8b8}
+
@@ -409,6 +412,12 @@
Source Files\libavformat
+
+ Source Files\libavcodec
+
+
+ Source Files\libavformat
+
Source Files\libavformat
diff --git a/SMP/libavformat/demuxer_list.c b/SMP/libavformat/demuxer_list.c
index 72db4f7c7cad66c4330e86ca9caa3b11f5097337..ac8bc81715df3811b0c2581544cedbcecceebf19 100644
--- a/SMP/libavformat/demuxer_list.c
+++ b/SMP/libavformat/demuxer_list.c
@@ -66,6 +66,8 @@ static const AVInputFormat *demuxer_list[] = {
&ff_cdg_demuxer,
&ff_cdxl_demuxer,
&ff_cine_demuxer,
+ &ff_codec2_demuxer,
+ &ff_codec2raw_demuxer,
&ff_concat_demuxer,
&ff_dash_demuxer,
&ff_data_demuxer,
diff --git a/SMP/libavformat/muxer_list.c b/SMP/libavformat/muxer_list.c
index b03f6da6fd684c63f1902327650fc605003ac37f..89f502d2db8b50a3c520e73734453cbd39e1ab2b 100644
--- a/SMP/libavformat/muxer_list.c
+++ b/SMP/libavformat/muxer_list.c
@@ -38,6 +38,8 @@ static const AVOutputFormat *muxer_list[] = {
&ff_bit_muxer,
&ff_caf_muxer,
&ff_cavsvideo_muxer,
+ &ff_codec2_muxer,
+ &ff_codec2raw_muxer,
&ff_crc_muxer,
&ff_dash_muxer,
&ff_data_muxer,
diff --git a/SMP/project_get_dependencies.bat b/SMP/project_get_dependencies.bat
index 059a51b39ced97a8ba3a90804b10d5f849eb3295..9b439fe9e9dbcbb9e05b6f100b7c9b2170d19c28 100644
--- a/SMP/project_get_dependencies.bat
+++ b/SMP/project_get_dependencies.bat
@@ -131,9 +131,9 @@ ECHO %REPONAME%: Getting latest release...
SET UPSTREAMAPIURL=%UPSTREAMURL:github.com=api.github.com/repos%
REM Check if secure OAuth is available
IF "%GITHUBTOKEN%" == "" (
- powershell -nologo -noprofile -command "try { Invoke-RestMethod -Uri %UPSTREAMAPIURL%/%REPONAME%/releases/latest > latest.json } catch {exit 1}"
+ powershell -nologo -noprofile -command "$currentMaxTls = [Math]::Max([Net.ServicePointManager]::SecurityProtocol.value__,[Net.SecurityProtocolType]::Tls.value__);$newTlsTypes = [enum]::GetValues('Net.SecurityProtocolType') | ?{ $_ -gt $currentMaxTls };ForEach ($newTls in $newTlsTypes) { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor $newTls };try { Invoke-RestMethod -Uri %UPSTREAMAPIURL%/%REPONAME%/releases/latest > latest.json } catch {exit 1}"
) ELSE (
- powershell -nologo -noprofile -command "try { Invoke-RestMethod -Uri %UPSTREAMAPIURL%/%REPONAME%/releases/latest -Headers @{'Authorization' = 'token %GITHUBTOKEN%'} > latest.json } catch {exit 1}"
+ powershell -nologo -noprofile -command "$currentMaxTls = [Math]::Max([Net.ServicePointManager]::SecurityProtocol.value__,[Net.SecurityProtocolType]::Tls.value__);$newTlsTypes = [enum]::GetValues('Net.SecurityProtocolType') | ?{ $_ -gt $currentMaxTls };ForEach ($newTls in $newTlsTypes) { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor $newTls };try { Invoke-RestMethod -Uri %UPSTREAMAPIURL%/%REPONAME%/releases/latest -Headers @{'Authorization' = 'token %GITHUBTOKEN%'} > latest.json } catch {exit 1}"
)
IF ERRORLEVEL 1 ( ECHO Failed getting latest %REPONAME% release & EXIT /B 1 )
REM Get tag for latest release
@@ -156,7 +156,7 @@ REM Download a pre-built archive and extract
ECHO %REPONAME%: Downloading %LIBNAME%_%TAG%_msvc%MSVC_VER%.zip...
SET PREBUILTDIR=prebuilt
MKDIR %PREBUILTDIR% >NUL 2>&1
-powershell -nologo -noprofile -command "try { (New-Object Net.WebClient).DownloadFile('%DLURL%', '%PREBUILTDIR%\temp.zip') } catch {exit 1}"
+powershell -nologo -noprofile -command "$currentMaxTls = [Math]::Max([Net.ServicePointManager]::SecurityProtocol.value__,[Net.SecurityProtocolType]::Tls.value__);$newTlsTypes = [enum]::GetValues('Net.SecurityProtocolType') | ?{ $_ -gt $currentMaxTls };ForEach ($newTls in $newTlsTypes) { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor $newTls };try { (New-Object Net.WebClient).DownloadFile('%DLURL%', '%PREBUILTDIR%\temp.zip') } catch {exit 1}"
IF ERRORLEVEL 1 ( ECHO Failed downloading %DLURL% & EXIT /B 1 )
powershell -nologo -noprofile -command "Add-Type -AssemblyName System.IO.Compression.FileSystem; $zip=[System.IO.Compression.ZipFile]::OpenRead('%PREBUILTDIR%\temp.zip'); foreach ($item in $zip.Entries) { try {$file=(Join-Path -Path .\%PREBUILTDIR% -ChildPath $item.FullName); $null=[System.IO.Directory]::CreateDirectory((Split-Path -Path $file)); [System.IO.Compression.ZipFileExtensions]::ExtractToFile($item,$file,$true)} catch {exit 1} }"
IF ERRORLEVEL 1 ( ECHO Failed extracting downloaded archive & EXIT /B 1 )