diff --git a/SMP/SMP.patch b/SMP/SMP.patch
index 3e4e76c1bc8bd..b061e8f053a17 100644
--- a/SMP/SMP.patch
+++ b/SMP/SMP.patch
@@ -1,5 +1,5 @@
diff --git a/fftools/opt_common.c b/fftools/opt_common.c
-index 8a06df82df..9a31622bb4 100644
+index f6fe9815e1..d5d32cb89e 100644
--- a/fftools/opt_common.c
+++ b/fftools/opt_common.c
@@ -48,6 +48,9 @@
@@ -13,7 +13,7 @@ index 8a06df82df..9a31622bb4 100644
#include "libavdevice/version.h"
diff --git a/libavcodec/mfenc.c b/libavcodec/mfenc.c
-index f3415df10b..42f36b77bb 100644
+index 8d950a3109..43ca0ead31 100644
--- a/libavcodec/mfenc.c
+++ b/libavcodec/mfenc.c
@@ -59,6 +59,10 @@ typedef struct MFContext {
diff --git a/SMP/config.asm b/SMP/config.asm
index 149a14268acb6..85848c806cd33 100644
--- a/SMP/config.asm
+++ b/SMP/config.asm
@@ -366,6 +366,7 @@
%define HAVE_BCRYPT 1
%define HAVE_VAAPI_DRM 0
%define HAVE_VAAPI_X11 0
+%define HAVE_VAAPI_WIN32 0
%define HAVE_VDPAU_X11 0
%define HAVE_PTHREADS 0
%define HAVE_OS2THREADS 0
@@ -499,6 +500,7 @@
%define CONFIG_LADSPA 0
%define CONFIG_LCMS2 0
%define CONFIG_LIBAOM 0
+%define CONFIG_LIBARIBCAPTION 0
%define CONFIG_LIBASS 1
%define CONFIG_LIBBLURAY 1
%define CONFIG_LIBBS2B 0
diff --git a/SMP/config.h b/SMP/config.h
index 79c7b1077fbe4..be081cd6686a1 100644
--- a/SMP/config.h
+++ b/SMP/config.h
@@ -446,6 +446,7 @@
#define HAVE_BCRYPT 1
#define HAVE_VAAPI_DRM 0
#define HAVE_VAAPI_X11 0
+#define HAVE_VAAPI_WIN32 0
#define HAVE_VDPAU_X11 0
#define HAVE_PTHREADS 0
#define HAVE_OS2THREADS 0
@@ -599,6 +600,7 @@
#define CONFIG_LADSPA 0
#define CONFIG_LCMS2 0
#define CONFIG_LIBAOM 0
+#define CONFIG_LIBARIBCAPTION 0
#define CONFIG_LIBASS 1
#define CONFIG_LIBBLURAY 1
#define CONFIG_LIBBS2B 0
diff --git a/SMP/config_components.h b/SMP/config_components.h
index 6da568116f5e3..a64f7eccbe490 100644
--- a/SMP/config_components.h
+++ b/SMP/config_components.h
@@ -243,6 +243,7 @@
#define CONFIG_PAM_DECODER 1
#define CONFIG_PBM_DECODER 1
#define CONFIG_PCX_DECODER 1
+#define CONFIG_PDV_DECODER 1
#define CONFIG_PFM_DECODER 1
#define CONFIG_PGM_DECODER 1
#define CONFIG_PGMYUV_DECODER 1
@@ -607,6 +608,7 @@
#define CONFIG_PCM_MULAW_AT_DECODER 0
#define CONFIG_QDMC_AT_DECODER 0
#define CONFIG_QDM2_AT_DECODER 0
+#define CONFIG_LIBARIBCAPTION_DECODER 0
#define CONFIG_LIBARIBB24_DECODER 0
#define CONFIG_LIBCELT_DECODER 0
#define CONFIG_LIBCODEC2_DECODER 0
@@ -619,7 +621,6 @@
#define CONFIG_LIBJXL_DECODER 0
#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
-#define CONFIG_LIBOPENJPEG_DECODER 0
#define CONFIG_LIBOPUS_DECODER 1
#define CONFIG_LIBRSVG_DECODER 0
#define CONFIG_LIBSPEEX_DECODER 1
@@ -926,6 +927,7 @@
#define CONFIG_AAC_MF_ENCODER 1
#define CONFIG_AC3_MF_ENCODER 1
#define CONFIG_H263_V4L2M2M_ENCODER 0
+#define CONFIG_AV1_MEDIACODEC_ENCODER 0
#if CONFIG_NVENC
# define CONFIG_AV1_NVENC_ENCODER 1
#else
@@ -992,11 +994,14 @@
# define CONFIG_MPEG2_QSV_ENCODER 0
#endif
#define CONFIG_MPEG2_VAAPI_ENCODER 0
+#define CONFIG_MPEG4_MEDIACODEC_ENCODER 0
#define CONFIG_MPEG4_OMX_ENCODER 0
#define CONFIG_MPEG4_V4L2M2M_ENCODER 0
#define CONFIG_PRORES_VIDEOTOOLBOX_ENCODER 0
+#define CONFIG_VP8_MEDIACODEC_ENCODER 0
#define CONFIG_VP8_V4L2M2M_ENCODER 0
#define CONFIG_VP8_VAAPI_ENCODER 0
+#define CONFIG_VP9_MEDIACODEC_ENCODER 0
#define CONFIG_VP9_VAAPI_ENCODER 0
#if CONFIG_LIBMFX
# define CONFIG_VP9_QSV_ENCODER 1
@@ -1354,6 +1359,7 @@
#define CONFIG_AREALTIME_FILTER 1
#define CONFIG_ARESAMPLE_FILTER 1
#define CONFIG_AREVERSE_FILTER 1
+#define CONFIG_ARLS_FILTER 1
#define CONFIG_ARNNDN_FILTER 1
#define CONFIG_ASDR_FILTER 1
#define CONFIG_ASEGMENT_FILTER 1
@@ -1438,6 +1444,7 @@
#define CONFIG_VOLUMEDETECT_FILTER 1
#define CONFIG_AEVALSRC_FILTER 1
#define CONFIG_AFDELAYSRC_FILTER 1
+#define CONFIG_AFIREQSRC_FILTER 1
#define CONFIG_AFIRSRC_FILTER 1
#define CONFIG_ANOISESRC_FILTER 1
#define CONFIG_ANULLSRC_FILTER 1
@@ -1472,6 +1479,7 @@
#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 1
#define CONFIG_CAS_FILTER 1
+#define CONFIG_CCREPACK_FILTER 1
#define CONFIG_CHROMABER_VULKAN_FILTER 0
#define CONFIG_CHROMAHOLD_FILTER 1
#define CONFIG_CHROMAKEY_FILTER 1
@@ -1632,7 +1640,7 @@
#define CONFIG_MASKEDMIN_FILTER 1
#define CONFIG_MASKEDTHRESHOLD_FILTER 1
#define CONFIG_MASKFUN_FILTER 1
-#define CONFIG_MCDEINT_FILTER 0
+#define CONFIG_MCDEINT_FILTER 1
#define CONFIG_MEDIAN_FILTER 1
#define CONFIG_MERGEPLANES_FILTER 1
#define CONFIG_MESTIMATE_FILTER 1
@@ -1783,7 +1791,7 @@
#define CONFIG_UNSHARP_FILTER 1
#define CONFIG_UNSHARP_OPENCL_FILTER 0
#define CONFIG_UNTILE_FILTER 1
-#define CONFIG_USPP_FILTER 0
+#define CONFIG_USPP_FILTER 1
#define CONFIG_V360_FILTER 1
#define CONFIG_VAGUEDENOISER_FILTER 1
#define CONFIG_VARBLUR_FILTER 1
@@ -1866,6 +1874,7 @@
#define CONFIG_TESTSRC_FILTER 1
#define CONFIG_TESTSRC2_FILTER 1
#define CONFIG_YUVTESTSRC_FILTER 1
+#define CONFIG_ZONEPLATE_FILTER 1
#define CONFIG_NULLSINK_FILTER 1
#define CONFIG_A3DSCOPE_FILTER 1
#define CONFIG_ABITSCOPE_FILTER 1
@@ -2102,6 +2111,7 @@
#define CONFIG_PCM_U16BE_DEMUXER 1
#define CONFIG_PCM_U16LE_DEMUXER 1
#define CONFIG_PCM_U8_DEMUXER 1
+#define CONFIG_PDV_DEMUXER 1
#define CONFIG_PJS_DEMUXER 1
#define CONFIG_PMP_DEMUXER 1
#define CONFIG_PP_BNK_DEMUXER 1
diff --git a/SMP/ffmpeg.vcxproj b/SMP/ffmpeg.vcxproj
index 738eb733d0969..475f2b3e8a00c 100644
--- a/SMP/ffmpeg.vcxproj
+++ b/SMP/ffmpeg.vcxproj
@@ -43,7 +43,9 @@
+
+
diff --git a/SMP/ffmpeg.vcxproj.filters b/SMP/ffmpeg.vcxproj.filters
index 97f76a0c87862..b1cd56b1cf0ae 100644
--- a/SMP/ffmpeg.vcxproj.filters
+++ b/SMP/ffmpeg.vcxproj.filters
@@ -26,9 +26,15 @@
+
+ Source Files\fftools
+
Source Files\fftools
+
+ Source Files\fftools
+
Source Files\fftools
diff --git a/SMP/libavcodec.vcxproj.filters b/SMP/libavcodec.vcxproj.filters
index 044505f517267..36ce29509e44d 100644
--- a/SMP/libavcodec.vcxproj.filters
+++ b/SMP/libavcodec.vcxproj.filters
@@ -571,9 +571,6 @@
Source Files\libavcodec
-
- Source Files\libavcodec
-
Source Files\libavcodec
@@ -1657,6 +1654,9 @@
Source Files\libavcodec
+
+ Source Files\libavcodec
+
Source Files\libavcodec
@@ -1930,6 +1930,9 @@
Source Files\libavcodec
+
+ Source Files\libavcodec
+
Source Files\libavcodec
@@ -2377,6 +2380,9 @@
Source Files\libavcodec
+
+ Source Files\libavcodec
+
Source Files\libavcodec
@@ -2635,9 +2641,6 @@
Source Files\libavcodec
-
- Source Files\libavcodec
-
Source Files\libavcodec
@@ -2665,6 +2668,9 @@
Source Files\libavcodec
+
+ Source Files\libavcodec
+
Source Files\libavcodec
@@ -2854,9 +2860,6 @@
Source Files\libavcodec
-
- Source Files\libavcodec
-
Source Files\libavcodec
diff --git a/SMP/libavcodec/codec_list.c b/SMP/libavcodec/codec_list.c
index b04e8612f8376..29c82b172d6ef 100644
--- a/SMP/libavcodec/codec_list.c
+++ b/SMP/libavcodec/codec_list.c
@@ -405,6 +405,7 @@ static const FFCodec *codec_list[] = {
&ff_pam_decoder,
&ff_pbm_decoder,
&ff_pcx_decoder,
+ &ff_pdv_decoder,
&ff_pfm_decoder,
&ff_pgm_decoder,
&ff_pgmyuv_decoder,
diff --git a/SMP/libavcodec_files.props b/SMP/libavcodec_files.props
index 1bf86926ffb00..0829235075ac5 100644
--- a/SMP/libavcodec_files.props
+++ b/SMP/libavcodec_files.props
@@ -199,7 +199,6 @@
-
@@ -561,6 +560,7 @@
+
@@ -652,6 +652,7 @@
+
@@ -801,6 +802,7 @@
+
@@ -887,7 +889,6 @@
-
@@ -897,6 +898,7 @@
+
@@ -960,7 +962,6 @@
-
diff --git a/SMP/libavcodec_winrt.vcxproj.filters b/SMP/libavcodec_winrt.vcxproj.filters
index 044505f517267..36ce29509e44d 100644
--- a/SMP/libavcodec_winrt.vcxproj.filters
+++ b/SMP/libavcodec_winrt.vcxproj.filters
@@ -571,9 +571,6 @@
Source Files\libavcodec
-
- Source Files\libavcodec
-
Source Files\libavcodec
@@ -1657,6 +1654,9 @@
Source Files\libavcodec
+
+ Source Files\libavcodec
+
Source Files\libavcodec
@@ -1930,6 +1930,9 @@
Source Files\libavcodec
+
+ Source Files\libavcodec
+
Source Files\libavcodec
@@ -2377,6 +2380,9 @@
Source Files\libavcodec
+
+ Source Files\libavcodec
+
Source Files\libavcodec
@@ -2635,9 +2641,6 @@
Source Files\libavcodec
-
- Source Files\libavcodec
-
Source Files\libavcodec
@@ -2665,6 +2668,9 @@
Source Files\libavcodec
+
+ Source Files\libavcodec
+
Source Files\libavcodec
@@ -2854,9 +2860,6 @@
Source Files\libavcodec
-
- Source Files\libavcodec
-
Source Files\libavcodec
diff --git a/SMP/libavfilter.vcxproj.filters b/SMP/libavfilter.vcxproj.filters
index ad471790eea35..0a2094ed89ea7 100644
--- a/SMP/libavfilter.vcxproj.filters
+++ b/SMP/libavfilter.vcxproj.filters
@@ -174,6 +174,9 @@
Source Files\libavfilter
+
+ Source Files\libavfilter
+
Source Files\libavfilter
@@ -354,6 +357,9 @@
Source Files\libavfilter
+
+ Source Files\libavfilter
+
Source Files\libavfilter
@@ -621,6 +627,9 @@
Source Files\libavfilter
+
+ Source Files\libavfilter
+
Source Files\libavfilter
@@ -924,6 +933,9 @@
Source Files\libavfilter
+
+ Source Files\libavfilter
+
Source Files\libavfilter
@@ -1140,6 +1152,9 @@
Source Files\libavfilter
+
+ Source Files\libavfilter
+
Source Files\libavfilter
@@ -1266,36 +1281,6 @@
Source Files\libavfilter\dnn
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
Source Files\libavfilter\x86
diff --git a/SMP/libavfilter/dce_defs.c b/SMP/libavfilter/dce_defs.c
index ec8eb583c0389..e3d437b867c66 100644
--- a/SMP/libavfilter/dce_defs.c
+++ b/SMP/libavfilter/dce_defs.c
@@ -37,6 +37,18 @@ void ff_atadenoise_filter_row8_sse4(const uint8_t *src, uint8_t *dst,
int thra, int thrb, const float *weights) {return;}
#endif
#if !(ARCH_X86_64)
+void ff_bwdif_filter_line_12bit_avx2(void *dst, void *prev, void *cur, void *next,
+ int w, int prefs, int mrefs, int prefs2,
+ int mrefs2, int prefs3, int mrefs3, int prefs4,
+ int mrefs4, int parity, int clip_max) {return;}
+#endif
+#if !(ARCH_X86_64)
+void ff_bwdif_filter_line_avx2(void *dst, void *prev, void *cur, void *next,
+ int w, int prefs, int mrefs, int prefs2,
+ int mrefs2, int prefs3, int mrefs3, int prefs4,
+ int mrefs4, int parity, int clip_max) {return;}
+#endif
+#if !(ARCH_X86_64)
void ff_compute_weights_line_avx2(const uint32_t *const iia,
const uint32_t *const iib,
const uint32_t *const iid,
diff --git a/SMP/libavfilter/filter_list.c b/SMP/libavfilter/filter_list.c
index 114a5285c99b8..bea2fb31a3adc 100644
--- a/SMP/libavfilter/filter_list.c
+++ b/SMP/libavfilter/filter_list.c
@@ -75,6 +75,7 @@ static const AVFilter *filter_list[] = {
&ff_af_arealtime,
&ff_af_aresample,
&ff_af_areverse,
+ &ff_af_arls,
&ff_af_arnndn,
&ff_af_asdr,
&ff_af_asegment,
@@ -152,6 +153,7 @@ static const AVFilter *filter_list[] = {
&ff_af_volumedetect,
&ff_asrc_aevalsrc,
&ff_asrc_afdelaysrc,
+ &ff_asrc_afireqsrc,
&ff_asrc_afirsrc,
&ff_asrc_anoisesrc,
&ff_asrc_anullsrc,
@@ -180,6 +182,7 @@ static const AVFilter *filter_list[] = {
&ff_vf_boxblur,
&ff_vf_bwdif,
&ff_vf_cas,
+ &ff_vf_ccrepack,
&ff_vf_chromahold,
&ff_vf_chromakey,
&ff_vf_chromanr,
@@ -316,6 +319,7 @@ static const AVFilter *filter_list[] = {
&ff_vf_maskedmin,
&ff_vf_maskedthreshold,
&ff_vf_maskfun,
+ &ff_vf_mcdeint,
&ff_vf_median,
&ff_vf_mergeplanes,
&ff_vf_mestimate,
@@ -433,6 +437,7 @@ static const AVFilter *filter_list[] = {
&ff_vf_unpremultiply,
&ff_vf_unsharp,
&ff_vf_untile,
+ &ff_vf_uspp,
&ff_vf_v360,
&ff_vf_vaguedenoiser,
&ff_vf_varblur,
@@ -491,6 +496,7 @@ static const AVFilter *filter_list[] = {
&ff_vsrc_testsrc,
&ff_vsrc_testsrc2,
&ff_vsrc_yuvtestsrc,
+ &ff_vsrc_zoneplate,
&ff_vsink_nullsink,
&ff_avf_a3dscope,
&ff_avf_abitscope,
diff --git a/SMP/libavfilter_files.props b/SMP/libavfilter_files.props
index 25ab3972850cf..c22da98ee774e 100644
--- a/SMP/libavfilter_files.props
+++ b/SMP/libavfilter_files.props
@@ -59,6 +59,7 @@
+
@@ -119,6 +120,7 @@
+
@@ -208,6 +210,7 @@
+
@@ -309,6 +312,7 @@
+
@@ -381,6 +385,7 @@
+
@@ -423,16 +428,6 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/SMP/libavfilter_winrt.vcxproj.filters b/SMP/libavfilter_winrt.vcxproj.filters
index ad471790eea35..0a2094ed89ea7 100644
--- a/SMP/libavfilter_winrt.vcxproj.filters
+++ b/SMP/libavfilter_winrt.vcxproj.filters
@@ -174,6 +174,9 @@
Source Files\libavfilter
+
+ Source Files\libavfilter
+
Source Files\libavfilter
@@ -354,6 +357,9 @@
Source Files\libavfilter
+
+ Source Files\libavfilter
+
Source Files\libavfilter
@@ -621,6 +627,9 @@
Source Files\libavfilter
+
+ Source Files\libavfilter
+
Source Files\libavfilter
@@ -924,6 +933,9 @@
Source Files\libavfilter
+
+ Source Files\libavfilter
+
Source Files\libavfilter
@@ -1140,6 +1152,9 @@
Source Files\libavfilter
+
+ Source Files\libavfilter
+
Source Files\libavfilter
@@ -1266,36 +1281,6 @@
Source Files\libavfilter\dnn
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
-
- Source Files\libavfilter\dnn
-
Source Files\libavfilter\x86
diff --git a/SMP/libavformat.vcxproj.filters b/SMP/libavformat.vcxproj.filters
index 362fe67d3a41d..c3652149bfd39 100644
--- a/SMP/libavformat.vcxproj.filters
+++ b/SMP/libavformat.vcxproj.filters
@@ -1054,6 +1054,9 @@
Source Files\libavformat
+
+ Source Files\libavformat
+
Source Files\libavformat
@@ -1621,6 +1624,11 @@
Source Files\libavformat
+
+
+ Source Files\libavformat
+
+
Source Files\libavformat
diff --git a/SMP/libavformat/demuxer_list.c b/SMP/libavformat/demuxer_list.c
index 3300ba4300b8f..2a62c10935a6c 100644
--- a/SMP/libavformat/demuxer_list.c
+++ b/SMP/libavformat/demuxer_list.c
@@ -232,6 +232,7 @@ static const AVInputFormat *demuxer_list[] = {
&ff_pcm_u16be_demuxer,
&ff_pcm_u16le_demuxer,
&ff_pcm_u8_demuxer,
+ &ff_pdv_demuxer,
&ff_pjs_demuxer,
&ff_pmp_demuxer,
&ff_pp_bnk_demuxer,
diff --git a/SMP/libavformat_files.props b/SMP/libavformat_files.props
index 884ecae101391..dea4d3d1b3e76 100644
--- a/SMP/libavformat_files.props
+++ b/SMP/libavformat_files.props
@@ -353,6 +353,7 @@
+
@@ -587,6 +588,14 @@
true
+
+
+ true
+ true
+ true
+ true
+
+
true
diff --git a/SMP/libavformat_winrt.vcxproj.filters b/SMP/libavformat_winrt.vcxproj.filters
index 362fe67d3a41d..c3652149bfd39 100644
--- a/SMP/libavformat_winrt.vcxproj.filters
+++ b/SMP/libavformat_winrt.vcxproj.filters
@@ -1054,6 +1054,9 @@
Source Files\libavformat
+
+ Source Files\libavformat
+
Source Files\libavformat
@@ -1621,6 +1624,11 @@
Source Files\libavformat
+
+
+ Source Files\libavformat
+
+
Source Files\libavformat
diff --git a/SMP/libavutil.def b/SMP/libavutil.def
index 4322e37987873..d2482dc21cd57 100644
--- a/SMP/libavutil.def
+++ b/SMP/libavutil.def
@@ -153,6 +153,8 @@ EXPORTS
av_downmix_info_update_side_data
av_dynamic_hdr_plus_alloc
av_dynamic_hdr_plus_create_side_data
+ av_dynamic_hdr_plus_from_t35
+ av_dynamic_hdr_plus_to_t35
av_dynamic_hdr_vivid_alloc
av_dynamic_hdr_vivid_create_side_data
av_dynarray2_add
@@ -232,6 +234,7 @@ EXPORTS
av_frame_new_side_data_from_buf
av_frame_ref
av_frame_remove_side_data
+ av_frame_replace
av_frame_side_data_name
av_frame_unref
av_free