Bug 1319277: P1. [ffmpeg] Resync ffvpx with 3.2 branch. r=gerald draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Tue, 22 Nov 2016 13:40:10 +1100
changeset 442272 78a50b2d1f82b239e3316c35c6136045cd4fcd54
parent 442241 67206593ec5aac22b7f8d2410dbdc4d34c50c082
child 442273 f5443b2b33ae39ae7dfd00b8d002e98fcce655f2
push id36651
push userbmo:jyavenard@mozilla.com
push dateTue, 22 Nov 2016 06:32:35 +0000
reviewersgerald
bugs1319277
milestone53.0a1
Bug 1319277: P1. [ffmpeg] Resync ffvpx with 3.2 branch. r=gerald Sync at version n3.2-65-gee56777 MozReview-Commit-ID: oFDGCF2dru
media/ffvpx/README_MOZILLA
media/ffvpx/config_darwin32.h
media/ffvpx/config_darwin64.asm
media/ffvpx/config_darwin64.h
media/ffvpx/config_unix32.h
media/ffvpx/config_unix64.asm
media/ffvpx/config_unix64.h
media/ffvpx/config_win32.asm
media/ffvpx/config_win32.h
media/ffvpx/config_win64.asm
media/ffvpx/config_win64.h
media/ffvpx/libavcodec/allcodecs.c
media/ffvpx/libavcodec/avcodec.h
media/ffvpx/libavcodec/avpacket.c
media/ffvpx/libavcodec/bsf.h
media/ffvpx/libavcodec/dummy_funcs.c
media/ffvpx/libavcodec/h264dsp.h
media/ffvpx/libavcodec/imgconvert.c
media/ffvpx/libavcodec/internal.h
media/ffvpx/libavcodec/me_cmp.h
media/ffvpx/libavcodec/mpegvideo.h
media/ffvpx/libavcodec/parser.c
media/ffvpx/libavcodec/raw.c
media/ffvpx/libavcodec/utils.c
media/ffvpx/libavcodec/version.h
media/ffvpx/libavcodec/vp9.c
media/ffvpx/libavcodec/x86/h264_i386.h
media/ffvpx/libavcodec/x86/vp9dsp_init.c
media/ffvpx/libavcodec/x86/vp9itxfm.asm
media/ffvpx/libavcodec/x86/vp9lpf.asm
media/ffvpx/libavcodec/x86/vp9lpf_16bpp.asm
media/ffvpx/libavutil/adler32.h
media/ffvpx/libavutil/avassert.h
media/ffvpx/libavutil/avconfig.h
media/ffvpx/libavutil/avutil.h
media/ffvpx/libavutil/avutil.symbols
media/ffvpx/libavutil/crc.h
media/ffvpx/libavutil/dict.c
media/ffvpx/libavutil/dummy_funcs.c
media/ffvpx/libavutil/dynarray.h
media/ffvpx/libavutil/frame.c
media/ffvpx/libavutil/frame.h
media/ffvpx/libavutil/hwcontext.h
media/ffvpx/libavutil/internal.h
media/ffvpx/libavutil/log.h
media/ffvpx/libavutil/mathematics.h
media/ffvpx/libavutil/mem.c
media/ffvpx/libavutil/mem.h
media/ffvpx/libavutil/opt.h
media/ffvpx/libavutil/parseutils.c
media/ffvpx/libavutil/pixdesc.c
media/ffvpx/libavutil/pixdesc.h
media/ffvpx/libavutil/pixfmt.h
media/ffvpx/libavutil/rational.h
media/ffvpx/libavutil/samplefmt.c
media/ffvpx/libavutil/samplefmt.h
media/ffvpx/libavutil/timestamp.h
media/ffvpx/libavutil/utils.c
media/ffvpx/libavutil/version.h
media/ffvpx/libavutil/x86/asm.h
media/ffvpx/libavutil/x86/cpu.c
media/ffvpx/libavutil/x86/emms.h
media/ffvpx/libavutil/x86/x86util.asm
--- a/media/ffvpx/README_MOZILLA
+++ b/media/ffvpx/README_MOZILLA
@@ -1,11 +1,11 @@
 This directory contains files used in gecko builds from FFmpeg
 (http://ffmpeg.org). The current files are from FFmpeg as of
-revision n3.1.1-6-g86f9228
+revision n3.2-65-gee56777
 All source files match their path from the library's source archive.
 
 Currently, we only use the vp8 and vp9 portion of the library, and only on x86
 based platforms. If this changes, configuration files will most likely
 need to be updated.
 
 AVX2 must be disabled on Linux due to the use of yasm 1.1 on the build bots.
 Once yasm is upgraded to 1.2 or later, AVX2 code could be re-enabled.
--- a/media/ffvpx/config_darwin32.h
+++ b/media/ffvpx/config_darwin32.h
@@ -192,17 +192,16 @@
 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
 #define HAVE_CABS 1
 #define HAVE_CEXP 1
 #define HAVE_INLINE_ASM 1
 #define HAVE_SYMVER 1
 #define HAVE_YASM 0
 #define HAVE_BIGENDIAN 0
 #define HAVE_FAST_UNALIGNED 0
-#define HAVE_INCOMPATIBLE_LIBAV_ABI 0
 #define HAVE_ALSA_ASOUNDLIB_H 0
 #define HAVE_ALTIVEC_H 0
 #define HAVE_ARPA_INET_H 1
 #define HAVE_ASM_TYPES_H 0
 #define HAVE_CDIO_PARANOIA_H 0
 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0
 #define HAVE_DISPATCH_DISPATCH_H 0
 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0
@@ -295,16 +294,17 @@
 #define HAVE_GETTIMEOFDAY 1
 #define HAVE_GLOB 1
 #define HAVE_GLXGETPROCADDRESS 0
 #define HAVE_GMTIME_R 1
 #define HAVE_INET_ATON 1
 #define HAVE_ISATTY 1
 #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
 #define HAVE_KBHIT 0
+#define HAVE_LOADLIBRARY 0
 #define HAVE_LSTAT 1
 #define HAVE_LZO1X_999_COMPRESS 0
 #define HAVE_MACH_ABSOLUTE_TIME 1
 #define HAVE_MAPVIEWOFFILE 0
 #define HAVE_MKSTEMP 1
 #define HAVE_MMAP 1
 #define HAVE_MPROTECT 1
 #define HAVE_NANOSLEEP 1
@@ -368,17 +368,17 @@
 #define HAVE_LIBC_MSVCRT 0
 #define HAVE_LIBDC1394_1 0
 #define HAVE_LIBDC1394_2 0
 #define HAVE_MAKEINFO 1
 #define HAVE_MAKEINFO_HTML 1
 #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
 #define HAVE_PERL 1
 #define HAVE_POD2MAN 1
-#define HAVE_SDL 0
+#define HAVE_SDL2 0
 #define HAVE_SECTION_DATA_REL_RO 0
 #define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_DRM 0
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
 #define HAVE_WINRT 0
 #define HAVE_XLIB 0
@@ -393,24 +393,25 @@
 #define CONFIG_DEMUXERS 0
 #define CONFIG_MUXERS 0
 #define CONFIG_PROTOCOLS 0
 #define CONFIG_DOC 0
 #define CONFIG_HTMLPAGES 1
 #define CONFIG_MANPAGES 1
 #define CONFIG_PODPAGES 1
 #define CONFIG_TXTPAGES 1
+#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_AVIO_READING_EXAMPLE 1
-#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_DECODING_ENCODING_EXAMPLE 0
 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0
 #define CONFIG_EXTRACT_MVS_EXAMPLE 0
 #define CONFIG_FILTER_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0
+#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0
 #define CONFIG_METADATA_EXAMPLE 0
 #define CONFIG_MUXING_EXAMPLE 0
 #define CONFIG_QSVDEC_EXAMPLE 0
 #define CONFIG_REMUXING_EXAMPLE 0
 #define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
 #define CONFIG_SCALING_VIDEO_EXAMPLE 0
 #define CONFIG_TRANSCODE_AAC_EXAMPLE 0
 #define CONFIG_TRANSCODING_EXAMPLE 0
@@ -429,17 +430,16 @@
 #define CONFIG_LIBASS 0
 #define CONFIG_LIBBLURAY 0
 #define CONFIG_LIBBS2B 0
 #define CONFIG_LIBCACA 0
 #define CONFIG_LIBCDIO 0
 #define CONFIG_LIBCELT 0
 #define CONFIG_LIBDC1394 0
 #define CONFIG_LIBEBUR128 0
-#define CONFIG_LIBFAAC 0
 #define CONFIG_LIBFDK_AAC 0
 #define CONFIG_LIBFLITE 0
 #define CONFIG_LIBFONTCONFIG 0
 #define CONFIG_LIBFREETYPE 0
 #define CONFIG_LIBFRIBIDI 0
 #define CONFIG_LIBGME 0
 #define CONFIG_LIBGSM 0
 #define CONFIG_LIBIEC61883 0
@@ -448,16 +448,17 @@
 #define CONFIG_LIBMODPLUG 0
 #define CONFIG_LIBMP3LAME 0
 #define CONFIG_LIBNUT 0
 #define CONFIG_LIBOPENCORE_AMRNB 0
 #define CONFIG_LIBOPENCORE_AMRWB 0
 #define CONFIG_LIBOPENCV 0
 #define CONFIG_LIBOPENH264 0
 #define CONFIG_LIBOPENJPEG 0
+#define CONFIG_LIBOPENMPT 0
 #define CONFIG_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
 #define CONFIG_LIBRTMP 0
 #define CONFIG_LIBRUBBERBAND 0
 #define CONFIG_LIBSCHROEDINGER 0
 #define CONFIG_LIBSHINE 0
 #define CONFIG_LIBSMBCLIENT 0
 #define CONFIG_LIBSNAPPY 0
@@ -489,16 +490,17 @@
 #define CONFIG_MEDIACODEC 0
 #define CONFIG_NETCDF 0
 #define CONFIG_OPENAL 0
 #define CONFIG_OPENCL 0
 #define CONFIG_OPENGL 0
 #define CONFIG_OPENSSL 0
 #define CONFIG_SCHANNEL 0
 #define CONFIG_SDL 0
+#define CONFIG_SDL2 0
 #define CONFIG_SECURETRANSPORT 0
 #define CONFIG_VIDEOTOOLBOX 0
 #define CONFIG_X11GRAB 0
 #define CONFIG_XLIB 0
 #define CONFIG_ZLIB 0
 #define CONFIG_AUDIOTOOLBOX 0
 #define CONFIG_CUDA 0
 #define CONFIG_CUVID 0
@@ -548,17 +550,16 @@
 #define CONFIG_FFT 0
 #define CONFIG_LSP 0
 #define CONFIG_LZO 0
 #define CONFIG_MDCT 0
 #define CONFIG_PIXELUTILS 0
 #define CONFIG_NETWORK 0
 #define CONFIG_RDFT 0
 #define CONFIG_FONTCONFIG 0
-#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0
 #define CONFIG_MEMALIGN_HACK 0
 #define CONFIG_MEMORY_POISONING 0
 #define CONFIG_NEON_CLOBBER_TEST 0
 #define CONFIG_PIC 1
 #define CONFIG_POD2MAN 1
 #define CONFIG_RAISE_MAJOR 0
 #define CONFIG_THUMB 0
 #define CONFIG_VALGRIND_BACKTRACE 0
@@ -992,16 +993,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S24BE_DECODER 0
 #define CONFIG_PCM_S24DAUD_DECODER 0
 #define CONFIG_PCM_S24LE_DECODER 0
 #define CONFIG_PCM_S24LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S32BE_DECODER 0
 #define CONFIG_PCM_S32LE_DECODER 0
 #define CONFIG_PCM_S32LE_PLANAR_DECODER 0
+#define CONFIG_PCM_S64BE_DECODER 0
+#define CONFIG_PCM_S64LE_DECODER 0
 #define CONFIG_PCM_U8_DECODER 0
 #define CONFIG_PCM_U16BE_DECODER 0
 #define CONFIG_PCM_U16LE_DECODER 0
 #define CONFIG_PCM_U24BE_DECODER 0
 #define CONFIG_PCM_U24LE_DECODER 0
 #define CONFIG_PCM_U32BE_DECODER 0
 #define CONFIG_PCM_U32LE_DECODER 0
 #define CONFIG_PCM_ZORK_DECODER 0
@@ -1100,21 +1103,31 @@
 #define CONFIG_LIBSPEEX_DECODER 0
 #define CONFIG_LIBVORBIS_DECODER 0
 #define CONFIG_LIBVPX_VP8_DECODER 0
 #define CONFIG_LIBVPX_VP9_DECODER 0
 #define CONFIG_LIBZVBI_TELETEXT_DECODER 0
 #define CONFIG_BINTEXT_DECODER 0
 #define CONFIG_XBIN_DECODER 0
 #define CONFIG_IDF_DECODER 0
+#define CONFIG_LIBOPENH264_DECODER 0
+#define CONFIG_H263_CUVID_DECODER 0
 #define CONFIG_H264_CUVID_DECODER 0
 #define CONFIG_HEVC_CUVID_DECODER 0
+#define CONFIG_HEVC_MEDIACODEC_DECODER 0
+#define CONFIG_MJPEG_CUVID_DECODER 0
+#define CONFIG_MPEG1_CUVID_DECODER 0
+#define CONFIG_MPEG2_CUVID_DECODER 0
+#define CONFIG_MPEG4_CUVID_DECODER 0
+#define CONFIG_MPEG4_MEDIACODEC_DECODER 0
 #define CONFIG_VC1_CUVID_DECODER 0
 #define CONFIG_VP8_CUVID_DECODER 0
+#define CONFIG_VP8_MEDIACODEC_DECODER 0
 #define CONFIG_VP9_CUVID_DECODER 0
+#define CONFIG_VP9_MEDIACODEC_DECODER 0
 #define CONFIG_AA_DEMUXER 0
 #define CONFIG_AAC_DEMUXER 0
 #define CONFIG_AC3_DEMUXER 0
 #define CONFIG_ACM_DEMUXER 0
 #define CONFIG_ACT_DEMUXER 0
 #define CONFIG_ADF_DEMUXER 0
 #define CONFIG_ADP_DEMUXER 0
 #define CONFIG_ADS_DEMUXER 0
@@ -1374,16 +1387,17 @@
 #define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
 #define CONFIG_LIBGME_DEMUXER 0
 #define CONFIG_LIBMODPLUG_DEMUXER 0
 #define CONFIG_LIBNUT_DEMUXER 0
+#define CONFIG_LIBOPENMPT_DEMUXER 0
 #define CONFIG_A64MULTI_ENCODER 0
 #define CONFIG_A64MULTI5_ENCODER 0
 #define CONFIG_ALIAS_PIX_ENCODER 0
 #define CONFIG_AMV_ENCODER 0
 #define CONFIG_APNG_ENCODER 0
 #define CONFIG_ASV1_ENCODER 0
 #define CONFIG_ASV2_ENCODER 0
 #define CONFIG_AVRP_ENCODER 0
@@ -1460,22 +1474,24 @@
 #define CONFIG_AAC_ENCODER 0
 #define CONFIG_AC3_ENCODER 0
 #define CONFIG_AC3_FIXED_ENCODER 0
 #define CONFIG_ALAC_ENCODER 0
 #define CONFIG_DCA_ENCODER 0
 #define CONFIG_EAC3_ENCODER 0
 #define CONFIG_FLAC_ENCODER 0
 #define CONFIG_G723_1_ENCODER 0
+#define CONFIG_MLP_ENCODER 0
 #define CONFIG_MP2_ENCODER 0
 #define CONFIG_MP2FIXED_ENCODER 0
 #define CONFIG_NELLYMOSER_ENCODER 0
 #define CONFIG_RA_144_ENCODER 0
 #define CONFIG_SONIC_ENCODER 0
 #define CONFIG_SONIC_LS_ENCODER 0
+#define CONFIG_TRUEHD_ENCODER 0
 #define CONFIG_TTA_ENCODER 0
 #define CONFIG_VORBIS_ENCODER 0
 #define CONFIG_WAVPACK_ENCODER 0
 #define CONFIG_WMAV1_ENCODER 0
 #define CONFIG_WMAV2_ENCODER 0
 #define CONFIG_PCM_ALAW_ENCODER 0
 #define CONFIG_PCM_F32BE_ENCODER 0
 #define CONFIG_PCM_F32LE_ENCODER 0
@@ -1490,16 +1506,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S24BE_ENCODER 0
 #define CONFIG_PCM_S24DAUD_ENCODER 0
 #define CONFIG_PCM_S24LE_ENCODER 0
 #define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S32BE_ENCODER 0
 #define CONFIG_PCM_S32LE_ENCODER 0
 #define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
+#define CONFIG_PCM_S64BE_ENCODER 0
+#define CONFIG_PCM_S64LE_ENCODER 0
 #define CONFIG_PCM_U8_ENCODER 0
 #define CONFIG_PCM_U16BE_ENCODER 0
 #define CONFIG_PCM_U16LE_ENCODER 0
 #define CONFIG_PCM_U24BE_ENCODER 0
 #define CONFIG_PCM_U24LE_ENCODER 0
 #define CONFIG_PCM_U32BE_ENCODER 0
 #define CONFIG_PCM_U32LE_ENCODER 0
 #define CONFIG_ROQ_DPCM_ENCODER 0
@@ -1521,17 +1539,16 @@
 #define CONFIG_TEXT_ENCODER 0
 #define CONFIG_WEBVTT_ENCODER 0
 #define CONFIG_XSUB_ENCODER 0
 #define CONFIG_AAC_AT_ENCODER 0
 #define CONFIG_ALAC_AT_ENCODER 0
 #define CONFIG_ILBC_AT_ENCODER 0
 #define CONFIG_PCM_ALAW_AT_ENCODER 0
 #define CONFIG_PCM_MULAW_AT_ENCODER 0
-#define CONFIG_LIBFAAC_ENCODER 0
 #define CONFIG_LIBFDK_AAC_ENCODER 0
 #define CONFIG_LIBGSM_ENCODER 0
 #define CONFIG_LIBGSM_MS_ENCODER 0
 #define CONFIG_LIBILBC_ENCODER 0
 #define CONFIG_LIBMP3LAME_ENCODER 0
 #define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
@@ -1566,16 +1583,17 @@
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_HEVC_VAAPI_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MJPEG_VAAPI_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ABENCH_FILTER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_FILTER 0
+#define CONFIG_ACRUSHER_FILTER 0
 #define CONFIG_ADELAY_FILTER 0
 #define CONFIG_AECHO_FILTER 0
 #define CONFIG_AEMPHASIS_FILTER 0
 #define CONFIG_AEVAL_FILTER 0
 #define CONFIG_AFADE_FILTER 0
 #define CONFIG_AFFTFILT_FILTER 0
 #define CONFIG_AFORMAT_FILTER 0
 #define CONFIG_AGATE_FILTER 0
@@ -1597,16 +1615,17 @@
 #define CONFIG_AREVERSE_FILTER 0
 #define CONFIG_ASELECT_FILTER 0
 #define CONFIG_ASENDCMD_FILTER 0
 #define CONFIG_ASETNSAMPLES_FILTER 0
 #define CONFIG_ASETPTS_FILTER 0
 #define CONFIG_ASETRATE_FILTER 0
 #define CONFIG_ASETTB_FILTER 0
 #define CONFIG_ASHOWINFO_FILTER 0
+#define CONFIG_ASIDEDATA_FILTER 0
 #define CONFIG_ASPLIT_FILTER 0
 #define CONFIG_ASTATS_FILTER 0
 #define CONFIG_ASTREAMSELECT_FILTER 0
 #define CONFIG_ASYNCTS_FILTER 0
 #define CONFIG_ATEMPO_FILTER 0
 #define CONFIG_ATRIM_FILTER 0
 #define CONFIG_AZMQ_FILTER 0
 #define CONFIG_BANDPASS_FILTER 0
@@ -1614,16 +1633,17 @@
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
 #define CONFIG_BS2B_FILTER 0
 #define CONFIG_CHANNELMAP_FILTER 0
 #define CONFIG_CHANNELSPLIT_FILTER 0
 #define CONFIG_CHORUS_FILTER 0
 #define CONFIG_COMPAND_FILTER 0
 #define CONFIG_COMPENSATIONDELAY_FILTER 0
+#define CONFIG_CRYSTALIZER_FILTER 0
 #define CONFIG_DCSHIFT_FILTER 0
 #define CONFIG_DYNAUDNORM_FILTER 0
 #define CONFIG_EARWAX_FILTER 0
 #define CONFIG_EBUR128_FILTER 0
 #define CONFIG_EQUALIZER_FILTER 0
 #define CONFIG_EXTRASTEREO_FILTER 0
 #define CONFIG_FIREQUALIZER_FILTER 0
 #define CONFIG_FLANGER_FILTER 0
@@ -1652,20 +1672,22 @@
 #define CONFIG_AEVALSRC_FILTER 0
 #define CONFIG_ANOISESRC_FILTER 0
 #define CONFIG_ANULLSRC_FILTER 0
 #define CONFIG_FLITE_FILTER 0
 #define CONFIG_SINE_FILTER 0
 #define CONFIG_ANULLSINK_FILTER 0
 #define CONFIG_ALPHAEXTRACT_FILTER 0
 #define CONFIG_ALPHAMERGE_FILTER 0
+#define CONFIG_ASS_FILTER 0
 #define CONFIG_ATADENOISE_FILTER 0
-#define CONFIG_ASS_FILTER 0
+#define CONFIG_AVGBLUR_FILTER 0
+#define CONFIG_BBOX_FILTER 0
 #define CONFIG_BENCH_FILTER 0
-#define CONFIG_BBOX_FILTER 0
+#define CONFIG_BITPLANENOISE_FILTER 0
 #define CONFIG_BLACKDETECT_FILTER 0
 #define CONFIG_BLACKFRAME_FILTER 0
 #define CONFIG_BLEND_FILTER 0
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_BWDIF_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CIESCOPE_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
@@ -1711,47 +1733,54 @@
 #define CONFIG_FIND_RECT_FILTER 0
 #define CONFIG_FORMAT_FILTER 0
 #define CONFIG_FPS_FILTER 0
 #define CONFIG_FRAMEPACK_FILTER 0
 #define CONFIG_FRAMERATE_FILTER 0
 #define CONFIG_FRAMESTEP_FILTER 0
 #define CONFIG_FREI0R_FILTER 0
 #define CONFIG_FSPP_FILTER 0
+#define CONFIG_GBLUR_FILTER 0
 #define CONFIG_GEQ_FILTER 0
 #define CONFIG_GRADFUN_FILTER 0
 #define CONFIG_HALDCLUT_FILTER 0
 #define CONFIG_HFLIP_FILTER 0
 #define CONFIG_HISTEQ_FILTER 0
 #define CONFIG_HISTOGRAM_FILTER 0
 #define CONFIG_HQDN3D_FILTER 0
 #define CONFIG_HQX_FILTER 0
+#define CONFIG_HSTACK_FILTER 0
+#define CONFIG_HUE_FILTER 0
 #define CONFIG_HWDOWNLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_CUDA_FILTER 0
-#define CONFIG_HSTACK_FILTER 0
-#define CONFIG_HUE_FILTER 0
+#define CONFIG_HYSTERESIS_FILTER 0
 #define CONFIG_IDET_FILTER 0
 #define CONFIG_IL_FILTER 0
 #define CONFIG_INFLATE_FILTER 0
 #define CONFIG_INTERLACE_FILTER 0
 #define CONFIG_INTERLEAVE_FILTER 0
 #define CONFIG_KERNDEINT_FILTER 0
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LOOP_FILTER 0
+#define CONFIG_LUT_FILTER 0
+#define CONFIG_LUT2_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
-#define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
+#define CONFIG_MASKEDCLAMP_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_MESTIMATE_FILTER 0
 #define CONFIG_METADATA_FILTER 0
+#define CONFIG_MINTERPOLATE_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_FILTER 0
+#define CONFIG_NLMEANS_FILTER 0
 #define CONFIG_NNEDI_FILTER 0
 #define CONFIG_NOFORMAT_FILTER 0
 #define CONFIG_NOISE_FILTER 0
 #define CONFIG_NULL_FILTER 0
 #define CONFIG_OCR_FILTER 0
 #define CONFIG_OCV_FILTER 0
 #define CONFIG_OVERLAY_FILTER 0
 #define CONFIG_OWDENOISE_FILTER 0
@@ -1759,48 +1788,51 @@
 #define CONFIG_PALETTEGEN_FILTER 0
 #define CONFIG_PALETTEUSE_FILTER 0
 #define CONFIG_PERMS_FILTER 0
 #define CONFIG_PERSPECTIVE_FILTER 0
 #define CONFIG_PHASE_FILTER 0
 #define CONFIG_PIXDESCTEST_FILTER 0
 #define CONFIG_PP_FILTER 0
 #define CONFIG_PP7_FILTER 0
+#define CONFIG_PREWITT_FILTER 0
 #define CONFIG_PSNR_FILTER 0
 #define CONFIG_PULLUP_FILTER 0
 #define CONFIG_QP_FILTER 0
 #define CONFIG_RANDOM_FILTER 0
 #define CONFIG_READVITC_FILTER 0
 #define CONFIG_REALTIME_FILTER 0
 #define CONFIG_REMAP_FILTER 0
 #define CONFIG_REMOVEGRAIN_FILTER 0
 #define CONFIG_REMOVELOGO_FILTER 0
 #define CONFIG_REPEATFIELDS_FILTER 0
 #define CONFIG_REVERSE_FILTER 0
 #define CONFIG_ROTATE_FILTER 0
 #define CONFIG_SAB_FILTER 0
 #define CONFIG_SCALE_FILTER 0
-#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SCALE_NPP_FILTER 0
 #define CONFIG_SCALE_VAAPI_FILTER 0
+#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SELECT_FILTER 0
 #define CONFIG_SELECTIVECOLOR_FILTER 0
 #define CONFIG_SENDCMD_FILTER 0
 #define CONFIG_SEPARATEFIELDS_FILTER 0
 #define CONFIG_SETDAR_FILTER 0
 #define CONFIG_SETFIELD_FILTER 0
 #define CONFIG_SETPTS_FILTER 0
 #define CONFIG_SETSAR_FILTER 0
 #define CONFIG_SETTB_FILTER 0
 #define CONFIG_SHOWINFO_FILTER 0
 #define CONFIG_SHOWPALETTE_FILTER 0
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
+#define CONFIG_SIDEDATA_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_FILTER 0
+#define CONFIG_SOBEL_FILTER 0
 #define CONFIG_SPLIT_FILTER 0
 #define CONFIG_SPP_FILTER 0
 #define CONFIG_SSIM_FILTER 0
 #define CONFIG_STEREO3D_FILTER 0
 #define CONFIG_STREAMSELECT_FILTER 0
 #define CONFIG_SUBTITLES_FILTER 0
 #define CONFIG_SUPER2XSAI_FILTER 0
 #define CONFIG_SWAPRECT_FILTER 0
@@ -1809,24 +1841,26 @@
 #define CONFIG_TELECINE_FILTER 0
 #define CONFIG_THUMBNAIL_FILTER 0
 #define CONFIG_TILE_FILTER 0
 #define CONFIG_TINTERLACE_FILTER 0
 #define CONFIG_TRANSPOSE_FILTER 0
 #define CONFIG_TRIM_FILTER 0
 #define CONFIG_UNSHARP_FILTER 0
 #define CONFIG_USPP_FILTER 0
+#define CONFIG_VAGUEDENOISER_FILTER 0
 #define CONFIG_VECTORSCOPE_FILTER 0
 #define CONFIG_VFLIP_FILTER 0
 #define CONFIG_VIDSTABDETECT_FILTER 0
 #define CONFIG_VIDSTABTRANSFORM_FILTER 0
 #define CONFIG_VIGNETTE_FILTER 0
 #define CONFIG_VSTACK_FILTER 0
 #define CONFIG_W3FDIF_FILTER 0
 #define CONFIG_WAVEFORM_FILTER 0
+#define CONFIG_WEAVE_FILTER 0
 #define CONFIG_XBR_FILTER 0
 #define CONFIG_YADIF_FILTER 0
 #define CONFIG_ZMQ_FILTER 0
 #define CONFIG_ZOOMPAN_FILTER 0
 #define CONFIG_ZSCALE_FILTER 0
 #define CONFIG_ALLRGB_FILTER 0
 #define CONFIG_ALLYUV_FILTER 0
 #define CONFIG_CELLAUTO_FILTER 0
@@ -1838,76 +1872,87 @@
 #define CONFIG_MANDELBROT_FILTER 0
 #define CONFIG_MPTESTSRC_FILTER 0
 #define CONFIG_NULLSRC_FILTER 0
 #define CONFIG_RGBTESTSRC_FILTER 0
 #define CONFIG_SMPTEBARS_FILTER 0
 #define CONFIG_SMPTEHDBARS_FILTER 0
 #define CONFIG_TESTSRC_FILTER 0
 #define CONFIG_TESTSRC2_FILTER 0
+#define CONFIG_YUVTESTSRC_FILTER 0
 #define CONFIG_NULLSINK_FILTER 0
 #define CONFIG_ADRAWGRAPH_FILTER 0
 #define CONFIG_AHISTOGRAM_FILTER 0
 #define CONFIG_APHASEMETER_FILTER 0
 #define CONFIG_AVECTORSCOPE_FILTER 0
 #define CONFIG_CONCAT_FILTER 0
 #define CONFIG_SHOWCQT_FILTER 0
 #define CONFIG_SHOWFREQS_FILTER 0
 #define CONFIG_SHOWSPECTRUM_FILTER 0
 #define CONFIG_SHOWSPECTRUMPIC_FILTER 0
 #define CONFIG_SHOWVOLUME_FILTER 0
 #define CONFIG_SHOWWAVES_FILTER 0
 #define CONFIG_SHOWWAVESPIC_FILTER 0
 #define CONFIG_SPECTRUMSYNTH_FILTER 0
 #define CONFIG_AMOVIE_FILTER 0
 #define CONFIG_MOVIE_FILTER 0
+#define CONFIG_H263_CUVID_HWACCEL 0
 #define CONFIG_H263_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_CUVID_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
+#define CONFIG_H264_MEDIACODEC_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
 #define CONFIG_H264_VAAPI_HWACCEL 0
 #define CONFIG_H264_VDA_HWACCEL 0
 #define CONFIG_H264_VDA_OLD_HWACCEL 0
 #define CONFIG_H264_VDPAU_HWACCEL 0
 #define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_HEVC_CUVID_HWACCEL 0
 #define CONFIG_HEVC_D3D11VA_HWACCEL 0
 #define CONFIG_HEVC_DXVA2_HWACCEL 0
+#define CONFIG_HEVC_MEDIACODEC_HWACCEL 0
 #define CONFIG_HEVC_QSV_HWACCEL 0
 #define CONFIG_HEVC_VAAPI_HWACCEL 0
 #define CONFIG_HEVC_VDPAU_HWACCEL 0
+#define CONFIG_MJPEG_CUVID_HWACCEL 0
+#define CONFIG_MPEG1_CUVID_HWACCEL 0
 #define CONFIG_MPEG1_XVMC_HWACCEL 0
 #define CONFIG_MPEG1_VDPAU_HWACCEL 0
 #define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG2_CUVID_HWACCEL 0
 #define CONFIG_MPEG2_XVMC_HWACCEL 0
 #define CONFIG_MPEG2_D3D11VA_HWACCEL 0
 #define CONFIG_MPEG2_DXVA2_HWACCEL 0
 #define CONFIG_MPEG2_MMAL_HWACCEL 0
 #define CONFIG_MPEG2_QSV_HWACCEL 0
 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
 #define CONFIG_MPEG2_VDPAU_HWACCEL 0
 #define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG4_CUVID_HWACCEL 0
+#define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0
 #define CONFIG_MPEG4_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_VC1_CUVID_HWACCEL 0
 #define CONFIG_VC1_D3D11VA_HWACCEL 0
 #define CONFIG_VC1_DXVA2_HWACCEL 0
 #define CONFIG_VC1_VAAPI_HWACCEL 0
 #define CONFIG_VC1_VDPAU_HWACCEL 0
 #define CONFIG_VC1_MMAL_HWACCEL 0
 #define CONFIG_VC1_QSV_HWACCEL 0
 #define CONFIG_VP8_CUVID_HWACCEL 0
+#define CONFIG_VP8_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_CUVID_HWACCEL 0
 #define CONFIG_VP9_D3D11VA_HWACCEL 0
 #define CONFIG_VP9_DXVA2_HWACCEL 0
+#define CONFIG_VP9_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_D3D11VA_HWACCEL 0
 #define CONFIG_WMV3_DXVA2_HWACCEL 0
 #define CONFIG_WMV3_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_VDPAU_HWACCEL 0
 #define CONFIG_ALSA_INDEV 0
 #define CONFIG_AVFOUNDATION_INDEV 0
 #define CONFIG_BKTR_INDEV 0
@@ -1954,16 +1999,17 @@
 #define CONFIG_DIRAC_MUXER 0
 #define CONFIG_DNXHD_MUXER 0
 #define CONFIG_DTS_MUXER 0
 #define CONFIG_DV_MUXER 0
 #define CONFIG_EAC3_MUXER 0
 #define CONFIG_F4V_MUXER 0
 #define CONFIG_FFM_MUXER 0
 #define CONFIG_FFMETADATA_MUXER 0
+#define CONFIG_FIFO_MUXER 0
 #define CONFIG_FILMSTRIP_MUXER 0
 #define CONFIG_FLAC_MUXER 0
 #define CONFIG_FLV_MUXER 0
 #define CONFIG_FRAMECRC_MUXER 0
 #define CONFIG_FRAMEHASH_MUXER 0
 #define CONFIG_FRAMEMD5_MUXER 0
 #define CONFIG_G722_MUXER 0
 #define CONFIG_G723_1_MUXER 0
@@ -2011,16 +2057,17 @@
 #define CONFIG_MPJPEG_MUXER 0
 #define CONFIG_MXF_MUXER 0
 #define CONFIG_MXF_D10_MUXER 0
 #define CONFIG_MXF_OPATOM_MUXER 0
 #define CONFIG_NULL_MUXER 0
 #define CONFIG_NUT_MUXER 0
 #define CONFIG_OGA_MUXER 0
 #define CONFIG_OGG_MUXER 0
+#define CONFIG_OGV_MUXER 0
 #define CONFIG_OMA_MUXER 0
 #define CONFIG_OPUS_MUXER 0
 #define CONFIG_PCM_ALAW_MUXER 0
 #define CONFIG_PCM_MULAW_MUXER 0
 #define CONFIG_PCM_F64BE_MUXER 0
 #define CONFIG_PCM_F64LE_MUXER 0
 #define CONFIG_PCM_F32BE_MUXER 0
 #define CONFIG_PCM_F32LE_MUXER 0
@@ -2057,16 +2104,17 @@
 #define CONFIG_SPDIF_MUXER 0
 #define CONFIG_SRT_MUXER 0
 #define CONFIG_SWF_MUXER 0
 #define CONFIG_TEE_MUXER 0
 #define CONFIG_TG2_MUXER 0
 #define CONFIG_TGP_MUXER 0
 #define CONFIG_MKVTIMESTAMP_V2_MUXER 0
 #define CONFIG_TRUEHD_MUXER 0
+#define CONFIG_TTA_MUXER 0
 #define CONFIG_UNCODEDFRAMECRC_MUXER 0
 #define CONFIG_VC1_MUXER 0
 #define CONFIG_VC1T_MUXER 0
 #define CONFIG_VOC_MUXER 0
 #define CONFIG_W64_MUXER 0
 #define CONFIG_WAV_MUXER 0
 #define CONFIG_WEBM_MUXER 0
 #define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
@@ -2080,17 +2128,17 @@
 #define CONFIG_LIBNUT_MUXER 0
 #define CONFIG_ALSA_OUTDEV 0
 #define CONFIG_CACA_OUTDEV 0
 #define CONFIG_DECKLINK_OUTDEV 0
 #define CONFIG_FBDEV_OUTDEV 0
 #define CONFIG_OPENGL_OUTDEV 0
 #define CONFIG_OSS_OUTDEV 0
 #define CONFIG_PULSE_OUTDEV 0
-#define CONFIG_SDL_OUTDEV 0
+#define CONFIG_SDL2_OUTDEV 0
 #define CONFIG_SNDIO_OUTDEV 0
 #define CONFIG_V4L2_OUTDEV 0
 #define CONFIG_XV_OUTDEV 0
 #define CONFIG_AAC_PARSER 0
 #define CONFIG_AAC_LATM_PARSER 0
 #define CONFIG_AC3_PARSER 0
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
@@ -2152,16 +2200,17 @@
 #define CONFIG_RTMPS_PROTOCOL 0
 #define CONFIG_RTMPT_PROTOCOL 0
 #define CONFIG_RTMPTE_PROTOCOL 0
 #define CONFIG_RTMPTS_PROTOCOL 0
 #define CONFIG_RTP_PROTOCOL 0
 #define CONFIG_SCTP_PROTOCOL 0
 #define CONFIG_SRTP_PROTOCOL 0
 #define CONFIG_SUBFILE_PROTOCOL 0
+#define CONFIG_TEE_PROTOCOL 0
 #define CONFIG_TCP_PROTOCOL 0
 #define CONFIG_TLS_GNUTLS_PROTOCOL 0
 #define CONFIG_TLS_SCHANNEL_PROTOCOL 0
 #define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0
 #define CONFIG_TLS_OPENSSL_PROTOCOL 0
 #define CONFIG_UDP_PROTOCOL 0
 #define CONFIG_UDPLITE_PROTOCOL 0
 #define CONFIG_UNIX_PROTOCOL 0
--- a/media/ffvpx/config_darwin64.asm
+++ b/media/ffvpx/config_darwin64.asm
@@ -176,17 +176,16 @@
 %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
 %define HAVE_CABS 1
 %define HAVE_CEXP 1
 %define HAVE_INLINE_ASM 1
 %define HAVE_SYMVER 1
 %define HAVE_YASM 1
 %define HAVE_BIGENDIAN 0
 %define HAVE_FAST_UNALIGNED 1
-%define HAVE_INCOMPATIBLE_LIBAV_ABI 0
 %define HAVE_ALSA_ASOUNDLIB_H 0
 %define HAVE_ALTIVEC_H 0
 %define HAVE_ARPA_INET_H 1
 %define HAVE_ASM_TYPES_H 0
 %define HAVE_CDIO_PARANOIA_H 0
 %define HAVE_CDIO_PARANOIA_PARANOIA_H 0
 %define HAVE_DISPATCH_DISPATCH_H 0
 %define HAVE_DEV_BKTR_IOCTL_BT848_H 0
@@ -279,16 +278,17 @@
 %define HAVE_GETTIMEOFDAY 1
 %define HAVE_GLOB 1
 %define HAVE_GLXGETPROCADDRESS 0
 %define HAVE_GMTIME_R 1
 %define HAVE_INET_ATON 1
 %define HAVE_ISATTY 1
 %define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
 %define HAVE_KBHIT 0
+%define HAVE_LOADLIBRARY 0
 %define HAVE_LSTAT 1
 %define HAVE_LZO1X_999_COMPRESS 0
 %define HAVE_MACH_ABSOLUTE_TIME 1
 %define HAVE_MAPVIEWOFFILE 0
 %define HAVE_MKSTEMP 1
 %define HAVE_MMAP 1
 %define HAVE_MPROTECT 1
 %define HAVE_NANOSLEEP 1
@@ -353,17 +353,17 @@
 %define HAVE_LIBC_MSVCRT 0
 %define HAVE_LIBDC1394_1 0
 %define HAVE_LIBDC1394_2 0
 %define HAVE_MAKEINFO 1
 %define HAVE_MAKEINFO_HTML 1
 %define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
 %define HAVE_PERL 1
 %define HAVE_POD2MAN 1
-%define HAVE_SDL 0
+%define HAVE_SDL2 0
 %define HAVE_SECTION_DATA_REL_RO 0
 %define HAVE_TEXI2HTML 0
 %define HAVE_THREADS 1
 %define HAVE_VAAPI_DRM 0
 %define HAVE_VAAPI_X11 0
 %define HAVE_VDPAU_X11 0
 %define HAVE_WINRT 0
 %define HAVE_XLIB 0
@@ -378,24 +378,25 @@
 %define CONFIG_DEMUXERS 0
 %define CONFIG_MUXERS 0
 %define CONFIG_PROTOCOLS 0
 %define CONFIG_DOC 0
 %define CONFIG_HTMLPAGES 1
 %define CONFIG_MANPAGES 1
 %define CONFIG_PODPAGES 1
 %define CONFIG_TXTPAGES 1
+%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 %define CONFIG_AVIO_READING_EXAMPLE 1
-%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 %define CONFIG_DECODING_ENCODING_EXAMPLE 0
 %define CONFIG_DEMUXING_DECODING_EXAMPLE 0
 %define CONFIG_EXTRACT_MVS_EXAMPLE 0
 %define CONFIG_FILTER_AUDIO_EXAMPLE 0
 %define CONFIG_FILTERING_AUDIO_EXAMPLE 0
 %define CONFIG_FILTERING_VIDEO_EXAMPLE 0
+%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0
 %define CONFIG_METADATA_EXAMPLE 0
 %define CONFIG_MUXING_EXAMPLE 0
 %define CONFIG_QSVDEC_EXAMPLE 0
 %define CONFIG_REMUXING_EXAMPLE 0
 %define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
 %define CONFIG_SCALING_VIDEO_EXAMPLE 0
 %define CONFIG_TRANSCODE_AAC_EXAMPLE 0
 %define CONFIG_TRANSCODING_EXAMPLE 0
@@ -414,17 +415,16 @@
 %define CONFIG_LIBASS 0
 %define CONFIG_LIBBLURAY 0
 %define CONFIG_LIBBS2B 0
 %define CONFIG_LIBCACA 0
 %define CONFIG_LIBCDIO 0
 %define CONFIG_LIBCELT 0
 %define CONFIG_LIBDC1394 0
 %define CONFIG_LIBEBUR128 0
-%define CONFIG_LIBFAAC 0
 %define CONFIG_LIBFDK_AAC 0
 %define CONFIG_LIBFLITE 0
 %define CONFIG_LIBFONTCONFIG 0
 %define CONFIG_LIBFREETYPE 0
 %define CONFIG_LIBFRIBIDI 0
 %define CONFIG_LIBGME 0
 %define CONFIG_LIBGSM 0
 %define CONFIG_LIBIEC61883 0
@@ -433,16 +433,17 @@
 %define CONFIG_LIBMODPLUG 0
 %define CONFIG_LIBMP3LAME 0
 %define CONFIG_LIBNUT 0
 %define CONFIG_LIBOPENCORE_AMRNB 0
 %define CONFIG_LIBOPENCORE_AMRWB 0
 %define CONFIG_LIBOPENCV 0
 %define CONFIG_LIBOPENH264 0
 %define CONFIG_LIBOPENJPEG 0
+%define CONFIG_LIBOPENMPT 0
 %define CONFIG_LIBOPUS 0
 %define CONFIG_LIBPULSE 0
 %define CONFIG_LIBRTMP 0
 %define CONFIG_LIBRUBBERBAND 0
 %define CONFIG_LIBSCHROEDINGER 0
 %define CONFIG_LIBSHINE 0
 %define CONFIG_LIBSMBCLIENT 0
 %define CONFIG_LIBSNAPPY 0
@@ -474,16 +475,17 @@
 %define CONFIG_MEDIACODEC 0
 %define CONFIG_NETCDF 0
 %define CONFIG_OPENAL 0
 %define CONFIG_OPENCL 0
 %define CONFIG_OPENGL 0
 %define CONFIG_OPENSSL 0
 %define CONFIG_SCHANNEL 0
 %define CONFIG_SDL 0
+%define CONFIG_SDL2 0
 %define CONFIG_SECURETRANSPORT 0
 %define CONFIG_VIDEOTOOLBOX 0
 %define CONFIG_X11GRAB 0
 %define CONFIG_XLIB 0
 %define CONFIG_ZLIB 0
 %define CONFIG_AUDIOTOOLBOX 0
 %define CONFIG_CUDA 0
 %define CONFIG_CUVID 0
@@ -533,17 +535,16 @@
 %define CONFIG_FFT 0
 %define CONFIG_LSP 0
 %define CONFIG_LZO 0
 %define CONFIG_MDCT 0
 %define CONFIG_PIXELUTILS 0
 %define CONFIG_NETWORK 0
 %define CONFIG_RDFT 0
 %define CONFIG_FONTCONFIG 0
-%define CONFIG_INCOMPATIBLE_LIBAV_ABI 0
 %define CONFIG_MEMALIGN_HACK 0
 %define CONFIG_MEMORY_POISONING 0
 %define CONFIG_NEON_CLOBBER_TEST 0
 %define CONFIG_PIC 1
 %define CONFIG_POD2MAN 1
 %define CONFIG_RAISE_MAJOR 0
 %define CONFIG_THUMB 0
 %define CONFIG_VALGRIND_BACKTRACE 0
@@ -977,16 +978,18 @@
 %define CONFIG_PCM_S16LE_PLANAR_DECODER 0
 %define CONFIG_PCM_S24BE_DECODER 0
 %define CONFIG_PCM_S24DAUD_DECODER 0
 %define CONFIG_PCM_S24LE_DECODER 0
 %define CONFIG_PCM_S24LE_PLANAR_DECODER 0
 %define CONFIG_PCM_S32BE_DECODER 0
 %define CONFIG_PCM_S32LE_DECODER 0
 %define CONFIG_PCM_S32LE_PLANAR_DECODER 0
+%define CONFIG_PCM_S64BE_DECODER 0
+%define CONFIG_PCM_S64LE_DECODER 0
 %define CONFIG_PCM_U8_DECODER 0
 %define CONFIG_PCM_U16BE_DECODER 0
 %define CONFIG_PCM_U16LE_DECODER 0
 %define CONFIG_PCM_U24BE_DECODER 0
 %define CONFIG_PCM_U24LE_DECODER 0
 %define CONFIG_PCM_U32BE_DECODER 0
 %define CONFIG_PCM_U32LE_DECODER 0
 %define CONFIG_PCM_ZORK_DECODER 0
@@ -1085,21 +1088,31 @@
 %define CONFIG_LIBSPEEX_DECODER 0
 %define CONFIG_LIBVORBIS_DECODER 0
 %define CONFIG_LIBVPX_VP8_DECODER 0
 %define CONFIG_LIBVPX_VP9_DECODER 0
 %define CONFIG_LIBZVBI_TELETEXT_DECODER 0
 %define CONFIG_BINTEXT_DECODER 0
 %define CONFIG_XBIN_DECODER 0
 %define CONFIG_IDF_DECODER 0
+%define CONFIG_LIBOPENH264_DECODER 0
+%define CONFIG_H263_CUVID_DECODER 0
 %define CONFIG_H264_CUVID_DECODER 0
 %define CONFIG_HEVC_CUVID_DECODER 0
+%define CONFIG_HEVC_MEDIACODEC_DECODER 0
+%define CONFIG_MJPEG_CUVID_DECODER 0
+%define CONFIG_MPEG1_CUVID_DECODER 0
+%define CONFIG_MPEG2_CUVID_DECODER 0
+%define CONFIG_MPEG4_CUVID_DECODER 0
+%define CONFIG_MPEG4_MEDIACODEC_DECODER 0
 %define CONFIG_VC1_CUVID_DECODER 0
 %define CONFIG_VP8_CUVID_DECODER 0
+%define CONFIG_VP8_MEDIACODEC_DECODER 0
 %define CONFIG_VP9_CUVID_DECODER 0
+%define CONFIG_VP9_MEDIACODEC_DECODER 0
 %define CONFIG_AA_DEMUXER 0
 %define CONFIG_AAC_DEMUXER 0
 %define CONFIG_AC3_DEMUXER 0
 %define CONFIG_ACM_DEMUXER 0
 %define CONFIG_ACT_DEMUXER 0
 %define CONFIG_ADF_DEMUXER 0
 %define CONFIG_ADP_DEMUXER 0
 %define CONFIG_ADS_DEMUXER 0
@@ -1359,16 +1372,17 @@
 %define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
 %define CONFIG_LIBGME_DEMUXER 0
 %define CONFIG_LIBMODPLUG_DEMUXER 0
 %define CONFIG_LIBNUT_DEMUXER 0
+%define CONFIG_LIBOPENMPT_DEMUXER 0
 %define CONFIG_A64MULTI_ENCODER 0
 %define CONFIG_A64MULTI5_ENCODER 0
 %define CONFIG_ALIAS_PIX_ENCODER 0
 %define CONFIG_AMV_ENCODER 0
 %define CONFIG_APNG_ENCODER 0
 %define CONFIG_ASV1_ENCODER 0
 %define CONFIG_ASV2_ENCODER 0
 %define CONFIG_AVRP_ENCODER 0
@@ -1445,22 +1459,24 @@
 %define CONFIG_AAC_ENCODER 0
 %define CONFIG_AC3_ENCODER 0
 %define CONFIG_AC3_FIXED_ENCODER 0
 %define CONFIG_ALAC_ENCODER 0
 %define CONFIG_DCA_ENCODER 0
 %define CONFIG_EAC3_ENCODER 0
 %define CONFIG_FLAC_ENCODER 0
 %define CONFIG_G723_1_ENCODER 0
+%define CONFIG_MLP_ENCODER 0
 %define CONFIG_MP2_ENCODER 0
 %define CONFIG_MP2FIXED_ENCODER 0
 %define CONFIG_NELLYMOSER_ENCODER 0
 %define CONFIG_RA_144_ENCODER 0
 %define CONFIG_SONIC_ENCODER 0
 %define CONFIG_SONIC_LS_ENCODER 0
+%define CONFIG_TRUEHD_ENCODER 0
 %define CONFIG_TTA_ENCODER 0
 %define CONFIG_VORBIS_ENCODER 0
 %define CONFIG_WAVPACK_ENCODER 0
 %define CONFIG_WMAV1_ENCODER 0
 %define CONFIG_WMAV2_ENCODER 0
 %define CONFIG_PCM_ALAW_ENCODER 0
 %define CONFIG_PCM_F32BE_ENCODER 0
 %define CONFIG_PCM_F32LE_ENCODER 0
@@ -1475,16 +1491,18 @@
 %define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
 %define CONFIG_PCM_S24BE_ENCODER 0
 %define CONFIG_PCM_S24DAUD_ENCODER 0
 %define CONFIG_PCM_S24LE_ENCODER 0
 %define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
 %define CONFIG_PCM_S32BE_ENCODER 0
 %define CONFIG_PCM_S32LE_ENCODER 0
 %define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
+%define CONFIG_PCM_S64BE_ENCODER 0
+%define CONFIG_PCM_S64LE_ENCODER 0
 %define CONFIG_PCM_U8_ENCODER 0
 %define CONFIG_PCM_U16BE_ENCODER 0
 %define CONFIG_PCM_U16LE_ENCODER 0
 %define CONFIG_PCM_U24BE_ENCODER 0
 %define CONFIG_PCM_U24LE_ENCODER 0
 %define CONFIG_PCM_U32BE_ENCODER 0
 %define CONFIG_PCM_U32LE_ENCODER 0
 %define CONFIG_ROQ_DPCM_ENCODER 0
@@ -1506,17 +1524,16 @@
 %define CONFIG_TEXT_ENCODER 0
 %define CONFIG_WEBVTT_ENCODER 0
 %define CONFIG_XSUB_ENCODER 0
 %define CONFIG_AAC_AT_ENCODER 0
 %define CONFIG_ALAC_AT_ENCODER 0
 %define CONFIG_ILBC_AT_ENCODER 0
 %define CONFIG_PCM_ALAW_AT_ENCODER 0
 %define CONFIG_PCM_MULAW_AT_ENCODER 0
-%define CONFIG_LIBFAAC_ENCODER 0
 %define CONFIG_LIBFDK_AAC_ENCODER 0
 %define CONFIG_LIBGSM_ENCODER 0
 %define CONFIG_LIBGSM_MS_ENCODER 0
 %define CONFIG_LIBILBC_ENCODER 0
 %define CONFIG_LIBMP3LAME_ENCODER 0
 %define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
 %define CONFIG_LIBOPENJPEG_ENCODER 0
 %define CONFIG_LIBOPUS_ENCODER 0
@@ -1551,16 +1568,17 @@
 %define CONFIG_HEVC_QSV_ENCODER 0
 %define CONFIG_HEVC_VAAPI_ENCODER 0
 %define CONFIG_LIBKVAZAAR_ENCODER 0
 %define CONFIG_MJPEG_VAAPI_ENCODER 0
 %define CONFIG_MPEG2_QSV_ENCODER 0
 %define CONFIG_ABENCH_FILTER 0
 %define CONFIG_ACOMPRESSOR_FILTER 0
 %define CONFIG_ACROSSFADE_FILTER 0
+%define CONFIG_ACRUSHER_FILTER 0
 %define CONFIG_ADELAY_FILTER 0
 %define CONFIG_AECHO_FILTER 0
 %define CONFIG_AEMPHASIS_FILTER 0
 %define CONFIG_AEVAL_FILTER 0
 %define CONFIG_AFADE_FILTER 0
 %define CONFIG_AFFTFILT_FILTER 0
 %define CONFIG_AFORMAT_FILTER 0
 %define CONFIG_AGATE_FILTER 0
@@ -1582,16 +1600,17 @@
 %define CONFIG_AREVERSE_FILTER 0
 %define CONFIG_ASELECT_FILTER 0
 %define CONFIG_ASENDCMD_FILTER 0
 %define CONFIG_ASETNSAMPLES_FILTER 0
 %define CONFIG_ASETPTS_FILTER 0
 %define CONFIG_ASETRATE_FILTER 0
 %define CONFIG_ASETTB_FILTER 0
 %define CONFIG_ASHOWINFO_FILTER 0
+%define CONFIG_ASIDEDATA_FILTER 0
 %define CONFIG_ASPLIT_FILTER 0
 %define CONFIG_ASTATS_FILTER 0
 %define CONFIG_ASTREAMSELECT_FILTER 0
 %define CONFIG_ASYNCTS_FILTER 0
 %define CONFIG_ATEMPO_FILTER 0
 %define CONFIG_ATRIM_FILTER 0
 %define CONFIG_AZMQ_FILTER 0
 %define CONFIG_BANDPASS_FILTER 0
@@ -1599,16 +1618,17 @@
 %define CONFIG_BASS_FILTER 0
 %define CONFIG_BIQUAD_FILTER 0
 %define CONFIG_BS2B_FILTER 0
 %define CONFIG_CHANNELMAP_FILTER 0
 %define CONFIG_CHANNELSPLIT_FILTER 0
 %define CONFIG_CHORUS_FILTER 0
 %define CONFIG_COMPAND_FILTER 0
 %define CONFIG_COMPENSATIONDELAY_FILTER 0
+%define CONFIG_CRYSTALIZER_FILTER 0
 %define CONFIG_DCSHIFT_FILTER 0
 %define CONFIG_DYNAUDNORM_FILTER 0
 %define CONFIG_EARWAX_FILTER 0
 %define CONFIG_EBUR128_FILTER 0
 %define CONFIG_EQUALIZER_FILTER 0
 %define CONFIG_EXTRASTEREO_FILTER 0
 %define CONFIG_FIREQUALIZER_FILTER 0
 %define CONFIG_FLANGER_FILTER 0
@@ -1637,20 +1657,22 @@
 %define CONFIG_AEVALSRC_FILTER 0
 %define CONFIG_ANOISESRC_FILTER 0
 %define CONFIG_ANULLSRC_FILTER 0
 %define CONFIG_FLITE_FILTER 0
 %define CONFIG_SINE_FILTER 0
 %define CONFIG_ANULLSINK_FILTER 0
 %define CONFIG_ALPHAEXTRACT_FILTER 0
 %define CONFIG_ALPHAMERGE_FILTER 0
+%define CONFIG_ASS_FILTER 0
 %define CONFIG_ATADENOISE_FILTER 0
-%define CONFIG_ASS_FILTER 0
+%define CONFIG_AVGBLUR_FILTER 0
+%define CONFIG_BBOX_FILTER 0
 %define CONFIG_BENCH_FILTER 0
-%define CONFIG_BBOX_FILTER 0
+%define CONFIG_BITPLANENOISE_FILTER 0
 %define CONFIG_BLACKDETECT_FILTER 0
 %define CONFIG_BLACKFRAME_FILTER 0
 %define CONFIG_BLEND_FILTER 0
 %define CONFIG_BOXBLUR_FILTER 0
 %define CONFIG_BWDIF_FILTER 0
 %define CONFIG_CHROMAKEY_FILTER 0
 %define CONFIG_CIESCOPE_FILTER 0
 %define CONFIG_CODECVIEW_FILTER 0
@@ -1696,47 +1718,54 @@
 %define CONFIG_FIND_RECT_FILTER 0
 %define CONFIG_FORMAT_FILTER 0
 %define CONFIG_FPS_FILTER 0
 %define CONFIG_FRAMEPACK_FILTER 0
 %define CONFIG_FRAMERATE_FILTER 0
 %define CONFIG_FRAMESTEP_FILTER 0
 %define CONFIG_FREI0R_FILTER 0
 %define CONFIG_FSPP_FILTER 0
+%define CONFIG_GBLUR_FILTER 0
 %define CONFIG_GEQ_FILTER 0
 %define CONFIG_GRADFUN_FILTER 0
 %define CONFIG_HALDCLUT_FILTER 0
 %define CONFIG_HFLIP_FILTER 0
 %define CONFIG_HISTEQ_FILTER 0
 %define CONFIG_HISTOGRAM_FILTER 0
 %define CONFIG_HQDN3D_FILTER 0
 %define CONFIG_HQX_FILTER 0
+%define CONFIG_HSTACK_FILTER 0
+%define CONFIG_HUE_FILTER 0
 %define CONFIG_HWDOWNLOAD_FILTER 0
 %define CONFIG_HWUPLOAD_FILTER 0
 %define CONFIG_HWUPLOAD_CUDA_FILTER 0
-%define CONFIG_HSTACK_FILTER 0
-%define CONFIG_HUE_FILTER 0
+%define CONFIG_HYSTERESIS_FILTER 0
 %define CONFIG_IDET_FILTER 0
 %define CONFIG_IL_FILTER 0
 %define CONFIG_INFLATE_FILTER 0
 %define CONFIG_INTERLACE_FILTER 0
 %define CONFIG_INTERLEAVE_FILTER 0
 %define CONFIG_KERNDEINT_FILTER 0
 %define CONFIG_LENSCORRECTION_FILTER 0
 %define CONFIG_LOOP_FILTER 0
+%define CONFIG_LUT_FILTER 0
+%define CONFIG_LUT2_FILTER 0
 %define CONFIG_LUT3D_FILTER 0
-%define CONFIG_LUT_FILTER 0
 %define CONFIG_LUTRGB_FILTER 0
 %define CONFIG_LUTYUV_FILTER 0
+%define CONFIG_MASKEDCLAMP_FILTER 0
 %define CONFIG_MASKEDMERGE_FILTER 0
 %define CONFIG_MCDEINT_FILTER 0
 %define CONFIG_MERGEPLANES_FILTER 0
+%define CONFIG_MESTIMATE_FILTER 0
 %define CONFIG_METADATA_FILTER 0
+%define CONFIG_MINTERPOLATE_FILTER 0
 %define CONFIG_MPDECIMATE_FILTER 0
 %define CONFIG_NEGATE_FILTER 0
+%define CONFIG_NLMEANS_FILTER 0
 %define CONFIG_NNEDI_FILTER 0
 %define CONFIG_NOFORMAT_FILTER 0
 %define CONFIG_NOISE_FILTER 0
 %define CONFIG_NULL_FILTER 0
 %define CONFIG_OCR_FILTER 0
 %define CONFIG_OCV_FILTER 0
 %define CONFIG_OVERLAY_FILTER 0
 %define CONFIG_OWDENOISE_FILTER 0
@@ -1744,48 +1773,51 @@
 %define CONFIG_PALETTEGEN_FILTER 0
 %define CONFIG_PALETTEUSE_FILTER 0
 %define CONFIG_PERMS_FILTER 0
 %define CONFIG_PERSPECTIVE_FILTER 0
 %define CONFIG_PHASE_FILTER 0
 %define CONFIG_PIXDESCTEST_FILTER 0
 %define CONFIG_PP_FILTER 0
 %define CONFIG_PP7_FILTER 0
+%define CONFIG_PREWITT_FILTER 0
 %define CONFIG_PSNR_FILTER 0
 %define CONFIG_PULLUP_FILTER 0
 %define CONFIG_QP_FILTER 0
 %define CONFIG_RANDOM_FILTER 0
 %define CONFIG_READVITC_FILTER 0
 %define CONFIG_REALTIME_FILTER 0
 %define CONFIG_REMAP_FILTER 0
 %define CONFIG_REMOVEGRAIN_FILTER 0
 %define CONFIG_REMOVELOGO_FILTER 0
 %define CONFIG_REPEATFIELDS_FILTER 0
 %define CONFIG_REVERSE_FILTER 0
 %define CONFIG_ROTATE_FILTER 0
 %define CONFIG_SAB_FILTER 0
 %define CONFIG_SCALE_FILTER 0
-%define CONFIG_SCALE2REF_FILTER 0
 %define CONFIG_SCALE_NPP_FILTER 0
 %define CONFIG_SCALE_VAAPI_FILTER 0
+%define CONFIG_SCALE2REF_FILTER 0
 %define CONFIG_SELECT_FILTER 0
 %define CONFIG_SELECTIVECOLOR_FILTER 0
 %define CONFIG_SENDCMD_FILTER 0
 %define CONFIG_SEPARATEFIELDS_FILTER 0
 %define CONFIG_SETDAR_FILTER 0
 %define CONFIG_SETFIELD_FILTER 0
 %define CONFIG_SETPTS_FILTER 0
 %define CONFIG_SETSAR_FILTER 0
 %define CONFIG_SETTB_FILTER 0
 %define CONFIG_SHOWINFO_FILTER 0
 %define CONFIG_SHOWPALETTE_FILTER 0
 %define CONFIG_SHUFFLEFRAMES_FILTER 0
 %define CONFIG_SHUFFLEPLANES_FILTER 0
+%define CONFIG_SIDEDATA_FILTER 0
 %define CONFIG_SIGNALSTATS_FILTER 0
 %define CONFIG_SMARTBLUR_FILTER 0
+%define CONFIG_SOBEL_FILTER 0
 %define CONFIG_SPLIT_FILTER 0
 %define CONFIG_SPP_FILTER 0
 %define CONFIG_SSIM_FILTER 0
 %define CONFIG_STEREO3D_FILTER 0
 %define CONFIG_STREAMSELECT_FILTER 0
 %define CONFIG_SUBTITLES_FILTER 0
 %define CONFIG_SUPER2XSAI_FILTER 0
 %define CONFIG_SWAPRECT_FILTER 0
@@ -1794,24 +1826,26 @@
 %define CONFIG_TELECINE_FILTER 0
 %define CONFIG_THUMBNAIL_FILTER 0
 %define CONFIG_TILE_FILTER 0
 %define CONFIG_TINTERLACE_FILTER 0
 %define CONFIG_TRANSPOSE_FILTER 0
 %define CONFIG_TRIM_FILTER 0
 %define CONFIG_UNSHARP_FILTER 0
 %define CONFIG_USPP_FILTER 0
+%define CONFIG_VAGUEDENOISER_FILTER 0
 %define CONFIG_VECTORSCOPE_FILTER 0
 %define CONFIG_VFLIP_FILTER 0
 %define CONFIG_VIDSTABDETECT_FILTER 0
 %define CONFIG_VIDSTABTRANSFORM_FILTER 0
 %define CONFIG_VIGNETTE_FILTER 0
 %define CONFIG_VSTACK_FILTER 0
 %define CONFIG_W3FDIF_FILTER 0
 %define CONFIG_WAVEFORM_FILTER 0
+%define CONFIG_WEAVE_FILTER 0
 %define CONFIG_XBR_FILTER 0
 %define CONFIG_YADIF_FILTER 0
 %define CONFIG_ZMQ_FILTER 0
 %define CONFIG_ZOOMPAN_FILTER 0
 %define CONFIG_ZSCALE_FILTER 0
 %define CONFIG_ALLRGB_FILTER 0
 %define CONFIG_ALLYUV_FILTER 0
 %define CONFIG_CELLAUTO_FILTER 0
@@ -1823,76 +1857,87 @@
 %define CONFIG_MANDELBROT_FILTER 0
 %define CONFIG_MPTESTSRC_FILTER 0
 %define CONFIG_NULLSRC_FILTER 0
 %define CONFIG_RGBTESTSRC_FILTER 0
 %define CONFIG_SMPTEBARS_FILTER 0
 %define CONFIG_SMPTEHDBARS_FILTER 0
 %define CONFIG_TESTSRC_FILTER 0
 %define CONFIG_TESTSRC2_FILTER 0
+%define CONFIG_YUVTESTSRC_FILTER 0
 %define CONFIG_NULLSINK_FILTER 0
 %define CONFIG_ADRAWGRAPH_FILTER 0
 %define CONFIG_AHISTOGRAM_FILTER 0
 %define CONFIG_APHASEMETER_FILTER 0
 %define CONFIG_AVECTORSCOPE_FILTER 0
 %define CONFIG_CONCAT_FILTER 0
 %define CONFIG_SHOWCQT_FILTER 0
 %define CONFIG_SHOWFREQS_FILTER 0
 %define CONFIG_SHOWSPECTRUM_FILTER 0
 %define CONFIG_SHOWSPECTRUMPIC_FILTER 0
 %define CONFIG_SHOWVOLUME_FILTER 0
 %define CONFIG_SHOWWAVES_FILTER 0
 %define CONFIG_SHOWWAVESPIC_FILTER 0
 %define CONFIG_SPECTRUMSYNTH_FILTER 0
 %define CONFIG_AMOVIE_FILTER 0
 %define CONFIG_MOVIE_FILTER 0
+%define CONFIG_H263_CUVID_HWACCEL 0
 %define CONFIG_H263_VAAPI_HWACCEL 0
 %define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_H264_CUVID_HWACCEL 0
 %define CONFIG_H264_D3D11VA_HWACCEL 0
 %define CONFIG_H264_DXVA2_HWACCEL 0
+%define CONFIG_H264_MEDIACODEC_HWACCEL 0
 %define CONFIG_H264_MMAL_HWACCEL 0
 %define CONFIG_H264_QSV_HWACCEL 0
 %define CONFIG_H264_VAAPI_HWACCEL 0
 %define CONFIG_H264_VDA_HWACCEL 0
 %define CONFIG_H264_VDA_OLD_HWACCEL 0
 %define CONFIG_H264_VDPAU_HWACCEL 0
 %define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_HEVC_CUVID_HWACCEL 0
 %define CONFIG_HEVC_D3D11VA_HWACCEL 0
 %define CONFIG_HEVC_DXVA2_HWACCEL 0
+%define CONFIG_HEVC_MEDIACODEC_HWACCEL 0
 %define CONFIG_HEVC_QSV_HWACCEL 0
 %define CONFIG_HEVC_VAAPI_HWACCEL 0
 %define CONFIG_HEVC_VDPAU_HWACCEL 0
+%define CONFIG_MJPEG_CUVID_HWACCEL 0
+%define CONFIG_MPEG1_CUVID_HWACCEL 0
 %define CONFIG_MPEG1_XVMC_HWACCEL 0
 %define CONFIG_MPEG1_VDPAU_HWACCEL 0
 %define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
+%define CONFIG_MPEG2_CUVID_HWACCEL 0
 %define CONFIG_MPEG2_XVMC_HWACCEL 0
 %define CONFIG_MPEG2_D3D11VA_HWACCEL 0
 %define CONFIG_MPEG2_DXVA2_HWACCEL 0
 %define CONFIG_MPEG2_MMAL_HWACCEL 0
 %define CONFIG_MPEG2_QSV_HWACCEL 0
 %define CONFIG_MPEG2_VAAPI_HWACCEL 0
 %define CONFIG_MPEG2_VDPAU_HWACCEL 0
 %define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
+%define CONFIG_MPEG4_CUVID_HWACCEL 0
+%define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0
 %define CONFIG_MPEG4_MMAL_HWACCEL 0
 %define CONFIG_MPEG4_VAAPI_HWACCEL 0
 %define CONFIG_MPEG4_VDPAU_HWACCEL 0
 %define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_VC1_CUVID_HWACCEL 0
 %define CONFIG_VC1_D3D11VA_HWACCEL 0
 %define CONFIG_VC1_DXVA2_HWACCEL 0
 %define CONFIG_VC1_VAAPI_HWACCEL 0
 %define CONFIG_VC1_VDPAU_HWACCEL 0
 %define CONFIG_VC1_MMAL_HWACCEL 0
 %define CONFIG_VC1_QSV_HWACCEL 0
 %define CONFIG_VP8_CUVID_HWACCEL 0
+%define CONFIG_VP8_MEDIACODEC_HWACCEL 0
 %define CONFIG_VP9_CUVID_HWACCEL 0
 %define CONFIG_VP9_D3D11VA_HWACCEL 0
 %define CONFIG_VP9_DXVA2_HWACCEL 0
+%define CONFIG_VP9_MEDIACODEC_HWACCEL 0
 %define CONFIG_VP9_VAAPI_HWACCEL 0
 %define CONFIG_WMV3_D3D11VA_HWACCEL 0
 %define CONFIG_WMV3_DXVA2_HWACCEL 0
 %define CONFIG_WMV3_VAAPI_HWACCEL 0
 %define CONFIG_WMV3_VDPAU_HWACCEL 0
 %define CONFIG_ALSA_INDEV 0
 %define CONFIG_AVFOUNDATION_INDEV 0
 %define CONFIG_BKTR_INDEV 0
@@ -1939,16 +1984,17 @@
 %define CONFIG_DIRAC_MUXER 0
 %define CONFIG_DNXHD_MUXER 0
 %define CONFIG_DTS_MUXER 0
 %define CONFIG_DV_MUXER 0
 %define CONFIG_EAC3_MUXER 0
 %define CONFIG_F4V_MUXER 0
 %define CONFIG_FFM_MUXER 0
 %define CONFIG_FFMETADATA_MUXER 0
+%define CONFIG_FIFO_MUXER 0
 %define CONFIG_FILMSTRIP_MUXER 0
 %define CONFIG_FLAC_MUXER 0
 %define CONFIG_FLV_MUXER 0
 %define CONFIG_FRAMECRC_MUXER 0
 %define CONFIG_FRAMEHASH_MUXER 0
 %define CONFIG_FRAMEMD5_MUXER 0
 %define CONFIG_G722_MUXER 0
 %define CONFIG_G723_1_MUXER 0
@@ -1996,16 +2042,17 @@
 %define CONFIG_MPJPEG_MUXER 0
 %define CONFIG_MXF_MUXER 0
 %define CONFIG_MXF_D10_MUXER 0
 %define CONFIG_MXF_OPATOM_MUXER 0
 %define CONFIG_NULL_MUXER 0
 %define CONFIG_NUT_MUXER 0
 %define CONFIG_OGA_MUXER 0
 %define CONFIG_OGG_MUXER 0
+%define CONFIG_OGV_MUXER 0
 %define CONFIG_OMA_MUXER 0
 %define CONFIG_OPUS_MUXER 0
 %define CONFIG_PCM_ALAW_MUXER 0
 %define CONFIG_PCM_MULAW_MUXER 0
 %define CONFIG_PCM_F64BE_MUXER 0
 %define CONFIG_PCM_F64LE_MUXER 0
 %define CONFIG_PCM_F32BE_MUXER 0
 %define CONFIG_PCM_F32LE_MUXER 0
@@ -2042,16 +2089,17 @@
 %define CONFIG_SPDIF_MUXER 0
 %define CONFIG_SRT_MUXER 0
 %define CONFIG_SWF_MUXER 0
 %define CONFIG_TEE_MUXER 0
 %define CONFIG_TG2_MUXER 0
 %define CONFIG_TGP_MUXER 0
 %define CONFIG_MKVTIMESTAMP_V2_MUXER 0
 %define CONFIG_TRUEHD_MUXER 0
+%define CONFIG_TTA_MUXER 0
 %define CONFIG_UNCODEDFRAMECRC_MUXER 0
 %define CONFIG_VC1_MUXER 0
 %define CONFIG_VC1T_MUXER 0
 %define CONFIG_VOC_MUXER 0
 %define CONFIG_W64_MUXER 0
 %define CONFIG_WAV_MUXER 0
 %define CONFIG_WEBM_MUXER 0
 %define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
@@ -2065,17 +2113,17 @@
 %define CONFIG_LIBNUT_MUXER 0
 %define CONFIG_ALSA_OUTDEV 0
 %define CONFIG_CACA_OUTDEV 0
 %define CONFIG_DECKLINK_OUTDEV 0
 %define CONFIG_FBDEV_OUTDEV 0
 %define CONFIG_OPENGL_OUTDEV 0
 %define CONFIG_OSS_OUTDEV 0
 %define CONFIG_PULSE_OUTDEV 0
-%define CONFIG_SDL_OUTDEV 0
+%define CONFIG_SDL2_OUTDEV 0
 %define CONFIG_SNDIO_OUTDEV 0
 %define CONFIG_V4L2_OUTDEV 0
 %define CONFIG_XV_OUTDEV 0
 %define CONFIG_AAC_PARSER 0
 %define CONFIG_AAC_LATM_PARSER 0
 %define CONFIG_AC3_PARSER 0
 %define CONFIG_ADX_PARSER 0
 %define CONFIG_BMP_PARSER 0
@@ -2137,16 +2185,17 @@
 %define CONFIG_RTMPS_PROTOCOL 0
 %define CONFIG_RTMPT_PROTOCOL 0
 %define CONFIG_RTMPTE_PROTOCOL 0
 %define CONFIG_RTMPTS_PROTOCOL 0
 %define CONFIG_RTP_PROTOCOL 0
 %define CONFIG_SCTP_PROTOCOL 0
 %define CONFIG_SRTP_PROTOCOL 0
 %define CONFIG_SUBFILE_PROTOCOL 0
+%define CONFIG_TEE_PROTOCOL 0
 %define CONFIG_TCP_PROTOCOL 0
 %define CONFIG_TLS_GNUTLS_PROTOCOL 0
 %define CONFIG_TLS_SCHANNEL_PROTOCOL 0
 %define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0
 %define CONFIG_TLS_OPENSSL_PROTOCOL 0
 %define CONFIG_UDP_PROTOCOL 0
 %define CONFIG_UDPLITE_PROTOCOL 0
 %define CONFIG_UNIX_PROTOCOL 0
--- a/media/ffvpx/config_darwin64.h
+++ b/media/ffvpx/config_darwin64.h
@@ -295,16 +295,17 @@
 #define HAVE_GETTIMEOFDAY 1
 #define HAVE_GLOB 1
 #define HAVE_GLXGETPROCADDRESS 0
 #define HAVE_GMTIME_R 1
 #define HAVE_INET_ATON 1
 #define HAVE_ISATTY 1
 #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
 #define HAVE_KBHIT 0
+#define HAVE_LOADLIBRARY 0
 #define HAVE_LSTAT 1
 #define HAVE_LZO1X_999_COMPRESS 0
 #define HAVE_MACH_ABSOLUTE_TIME 1
 #define HAVE_MAPVIEWOFFILE 0
 #define HAVE_MKSTEMP 1
 #define HAVE_MMAP 1
 #define HAVE_MPROTECT 1
 #define HAVE_NANOSLEEP 1
@@ -368,17 +369,17 @@
 #define HAVE_LIBC_MSVCRT 0
 #define HAVE_LIBDC1394_1 0
 #define HAVE_LIBDC1394_2 0
 #define HAVE_MAKEINFO 1
 #define HAVE_MAKEINFO_HTML 1
 #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
 #define HAVE_PERL 1
 #define HAVE_POD2MAN 1
-#define HAVE_SDL 0
+#define HAVE_SDL2 0
 #define HAVE_SECTION_DATA_REL_RO 0
 #define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_DRM 0
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
 #define HAVE_WINRT 0
 #define HAVE_XLIB 0
@@ -393,24 +394,25 @@
 #define CONFIG_DEMUXERS 0
 #define CONFIG_MUXERS 0
 #define CONFIG_PROTOCOLS 0
 #define CONFIG_DOC 0
 #define CONFIG_HTMLPAGES 1
 #define CONFIG_MANPAGES 1
 #define CONFIG_PODPAGES 1
 #define CONFIG_TXTPAGES 1
+#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_AVIO_READING_EXAMPLE 1
-#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_DECODING_ENCODING_EXAMPLE 0
 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0
 #define CONFIG_EXTRACT_MVS_EXAMPLE 0
 #define CONFIG_FILTER_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0
+#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0
 #define CONFIG_METADATA_EXAMPLE 0
 #define CONFIG_MUXING_EXAMPLE 0
 #define CONFIG_QSVDEC_EXAMPLE 0
 #define CONFIG_REMUXING_EXAMPLE 0
 #define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
 #define CONFIG_SCALING_VIDEO_EXAMPLE 0
 #define CONFIG_TRANSCODE_AAC_EXAMPLE 0
 #define CONFIG_TRANSCODING_EXAMPLE 0
@@ -429,17 +431,16 @@
 #define CONFIG_LIBASS 0
 #define CONFIG_LIBBLURAY 0
 #define CONFIG_LIBBS2B 0
 #define CONFIG_LIBCACA 0
 #define CONFIG_LIBCDIO 0
 #define CONFIG_LIBCELT 0
 #define CONFIG_LIBDC1394 0
 #define CONFIG_LIBEBUR128 0
-#define CONFIG_LIBFAAC 0
 #define CONFIG_LIBFDK_AAC 0
 #define CONFIG_LIBFLITE 0
 #define CONFIG_LIBFONTCONFIG 0
 #define CONFIG_LIBFREETYPE 0
 #define CONFIG_LIBFRIBIDI 0
 #define CONFIG_LIBGME 0
 #define CONFIG_LIBGSM 0
 #define CONFIG_LIBIEC61883 0
@@ -448,16 +449,17 @@
 #define CONFIG_LIBMODPLUG 0
 #define CONFIG_LIBMP3LAME 0
 #define CONFIG_LIBNUT 0
 #define CONFIG_LIBOPENCORE_AMRNB 0
 #define CONFIG_LIBOPENCORE_AMRWB 0
 #define CONFIG_LIBOPENCV 0
 #define CONFIG_LIBOPENH264 0
 #define CONFIG_LIBOPENJPEG 0
+#define CONFIG_LIBOPENMPT 0
 #define CONFIG_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
 #define CONFIG_LIBRTMP 0
 #define CONFIG_LIBRUBBERBAND 0
 #define CONFIG_LIBSCHROEDINGER 0
 #define CONFIG_LIBSHINE 0
 #define CONFIG_LIBSMBCLIENT 0
 #define CONFIG_LIBSNAPPY 0
@@ -489,16 +491,17 @@
 #define CONFIG_MEDIACODEC 0
 #define CONFIG_NETCDF 0
 #define CONFIG_OPENAL 0
 #define CONFIG_OPENCL 0
 #define CONFIG_OPENGL 0
 #define CONFIG_OPENSSL 0
 #define CONFIG_SCHANNEL 0
 #define CONFIG_SDL 0
+#define CONFIG_SDL2 0
 #define CONFIG_SECURETRANSPORT 0
 #define CONFIG_VIDEOTOOLBOX 0
 #define CONFIG_X11GRAB 0
 #define CONFIG_XLIB 0
 #define CONFIG_ZLIB 0
 #define CONFIG_AUDIOTOOLBOX 0
 #define CONFIG_CUDA 0
 #define CONFIG_CUVID 0
@@ -548,17 +551,16 @@
 #define CONFIG_FFT 0
 #define CONFIG_LSP 0
 #define CONFIG_LZO 0
 #define CONFIG_MDCT 0
 #define CONFIG_PIXELUTILS 0
 #define CONFIG_NETWORK 0
 #define CONFIG_RDFT 0
 #define CONFIG_FONTCONFIG 0
-#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0
 #define CONFIG_MEMALIGN_HACK 0
 #define CONFIG_MEMORY_POISONING 0
 #define CONFIG_NEON_CLOBBER_TEST 0
 #define CONFIG_PIC 1
 #define CONFIG_POD2MAN 1
 #define CONFIG_RAISE_MAJOR 0
 #define CONFIG_THUMB 0
 #define CONFIG_VALGRIND_BACKTRACE 0
@@ -992,16 +994,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S24BE_DECODER 0
 #define CONFIG_PCM_S24DAUD_DECODER 0
 #define CONFIG_PCM_S24LE_DECODER 0
 #define CONFIG_PCM_S24LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S32BE_DECODER 0
 #define CONFIG_PCM_S32LE_DECODER 0
 #define CONFIG_PCM_S32LE_PLANAR_DECODER 0
+#define CONFIG_PCM_S64BE_DECODER 0
+#define CONFIG_PCM_S64LE_DECODER 0
 #define CONFIG_PCM_U8_DECODER 0
 #define CONFIG_PCM_U16BE_DECODER 0
 #define CONFIG_PCM_U16LE_DECODER 0
 #define CONFIG_PCM_U24BE_DECODER 0
 #define CONFIG_PCM_U24LE_DECODER 0
 #define CONFIG_PCM_U32BE_DECODER 0
 #define CONFIG_PCM_U32LE_DECODER 0
 #define CONFIG_PCM_ZORK_DECODER 0
@@ -1100,21 +1104,31 @@
 #define CONFIG_LIBSPEEX_DECODER 0
 #define CONFIG_LIBVORBIS_DECODER 0
 #define CONFIG_LIBVPX_VP8_DECODER 0
 #define CONFIG_LIBVPX_VP9_DECODER 0
 #define CONFIG_LIBZVBI_TELETEXT_DECODER 0
 #define CONFIG_BINTEXT_DECODER 0
 #define CONFIG_XBIN_DECODER 0
 #define CONFIG_IDF_DECODER 0
+#define CONFIG_LIBOPENH264_DECODER 0
+#define CONFIG_H263_CUVID_DECODER 0
 #define CONFIG_H264_CUVID_DECODER 0
 #define CONFIG_HEVC_CUVID_DECODER 0
+#define CONFIG_HEVC_MEDIACODEC_DECODER 0
+#define CONFIG_MJPEG_CUVID_DECODER 0
+#define CONFIG_MPEG1_CUVID_DECODER 0
+#define CONFIG_MPEG2_CUVID_DECODER 0
+#define CONFIG_MPEG4_CUVID_DECODER 0
+#define CONFIG_MPEG4_MEDIACODEC_DECODER 0
 #define CONFIG_VC1_CUVID_DECODER 0
 #define CONFIG_VP8_CUVID_DECODER 0
+#define CONFIG_VP8_MEDIACODEC_DECODER 0
 #define CONFIG_VP9_CUVID_DECODER 0
+#define CONFIG_VP9_MEDIACODEC_DECODER 0
 #define CONFIG_AA_DEMUXER 0
 #define CONFIG_AAC_DEMUXER 0
 #define CONFIG_AC3_DEMUXER 0
 #define CONFIG_ACM_DEMUXER 0
 #define CONFIG_ACT_DEMUXER 0
 #define CONFIG_ADF_DEMUXER 0
 #define CONFIG_ADP_DEMUXER 0
 #define CONFIG_ADS_DEMUXER 0
@@ -1374,16 +1388,17 @@
 #define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
 #define CONFIG_LIBGME_DEMUXER 0
 #define CONFIG_LIBMODPLUG_DEMUXER 0
 #define CONFIG_LIBNUT_DEMUXER 0
+#define CONFIG_LIBOPENMPT_DEMUXER 0
 #define CONFIG_A64MULTI_ENCODER 0
 #define CONFIG_A64MULTI5_ENCODER 0
 #define CONFIG_ALIAS_PIX_ENCODER 0
 #define CONFIG_AMV_ENCODER 0
 #define CONFIG_APNG_ENCODER 0
 #define CONFIG_ASV1_ENCODER 0
 #define CONFIG_ASV2_ENCODER 0
 #define CONFIG_AVRP_ENCODER 0
@@ -1460,22 +1475,24 @@
 #define CONFIG_AAC_ENCODER 0
 #define CONFIG_AC3_ENCODER 0
 #define CONFIG_AC3_FIXED_ENCODER 0
 #define CONFIG_ALAC_ENCODER 0
 #define CONFIG_DCA_ENCODER 0
 #define CONFIG_EAC3_ENCODER 0
 #define CONFIG_FLAC_ENCODER 0
 #define CONFIG_G723_1_ENCODER 0
+#define CONFIG_MLP_ENCODER 0
 #define CONFIG_MP2_ENCODER 0
 #define CONFIG_MP2FIXED_ENCODER 0
 #define CONFIG_NELLYMOSER_ENCODER 0
 #define CONFIG_RA_144_ENCODER 0
 #define CONFIG_SONIC_ENCODER 0
 #define CONFIG_SONIC_LS_ENCODER 0
+#define CONFIG_TRUEHD_ENCODER 0
 #define CONFIG_TTA_ENCODER 0
 #define CONFIG_VORBIS_ENCODER 0
 #define CONFIG_WAVPACK_ENCODER 0
 #define CONFIG_WMAV1_ENCODER 0
 #define CONFIG_WMAV2_ENCODER 0
 #define CONFIG_PCM_ALAW_ENCODER 0
 #define CONFIG_PCM_F32BE_ENCODER 0
 #define CONFIG_PCM_F32LE_ENCODER 0
@@ -1490,16 +1507,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S24BE_ENCODER 0
 #define CONFIG_PCM_S24DAUD_ENCODER 0
 #define CONFIG_PCM_S24LE_ENCODER 0
 #define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S32BE_ENCODER 0
 #define CONFIG_PCM_S32LE_ENCODER 0
 #define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
+#define CONFIG_PCM_S64BE_ENCODER 0
+#define CONFIG_PCM_S64LE_ENCODER 0
 #define CONFIG_PCM_U8_ENCODER 0
 #define CONFIG_PCM_U16BE_ENCODER 0
 #define CONFIG_PCM_U16LE_ENCODER 0
 #define CONFIG_PCM_U24BE_ENCODER 0
 #define CONFIG_PCM_U24LE_ENCODER 0
 #define CONFIG_PCM_U32BE_ENCODER 0
 #define CONFIG_PCM_U32LE_ENCODER 0
 #define CONFIG_ROQ_DPCM_ENCODER 0
@@ -1521,17 +1540,16 @@
 #define CONFIG_TEXT_ENCODER 0
 #define CONFIG_WEBVTT_ENCODER 0
 #define CONFIG_XSUB_ENCODER 0
 #define CONFIG_AAC_AT_ENCODER 0
 #define CONFIG_ALAC_AT_ENCODER 0
 #define CONFIG_ILBC_AT_ENCODER 0
 #define CONFIG_PCM_ALAW_AT_ENCODER 0
 #define CONFIG_PCM_MULAW_AT_ENCODER 0
-#define CONFIG_LIBFAAC_ENCODER 0
 #define CONFIG_LIBFDK_AAC_ENCODER 0
 #define CONFIG_LIBGSM_ENCODER 0
 #define CONFIG_LIBGSM_MS_ENCODER 0
 #define CONFIG_LIBILBC_ENCODER 0
 #define CONFIG_LIBMP3LAME_ENCODER 0
 #define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
@@ -1566,16 +1584,17 @@
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_HEVC_VAAPI_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MJPEG_VAAPI_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ABENCH_FILTER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_FILTER 0
+#define CONFIG_ACRUSHER_FILTER 0
 #define CONFIG_ADELAY_FILTER 0
 #define CONFIG_AECHO_FILTER 0
 #define CONFIG_AEMPHASIS_FILTER 0
 #define CONFIG_AEVAL_FILTER 0
 #define CONFIG_AFADE_FILTER 0
 #define CONFIG_AFFTFILT_FILTER 0
 #define CONFIG_AFORMAT_FILTER 0
 #define CONFIG_AGATE_FILTER 0
@@ -1597,16 +1616,17 @@
 #define CONFIG_AREVERSE_FILTER 0
 #define CONFIG_ASELECT_FILTER 0
 #define CONFIG_ASENDCMD_FILTER 0
 #define CONFIG_ASETNSAMPLES_FILTER 0
 #define CONFIG_ASETPTS_FILTER 0
 #define CONFIG_ASETRATE_FILTER 0
 #define CONFIG_ASETTB_FILTER 0
 #define CONFIG_ASHOWINFO_FILTER 0
+#define CONFIG_ASIDEDATA_FILTER 0
 #define CONFIG_ASPLIT_FILTER 0
 #define CONFIG_ASTATS_FILTER 0
 #define CONFIG_ASTREAMSELECT_FILTER 0
 #define CONFIG_ASYNCTS_FILTER 0
 #define CONFIG_ATEMPO_FILTER 0
 #define CONFIG_ATRIM_FILTER 0
 #define CONFIG_AZMQ_FILTER 0
 #define CONFIG_BANDPASS_FILTER 0
@@ -1614,16 +1634,17 @@
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
 #define CONFIG_BS2B_FILTER 0
 #define CONFIG_CHANNELMAP_FILTER 0
 #define CONFIG_CHANNELSPLIT_FILTER 0
 #define CONFIG_CHORUS_FILTER 0
 #define CONFIG_COMPAND_FILTER 0
 #define CONFIG_COMPENSATIONDELAY_FILTER 0
+#define CONFIG_CRYSTALIZER_FILTER 0
 #define CONFIG_DCSHIFT_FILTER 0
 #define CONFIG_DYNAUDNORM_FILTER 0
 #define CONFIG_EARWAX_FILTER 0
 #define CONFIG_EBUR128_FILTER 0
 #define CONFIG_EQUALIZER_FILTER 0
 #define CONFIG_EXTRASTEREO_FILTER 0
 #define CONFIG_FIREQUALIZER_FILTER 0
 #define CONFIG_FLANGER_FILTER 0
@@ -1652,20 +1673,22 @@
 #define CONFIG_AEVALSRC_FILTER 0
 #define CONFIG_ANOISESRC_FILTER 0
 #define CONFIG_ANULLSRC_FILTER 0
 #define CONFIG_FLITE_FILTER 0
 #define CONFIG_SINE_FILTER 0
 #define CONFIG_ANULLSINK_FILTER 0
 #define CONFIG_ALPHAEXTRACT_FILTER 0
 #define CONFIG_ALPHAMERGE_FILTER 0
+#define CONFIG_ASS_FILTER 0
 #define CONFIG_ATADENOISE_FILTER 0
-#define CONFIG_ASS_FILTER 0
+#define CONFIG_AVGBLUR_FILTER 0
+#define CONFIG_BBOX_FILTER 0
 #define CONFIG_BENCH_FILTER 0
-#define CONFIG_BBOX_FILTER 0
+#define CONFIG_BITPLANENOISE_FILTER 0
 #define CONFIG_BLACKDETECT_FILTER 0
 #define CONFIG_BLACKFRAME_FILTER 0
 #define CONFIG_BLEND_FILTER 0
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_BWDIF_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CIESCOPE_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
@@ -1711,47 +1734,54 @@
 #define CONFIG_FIND_RECT_FILTER 0
 #define CONFIG_FORMAT_FILTER 0
 #define CONFIG_FPS_FILTER 0
 #define CONFIG_FRAMEPACK_FILTER 0
 #define CONFIG_FRAMERATE_FILTER 0
 #define CONFIG_FRAMESTEP_FILTER 0
 #define CONFIG_FREI0R_FILTER 0
 #define CONFIG_FSPP_FILTER 0
+#define CONFIG_GBLUR_FILTER 0
 #define CONFIG_GEQ_FILTER 0
 #define CONFIG_GRADFUN_FILTER 0
 #define CONFIG_HALDCLUT_FILTER 0
 #define CONFIG_HFLIP_FILTER 0
 #define CONFIG_HISTEQ_FILTER 0
 #define CONFIG_HISTOGRAM_FILTER 0
 #define CONFIG_HQDN3D_FILTER 0
 #define CONFIG_HQX_FILTER 0
+#define CONFIG_HSTACK_FILTER 0
+#define CONFIG_HUE_FILTER 0
 #define CONFIG_HWDOWNLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_CUDA_FILTER 0
-#define CONFIG_HSTACK_FILTER 0
-#define CONFIG_HUE_FILTER 0
+#define CONFIG_HYSTERESIS_FILTER 0
 #define CONFIG_IDET_FILTER 0
 #define CONFIG_IL_FILTER 0
 #define CONFIG_INFLATE_FILTER 0
 #define CONFIG_INTERLACE_FILTER 0
 #define CONFIG_INTERLEAVE_FILTER 0
 #define CONFIG_KERNDEINT_FILTER 0
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LOOP_FILTER 0
+#define CONFIG_LUT_FILTER 0
+#define CONFIG_LUT2_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
-#define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
+#define CONFIG_MASKEDCLAMP_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_MESTIMATE_FILTER 0
 #define CONFIG_METADATA_FILTER 0
+#define CONFIG_MINTERPOLATE_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_FILTER 0
+#define CONFIG_NLMEANS_FILTER 0
 #define CONFIG_NNEDI_FILTER 0
 #define CONFIG_NOFORMAT_FILTER 0
 #define CONFIG_NOISE_FILTER 0
 #define CONFIG_NULL_FILTER 0
 #define CONFIG_OCR_FILTER 0
 #define CONFIG_OCV_FILTER 0
 #define CONFIG_OVERLAY_FILTER 0
 #define CONFIG_OWDENOISE_FILTER 0
@@ -1759,48 +1789,51 @@
 #define CONFIG_PALETTEGEN_FILTER 0
 #define CONFIG_PALETTEUSE_FILTER 0
 #define CONFIG_PERMS_FILTER 0
 #define CONFIG_PERSPECTIVE_FILTER 0
 #define CONFIG_PHASE_FILTER 0
 #define CONFIG_PIXDESCTEST_FILTER 0
 #define CONFIG_PP_FILTER 0
 #define CONFIG_PP7_FILTER 0
+#define CONFIG_PREWITT_FILTER 0
 #define CONFIG_PSNR_FILTER 0
 #define CONFIG_PULLUP_FILTER 0
 #define CONFIG_QP_FILTER 0
 #define CONFIG_RANDOM_FILTER 0
 #define CONFIG_READVITC_FILTER 0
 #define CONFIG_REALTIME_FILTER 0
 #define CONFIG_REMAP_FILTER 0
 #define CONFIG_REMOVEGRAIN_FILTER 0
 #define CONFIG_REMOVELOGO_FILTER 0
 #define CONFIG_REPEATFIELDS_FILTER 0
 #define CONFIG_REVERSE_FILTER 0
 #define CONFIG_ROTATE_FILTER 0
 #define CONFIG_SAB_FILTER 0
 #define CONFIG_SCALE_FILTER 0
-#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SCALE_NPP_FILTER 0
 #define CONFIG_SCALE_VAAPI_FILTER 0
+#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SELECT_FILTER 0
 #define CONFIG_SELECTIVECOLOR_FILTER 0
 #define CONFIG_SENDCMD_FILTER 0
 #define CONFIG_SEPARATEFIELDS_FILTER 0
 #define CONFIG_SETDAR_FILTER 0
 #define CONFIG_SETFIELD_FILTER 0
 #define CONFIG_SETPTS_FILTER 0
 #define CONFIG_SETSAR_FILTER 0
 #define CONFIG_SETTB_FILTER 0
 #define CONFIG_SHOWINFO_FILTER 0
 #define CONFIG_SHOWPALETTE_FILTER 0
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
+#define CONFIG_SIDEDATA_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_FILTER 0
+#define CONFIG_SOBEL_FILTER 0
 #define CONFIG_SPLIT_FILTER 0
 #define CONFIG_SPP_FILTER 0
 #define CONFIG_SSIM_FILTER 0
 #define CONFIG_STEREO3D_FILTER 0
 #define CONFIG_STREAMSELECT_FILTER 0
 #define CONFIG_SUBTITLES_FILTER 0
 #define CONFIG_SUPER2XSAI_FILTER 0
 #define CONFIG_SWAPRECT_FILTER 0
@@ -1809,24 +1842,26 @@
 #define CONFIG_TELECINE_FILTER 0
 #define CONFIG_THUMBNAIL_FILTER 0
 #define CONFIG_TILE_FILTER 0
 #define CONFIG_TINTERLACE_FILTER 0
 #define CONFIG_TRANSPOSE_FILTER 0
 #define CONFIG_TRIM_FILTER 0
 #define CONFIG_UNSHARP_FILTER 0
 #define CONFIG_USPP_FILTER 0
+#define CONFIG_VAGUEDENOISER_FILTER 0
 #define CONFIG_VECTORSCOPE_FILTER 0
 #define CONFIG_VFLIP_FILTER 0
 #define CONFIG_VIDSTABDETECT_FILTER 0
 #define CONFIG_VIDSTABTRANSFORM_FILTER 0
 #define CONFIG_VIGNETTE_FILTER 0
 #define CONFIG_VSTACK_FILTER 0
 #define CONFIG_W3FDIF_FILTER 0
 #define CONFIG_WAVEFORM_FILTER 0
+#define CONFIG_WEAVE_FILTER 0
 #define CONFIG_XBR_FILTER 0
 #define CONFIG_YADIF_FILTER 0
 #define CONFIG_ZMQ_FILTER 0
 #define CONFIG_ZOOMPAN_FILTER 0
 #define CONFIG_ZSCALE_FILTER 0
 #define CONFIG_ALLRGB_FILTER 0
 #define CONFIG_ALLYUV_FILTER 0
 #define CONFIG_CELLAUTO_FILTER 0
@@ -1838,76 +1873,87 @@
 #define CONFIG_MANDELBROT_FILTER 0
 #define CONFIG_MPTESTSRC_FILTER 0
 #define CONFIG_NULLSRC_FILTER 0
 #define CONFIG_RGBTESTSRC_FILTER 0
 #define CONFIG_SMPTEBARS_FILTER 0
 #define CONFIG_SMPTEHDBARS_FILTER 0
 #define CONFIG_TESTSRC_FILTER 0
 #define CONFIG_TESTSRC2_FILTER 0
+#define CONFIG_YUVTESTSRC_FILTER 0
 #define CONFIG_NULLSINK_FILTER 0
 #define CONFIG_ADRAWGRAPH_FILTER 0
 #define CONFIG_AHISTOGRAM_FILTER 0
 #define CONFIG_APHASEMETER_FILTER 0
 #define CONFIG_AVECTORSCOPE_FILTER 0
 #define CONFIG_CONCAT_FILTER 0
 #define CONFIG_SHOWCQT_FILTER 0
 #define CONFIG_SHOWFREQS_FILTER 0
 #define CONFIG_SHOWSPECTRUM_FILTER 0
 #define CONFIG_SHOWSPECTRUMPIC_FILTER 0
 #define CONFIG_SHOWVOLUME_FILTER 0
 #define CONFIG_SHOWWAVES_FILTER 0
 #define CONFIG_SHOWWAVESPIC_FILTER 0
 #define CONFIG_SPECTRUMSYNTH_FILTER 0
 #define CONFIG_AMOVIE_FILTER 0
 #define CONFIG_MOVIE_FILTER 0
+#define CONFIG_H263_CUVID_HWACCEL 0
 #define CONFIG_H263_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_CUVID_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
+#define CONFIG_H264_MEDIACODEC_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
 #define CONFIG_H264_VAAPI_HWACCEL 0
 #define CONFIG_H264_VDA_HWACCEL 0
 #define CONFIG_H264_VDA_OLD_HWACCEL 0
 #define CONFIG_H264_VDPAU_HWACCEL 0
 #define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_HEVC_CUVID_HWACCEL 0
 #define CONFIG_HEVC_D3D11VA_HWACCEL 0
 #define CONFIG_HEVC_DXVA2_HWACCEL 0
+#define CONFIG_HEVC_MEDIACODEC_HWACCEL 0
 #define CONFIG_HEVC_QSV_HWACCEL 0
 #define CONFIG_HEVC_VAAPI_HWACCEL 0
 #define CONFIG_HEVC_VDPAU_HWACCEL 0
+#define CONFIG_MJPEG_CUVID_HWACCEL 0
+#define CONFIG_MPEG1_CUVID_HWACCEL 0
 #define CONFIG_MPEG1_XVMC_HWACCEL 0
 #define CONFIG_MPEG1_VDPAU_HWACCEL 0
 #define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG2_CUVID_HWACCEL 0
 #define CONFIG_MPEG2_XVMC_HWACCEL 0
 #define CONFIG_MPEG2_D3D11VA_HWACCEL 0
 #define CONFIG_MPEG2_DXVA2_HWACCEL 0
 #define CONFIG_MPEG2_MMAL_HWACCEL 0
 #define CONFIG_MPEG2_QSV_HWACCEL 0
 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
 #define CONFIG_MPEG2_VDPAU_HWACCEL 0
 #define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG4_CUVID_HWACCEL 0
+#define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0
 #define CONFIG_MPEG4_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_VC1_CUVID_HWACCEL 0
 #define CONFIG_VC1_D3D11VA_HWACCEL 0
 #define CONFIG_VC1_DXVA2_HWACCEL 0
 #define CONFIG_VC1_VAAPI_HWACCEL 0
 #define CONFIG_VC1_VDPAU_HWACCEL 0
 #define CONFIG_VC1_MMAL_HWACCEL 0
 #define CONFIG_VC1_QSV_HWACCEL 0
 #define CONFIG_VP8_CUVID_HWACCEL 0
+#define CONFIG_VP8_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_CUVID_HWACCEL 0
 #define CONFIG_VP9_D3D11VA_HWACCEL 0
 #define CONFIG_VP9_DXVA2_HWACCEL 0
+#define CONFIG_VP9_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_D3D11VA_HWACCEL 0
 #define CONFIG_WMV3_DXVA2_HWACCEL 0
 #define CONFIG_WMV3_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_VDPAU_HWACCEL 0
 #define CONFIG_ALSA_INDEV 0
 #define CONFIG_AVFOUNDATION_INDEV 0
 #define CONFIG_BKTR_INDEV 0
@@ -1954,16 +2000,17 @@
 #define CONFIG_DIRAC_MUXER 0
 #define CONFIG_DNXHD_MUXER 0
 #define CONFIG_DTS_MUXER 0
 #define CONFIG_DV_MUXER 0
 #define CONFIG_EAC3_MUXER 0
 #define CONFIG_F4V_MUXER 0
 #define CONFIG_FFM_MUXER 0
 #define CONFIG_FFMETADATA_MUXER 0
+#define CONFIG_FIFO_MUXER 0
 #define CONFIG_FILMSTRIP_MUXER 0
 #define CONFIG_FLAC_MUXER 0
 #define CONFIG_FLV_MUXER 0
 #define CONFIG_FRAMECRC_MUXER 0
 #define CONFIG_FRAMEHASH_MUXER 0
 #define CONFIG_FRAMEMD5_MUXER 0
 #define CONFIG_G722_MUXER 0
 #define CONFIG_G723_1_MUXER 0
@@ -2011,16 +2058,17 @@
 #define CONFIG_MPJPEG_MUXER 0
 #define CONFIG_MXF_MUXER 0
 #define CONFIG_MXF_D10_MUXER 0
 #define CONFIG_MXF_OPATOM_MUXER 0
 #define CONFIG_NULL_MUXER 0
 #define CONFIG_NUT_MUXER 0
 #define CONFIG_OGA_MUXER 0
 #define CONFIG_OGG_MUXER 0
+#define CONFIG_OGV_MUXER 0
 #define CONFIG_OMA_MUXER 0
 #define CONFIG_OPUS_MUXER 0
 #define CONFIG_PCM_ALAW_MUXER 0
 #define CONFIG_PCM_MULAW_MUXER 0
 #define CONFIG_PCM_F64BE_MUXER 0
 #define CONFIG_PCM_F64LE_MUXER 0
 #define CONFIG_PCM_F32BE_MUXER 0
 #define CONFIG_PCM_F32LE_MUXER 0
@@ -2057,16 +2105,17 @@
 #define CONFIG_SPDIF_MUXER 0
 #define CONFIG_SRT_MUXER 0
 #define CONFIG_SWF_MUXER 0
 #define CONFIG_TEE_MUXER 0
 #define CONFIG_TG2_MUXER 0
 #define CONFIG_TGP_MUXER 0
 #define CONFIG_MKVTIMESTAMP_V2_MUXER 0
 #define CONFIG_TRUEHD_MUXER 0
+#define CONFIG_TTA_MUXER 0
 #define CONFIG_UNCODEDFRAMECRC_MUXER 0
 #define CONFIG_VC1_MUXER 0
 #define CONFIG_VC1T_MUXER 0
 #define CONFIG_VOC_MUXER 0
 #define CONFIG_W64_MUXER 0
 #define CONFIG_WAV_MUXER 0
 #define CONFIG_WEBM_MUXER 0
 #define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
@@ -2080,17 +2129,17 @@
 #define CONFIG_LIBNUT_MUXER 0
 #define CONFIG_ALSA_OUTDEV 0
 #define CONFIG_CACA_OUTDEV 0
 #define CONFIG_DECKLINK_OUTDEV 0
 #define CONFIG_FBDEV_OUTDEV 0
 #define CONFIG_OPENGL_OUTDEV 0
 #define CONFIG_OSS_OUTDEV 0
 #define CONFIG_PULSE_OUTDEV 0
-#define CONFIG_SDL_OUTDEV 0
+#define CONFIG_SDL2_OUTDEV 0
 #define CONFIG_SNDIO_OUTDEV 0
 #define CONFIG_V4L2_OUTDEV 0
 #define CONFIG_XV_OUTDEV 0
 #define CONFIG_AAC_PARSER 0
 #define CONFIG_AAC_LATM_PARSER 0
 #define CONFIG_AC3_PARSER 0
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
@@ -2152,16 +2201,17 @@
 #define CONFIG_RTMPS_PROTOCOL 0
 #define CONFIG_RTMPT_PROTOCOL 0
 #define CONFIG_RTMPTE_PROTOCOL 0
 #define CONFIG_RTMPTS_PROTOCOL 0
 #define CONFIG_RTP_PROTOCOL 0
 #define CONFIG_SCTP_PROTOCOL 0
 #define CONFIG_SRTP_PROTOCOL 0
 #define CONFIG_SUBFILE_PROTOCOL 0
+#define CONFIG_TEE_PROTOCOL 0
 #define CONFIG_TCP_PROTOCOL 0
 #define CONFIG_TLS_GNUTLS_PROTOCOL 0
 #define CONFIG_TLS_SCHANNEL_PROTOCOL 0
 #define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0
 #define CONFIG_TLS_OPENSSL_PROTOCOL 0
 #define CONFIG_UDP_PROTOCOL 0
 #define CONFIG_UDPLITE_PROTOCOL 0
 #define CONFIG_UNIX_PROTOCOL 0
--- a/media/ffvpx/config_unix32.h
+++ b/media/ffvpx/config_unix32.h
@@ -4,17 +4,17 @@
 #define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-asm --enable-yasm --disable-asm --disable-yasm --cc='gcc -m32'"
 #define FFMPEG_LICENSE "LGPL version 2.1 or later"
 #define CONFIG_THIS_YEAR 2016
 #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
 #define AVCONV_DATADIR "/usr/local/share/ffmpeg"
 #define CC_IDENT "gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)"
 #define av_restrict restrict
 #define EXTERN_PREFIX ""
-#define EXTERN_ASM 
+#define EXTERN_ASM
 #define BUILDSUF ""
 #define SLIBSUF ".so"
 #define HAVE_MMX2 HAVE_MMXEXT
 #define SWS_MAX_FILTER_SIZE 256
 #define ARCH_AARCH64 0
 #define ARCH_ALPHA 0
 #define ARCH_ARM 0
 #define ARCH_AVR32 0
@@ -192,17 +192,16 @@
 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
 #define HAVE_CABS 1
 #define HAVE_CEXP 1
 #define HAVE_INLINE_ASM 1
 #define HAVE_SYMVER 1
 #define HAVE_YASM 0
 #define HAVE_BIGENDIAN 0
 #define HAVE_FAST_UNALIGNED 0
-#define HAVE_INCOMPATIBLE_LIBAV_ABI 0
 #define HAVE_ALSA_ASOUNDLIB_H 0
 #define HAVE_ALTIVEC_H 0
 #define HAVE_ARPA_INET_H 1
 #define HAVE_ASM_TYPES_H 1
 #define HAVE_CDIO_PARANOIA_H 0
 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0
 #define HAVE_DISPATCH_DISPATCH_H 0
 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0
@@ -295,16 +294,17 @@
 #define HAVE_GETTIMEOFDAY 1
 #define HAVE_GLOB 1
 #define HAVE_GLXGETPROCADDRESS 0
 #define HAVE_GMTIME_R 1
 #define HAVE_INET_ATON 1
 #define HAVE_ISATTY 1
 #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
 #define HAVE_KBHIT 0
+#define HAVE_LOADLIBRARY 0
 #define HAVE_LSTAT 1
 #define HAVE_LZO1X_999_COMPRESS 0
 #define HAVE_MACH_ABSOLUTE_TIME 0
 #define HAVE_MAPVIEWOFFILE 0
 #define HAVE_MKSTEMP 1
 #define HAVE_MMAP 1
 #define HAVE_MPROTECT 1
 #define HAVE_NANOSLEEP 1
@@ -368,17 +368,17 @@
 #define HAVE_LIBC_MSVCRT 0
 #define HAVE_LIBDC1394_1 0
 #define HAVE_LIBDC1394_2 0
 #define HAVE_MAKEINFO 0
 #define HAVE_MAKEINFO_HTML 0
 #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
 #define HAVE_PERL 1
 #define HAVE_POD2MAN 1
-#define HAVE_SDL 0
+#define HAVE_SDL2 0
 #define HAVE_SECTION_DATA_REL_RO 1
 #define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_DRM 0
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
 #define HAVE_WINRT 0
 #define HAVE_XLIB 0
@@ -393,24 +393,25 @@
 #define CONFIG_DEMUXERS 0
 #define CONFIG_MUXERS 0
 #define CONFIG_PROTOCOLS 0
 #define CONFIG_DOC 0
 #define CONFIG_HTMLPAGES 0
 #define CONFIG_MANPAGES 1
 #define CONFIG_PODPAGES 1
 #define CONFIG_TXTPAGES 0
+#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_AVIO_READING_EXAMPLE 1
-#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_DECODING_ENCODING_EXAMPLE 0
 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0
 #define CONFIG_EXTRACT_MVS_EXAMPLE 0
 #define CONFIG_FILTER_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0
+#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0
 #define CONFIG_METADATA_EXAMPLE 0
 #define CONFIG_MUXING_EXAMPLE 0
 #define CONFIG_QSVDEC_EXAMPLE 0
 #define CONFIG_REMUXING_EXAMPLE 0
 #define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
 #define CONFIG_SCALING_VIDEO_EXAMPLE 0
 #define CONFIG_TRANSCODE_AAC_EXAMPLE 0
 #define CONFIG_TRANSCODING_EXAMPLE 0
@@ -429,17 +430,16 @@
 #define CONFIG_LIBASS 0
 #define CONFIG_LIBBLURAY 0
 #define CONFIG_LIBBS2B 0
 #define CONFIG_LIBCACA 0
 #define CONFIG_LIBCDIO 0
 #define CONFIG_LIBCELT 0
 #define CONFIG_LIBDC1394 0
 #define CONFIG_LIBEBUR128 0
-#define CONFIG_LIBFAAC 0
 #define CONFIG_LIBFDK_AAC 0
 #define CONFIG_LIBFLITE 0
 #define CONFIG_LIBFONTCONFIG 0
 #define CONFIG_LIBFREETYPE 0
 #define CONFIG_LIBFRIBIDI 0
 #define CONFIG_LIBGME 0
 #define CONFIG_LIBGSM 0
 #define CONFIG_LIBIEC61883 0
@@ -448,16 +448,17 @@
 #define CONFIG_LIBMODPLUG 0
 #define CONFIG_LIBMP3LAME 0
 #define CONFIG_LIBNUT 0
 #define CONFIG_LIBOPENCORE_AMRNB 0
 #define CONFIG_LIBOPENCORE_AMRWB 0
 #define CONFIG_LIBOPENCV 0
 #define CONFIG_LIBOPENH264 0
 #define CONFIG_LIBOPENJPEG 0
+#define CONFIG_LIBOPENMPT 0
 #define CONFIG_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
 #define CONFIG_LIBRTMP 0
 #define CONFIG_LIBRUBBERBAND 0
 #define CONFIG_LIBSCHROEDINGER 0
 #define CONFIG_LIBSHINE 0
 #define CONFIG_LIBSMBCLIENT 0
 #define CONFIG_LIBSNAPPY 0
@@ -489,16 +490,17 @@
 #define CONFIG_MEDIACODEC 0
 #define CONFIG_NETCDF 0
 #define CONFIG_OPENAL 0
 #define CONFIG_OPENCL 0
 #define CONFIG_OPENGL 0
 #define CONFIG_OPENSSL 0
 #define CONFIG_SCHANNEL 0
 #define CONFIG_SDL 0
+#define CONFIG_SDL2 0
 #define CONFIG_SECURETRANSPORT 0
 #define CONFIG_X11GRAB 0
 #define CONFIG_XLIB 0
 #define CONFIG_ZLIB 0
 #define CONFIG_AUDIOTOOLBOX 0
 #define CONFIG_CUDA 0
 #define CONFIG_CUVID 0
 #define CONFIG_D3D11VA 0
@@ -547,17 +549,16 @@
 #define CONFIG_FFT 0
 #define CONFIG_LSP 0
 #define CONFIG_LZO 0
 #define CONFIG_MDCT 0
 #define CONFIG_PIXELUTILS 0
 #define CONFIG_NETWORK 0
 #define CONFIG_RDFT 0
 #define CONFIG_FONTCONFIG 0
-#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0
 #define CONFIG_MEMALIGN_HACK 0
 #define CONFIG_MEMORY_POISONING 0
 #define CONFIG_NEON_CLOBBER_TEST 0
 #define CONFIG_PIC 0
 #define CONFIG_POD2MAN 1
 #define CONFIG_RAISE_MAJOR 0
 #define CONFIG_THUMB 0
 #define CONFIG_VALGRIND_BACKTRACE 0
@@ -991,16 +992,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S24BE_DECODER 0
 #define CONFIG_PCM_S24DAUD_DECODER 0
 #define CONFIG_PCM_S24LE_DECODER 0
 #define CONFIG_PCM_S24LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S32BE_DECODER 0
 #define CONFIG_PCM_S32LE_DECODER 0
 #define CONFIG_PCM_S32LE_PLANAR_DECODER 0
+#define CONFIG_PCM_S64BE_DECODER 0
+#define CONFIG_PCM_S64LE_DECODER 0
 #define CONFIG_PCM_U8_DECODER 0
 #define CONFIG_PCM_U16BE_DECODER 0
 #define CONFIG_PCM_U16LE_DECODER 0
 #define CONFIG_PCM_U24BE_DECODER 0
 #define CONFIG_PCM_U24LE_DECODER 0
 #define CONFIG_PCM_U32BE_DECODER 0
 #define CONFIG_PCM_U32LE_DECODER 0
 #define CONFIG_PCM_ZORK_DECODER 0
@@ -1099,21 +1102,31 @@
 #define CONFIG_LIBSPEEX_DECODER 0
 #define CONFIG_LIBVORBIS_DECODER 0
 #define CONFIG_LIBVPX_VP8_DECODER 0
 #define CONFIG_LIBVPX_VP9_DECODER 0
 #define CONFIG_LIBZVBI_TELETEXT_DECODER 0
 #define CONFIG_BINTEXT_DECODER 0
 #define CONFIG_XBIN_DECODER 0
 #define CONFIG_IDF_DECODER 0
+#define CONFIG_LIBOPENH264_DECODER 0
+#define CONFIG_H263_CUVID_DECODER 0
 #define CONFIG_H264_CUVID_DECODER 0
 #define CONFIG_HEVC_CUVID_DECODER 0
+#define CONFIG_HEVC_MEDIACODEC_DECODER 0
+#define CONFIG_MJPEG_CUVID_DECODER 0
+#define CONFIG_MPEG1_CUVID_DECODER 0
+#define CONFIG_MPEG2_CUVID_DECODER 0
+#define CONFIG_MPEG4_CUVID_DECODER 0
+#define CONFIG_MPEG4_MEDIACODEC_DECODER 0
 #define CONFIG_VC1_CUVID_DECODER 0
 #define CONFIG_VP8_CUVID_DECODER 0
+#define CONFIG_VP8_MEDIACODEC_DECODER 0
 #define CONFIG_VP9_CUVID_DECODER 0
+#define CONFIG_VP9_MEDIACODEC_DECODER 0
 #define CONFIG_AA_DEMUXER 0
 #define CONFIG_AAC_DEMUXER 0
 #define CONFIG_AC3_DEMUXER 0
 #define CONFIG_ACM_DEMUXER 0
 #define CONFIG_ACT_DEMUXER 0
 #define CONFIG_ADF_DEMUXER 0
 #define CONFIG_ADP_DEMUXER 0
 #define CONFIG_ADS_DEMUXER 0
@@ -1373,16 +1386,17 @@
 #define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
 #define CONFIG_LIBGME_DEMUXER 0
 #define CONFIG_LIBMODPLUG_DEMUXER 0
 #define CONFIG_LIBNUT_DEMUXER 0
+#define CONFIG_LIBOPENMPT_DEMUXER 0
 #define CONFIG_A64MULTI_ENCODER 0
 #define CONFIG_A64MULTI5_ENCODER 0
 #define CONFIG_ALIAS_PIX_ENCODER 0
 #define CONFIG_AMV_ENCODER 0
 #define CONFIG_APNG_ENCODER 0
 #define CONFIG_ASV1_ENCODER 0
 #define CONFIG_ASV2_ENCODER 0
 #define CONFIG_AVRP_ENCODER 0
@@ -1459,22 +1473,24 @@
 #define CONFIG_AAC_ENCODER 0
 #define CONFIG_AC3_ENCODER 0
 #define CONFIG_AC3_FIXED_ENCODER 0
 #define CONFIG_ALAC_ENCODER 0
 #define CONFIG_DCA_ENCODER 0
 #define CONFIG_EAC3_ENCODER 0
 #define CONFIG_FLAC_ENCODER 0
 #define CONFIG_G723_1_ENCODER 0
+#define CONFIG_MLP_ENCODER 0
 #define CONFIG_MP2_ENCODER 0
 #define CONFIG_MP2FIXED_ENCODER 0
 #define CONFIG_NELLYMOSER_ENCODER 0
 #define CONFIG_RA_144_ENCODER 0
 #define CONFIG_SONIC_ENCODER 0
 #define CONFIG_SONIC_LS_ENCODER 0
+#define CONFIG_TRUEHD_ENCODER 0
 #define CONFIG_TTA_ENCODER 0
 #define CONFIG_VORBIS_ENCODER 0
 #define CONFIG_WAVPACK_ENCODER 0
 #define CONFIG_WMAV1_ENCODER 0
 #define CONFIG_WMAV2_ENCODER 0
 #define CONFIG_PCM_ALAW_ENCODER 0
 #define CONFIG_PCM_F32BE_ENCODER 0
 #define CONFIG_PCM_F32LE_ENCODER 0
@@ -1489,16 +1505,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S24BE_ENCODER 0
 #define CONFIG_PCM_S24DAUD_ENCODER 0
 #define CONFIG_PCM_S24LE_ENCODER 0
 #define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S32BE_ENCODER 0
 #define CONFIG_PCM_S32LE_ENCODER 0
 #define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
+#define CONFIG_PCM_S64BE_ENCODER 0
+#define CONFIG_PCM_S64LE_ENCODER 0
 #define CONFIG_PCM_U8_ENCODER 0
 #define CONFIG_PCM_U16BE_ENCODER 0
 #define CONFIG_PCM_U16LE_ENCODER 0
 #define CONFIG_PCM_U24BE_ENCODER 0
 #define CONFIG_PCM_U24LE_ENCODER 0
 #define CONFIG_PCM_U32BE_ENCODER 0
 #define CONFIG_PCM_U32LE_ENCODER 0
 #define CONFIG_ROQ_DPCM_ENCODER 0
@@ -1520,17 +1538,16 @@
 #define CONFIG_TEXT_ENCODER 0
 #define CONFIG_WEBVTT_ENCODER 0
 #define CONFIG_XSUB_ENCODER 0
 #define CONFIG_AAC_AT_ENCODER 0
 #define CONFIG_ALAC_AT_ENCODER 0
 #define CONFIG_ILBC_AT_ENCODER 0
 #define CONFIG_PCM_ALAW_AT_ENCODER 0
 #define CONFIG_PCM_MULAW_AT_ENCODER 0
-#define CONFIG_LIBFAAC_ENCODER 0
 #define CONFIG_LIBFDK_AAC_ENCODER 0
 #define CONFIG_LIBGSM_ENCODER 0
 #define CONFIG_LIBGSM_MS_ENCODER 0
 #define CONFIG_LIBILBC_ENCODER 0
 #define CONFIG_LIBMP3LAME_ENCODER 0
 #define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
@@ -1565,16 +1582,17 @@
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_HEVC_VAAPI_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MJPEG_VAAPI_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ABENCH_FILTER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_FILTER 0
+#define CONFIG_ACRUSHER_FILTER 0
 #define CONFIG_ADELAY_FILTER 0
 #define CONFIG_AECHO_FILTER 0
 #define CONFIG_AEMPHASIS_FILTER 0
 #define CONFIG_AEVAL_FILTER 0
 #define CONFIG_AFADE_FILTER 0
 #define CONFIG_AFFTFILT_FILTER 0
 #define CONFIG_AFORMAT_FILTER 0
 #define CONFIG_AGATE_FILTER 0
@@ -1596,16 +1614,17 @@
 #define CONFIG_AREVERSE_FILTER 0
 #define CONFIG_ASELECT_FILTER 0
 #define CONFIG_ASENDCMD_FILTER 0
 #define CONFIG_ASETNSAMPLES_FILTER 0
 #define CONFIG_ASETPTS_FILTER 0
 #define CONFIG_ASETRATE_FILTER 0
 #define CONFIG_ASETTB_FILTER 0
 #define CONFIG_ASHOWINFO_FILTER 0
+#define CONFIG_ASIDEDATA_FILTER 0
 #define CONFIG_ASPLIT_FILTER 0
 #define CONFIG_ASTATS_FILTER 0
 #define CONFIG_ASTREAMSELECT_FILTER 0
 #define CONFIG_ASYNCTS_FILTER 0
 #define CONFIG_ATEMPO_FILTER 0
 #define CONFIG_ATRIM_FILTER 0
 #define CONFIG_AZMQ_FILTER 0
 #define CONFIG_BANDPASS_FILTER 0
@@ -1613,16 +1632,17 @@
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
 #define CONFIG_BS2B_FILTER 0
 #define CONFIG_CHANNELMAP_FILTER 0
 #define CONFIG_CHANNELSPLIT_FILTER 0
 #define CONFIG_CHORUS_FILTER 0
 #define CONFIG_COMPAND_FILTER 0
 #define CONFIG_COMPENSATIONDELAY_FILTER 0
+#define CONFIG_CRYSTALIZER_FILTER 0
 #define CONFIG_DCSHIFT_FILTER 0
 #define CONFIG_DYNAUDNORM_FILTER 0
 #define CONFIG_EARWAX_FILTER 0
 #define CONFIG_EBUR128_FILTER 0
 #define CONFIG_EQUALIZER_FILTER 0
 #define CONFIG_EXTRASTEREO_FILTER 0
 #define CONFIG_FIREQUALIZER_FILTER 0
 #define CONFIG_FLANGER_FILTER 0
@@ -1651,20 +1671,22 @@
 #define CONFIG_AEVALSRC_FILTER 0
 #define CONFIG_ANOISESRC_FILTER 0
 #define CONFIG_ANULLSRC_FILTER 0
 #define CONFIG_FLITE_FILTER 0
 #define CONFIG_SINE_FILTER 0
 #define CONFIG_ANULLSINK_FILTER 0
 #define CONFIG_ALPHAEXTRACT_FILTER 0
 #define CONFIG_ALPHAMERGE_FILTER 0
+#define CONFIG_ASS_FILTER 0
 #define CONFIG_ATADENOISE_FILTER 0
-#define CONFIG_ASS_FILTER 0
+#define CONFIG_AVGBLUR_FILTER 0
+#define CONFIG_BBOX_FILTER 0
 #define CONFIG_BENCH_FILTER 0
-#define CONFIG_BBOX_FILTER 0
+#define CONFIG_BITPLANENOISE_FILTER 0
 #define CONFIG_BLACKDETECT_FILTER 0
 #define CONFIG_BLACKFRAME_FILTER 0
 #define CONFIG_BLEND_FILTER 0
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_BWDIF_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CIESCOPE_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
@@ -1710,47 +1732,54 @@
 #define CONFIG_FIND_RECT_FILTER 0
 #define CONFIG_FORMAT_FILTER 0
 #define CONFIG_FPS_FILTER 0
 #define CONFIG_FRAMEPACK_FILTER 0
 #define CONFIG_FRAMERATE_FILTER 0
 #define CONFIG_FRAMESTEP_FILTER 0
 #define CONFIG_FREI0R_FILTER 0
 #define CONFIG_FSPP_FILTER 0
+#define CONFIG_GBLUR_FILTER 0
 #define CONFIG_GEQ_FILTER 0
 #define CONFIG_GRADFUN_FILTER 0
 #define CONFIG_HALDCLUT_FILTER 0
 #define CONFIG_HFLIP_FILTER 0
 #define CONFIG_HISTEQ_FILTER 0
 #define CONFIG_HISTOGRAM_FILTER 0
 #define CONFIG_HQDN3D_FILTER 0
 #define CONFIG_HQX_FILTER 0
+#define CONFIG_HSTACK_FILTER 0
+#define CONFIG_HUE_FILTER 0
 #define CONFIG_HWDOWNLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_CUDA_FILTER 0
-#define CONFIG_HSTACK_FILTER 0
-#define CONFIG_HUE_FILTER 0
+#define CONFIG_HYSTERESIS_FILTER 0
 #define CONFIG_IDET_FILTER 0
 #define CONFIG_IL_FILTER 0
 #define CONFIG_INFLATE_FILTER 0
 #define CONFIG_INTERLACE_FILTER 0
 #define CONFIG_INTERLEAVE_FILTER 0
 #define CONFIG_KERNDEINT_FILTER 0
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LOOP_FILTER 0
+#define CONFIG_LUT_FILTER 0
+#define CONFIG_LUT2_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
-#define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
+#define CONFIG_MASKEDCLAMP_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_MESTIMATE_FILTER 0
 #define CONFIG_METADATA_FILTER 0
+#define CONFIG_MINTERPOLATE_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_FILTER 0
+#define CONFIG_NLMEANS_FILTER 0
 #define CONFIG_NNEDI_FILTER 0
 #define CONFIG_NOFORMAT_FILTER 0
 #define CONFIG_NOISE_FILTER 0
 #define CONFIG_NULL_FILTER 0
 #define CONFIG_OCR_FILTER 0
 #define CONFIG_OCV_FILTER 0
 #define CONFIG_OVERLAY_FILTER 0
 #define CONFIG_OWDENOISE_FILTER 0
@@ -1758,48 +1787,51 @@
 #define CONFIG_PALETTEGEN_FILTER 0
 #define CONFIG_PALETTEUSE_FILTER 0
 #define CONFIG_PERMS_FILTER 0
 #define CONFIG_PERSPECTIVE_FILTER 0
 #define CONFIG_PHASE_FILTER 0
 #define CONFIG_PIXDESCTEST_FILTER 0
 #define CONFIG_PP_FILTER 0
 #define CONFIG_PP7_FILTER 0
+#define CONFIG_PREWITT_FILTER 0
 #define CONFIG_PSNR_FILTER 0
 #define CONFIG_PULLUP_FILTER 0
 #define CONFIG_QP_FILTER 0
 #define CONFIG_RANDOM_FILTER 0
 #define CONFIG_READVITC_FILTER 0
 #define CONFIG_REALTIME_FILTER 0
 #define CONFIG_REMAP_FILTER 0
 #define CONFIG_REMOVEGRAIN_FILTER 0
 #define CONFIG_REMOVELOGO_FILTER 0
 #define CONFIG_REPEATFIELDS_FILTER 0
 #define CONFIG_REVERSE_FILTER 0
 #define CONFIG_ROTATE_FILTER 0
 #define CONFIG_SAB_FILTER 0
 #define CONFIG_SCALE_FILTER 0
-#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SCALE_NPP_FILTER 0
 #define CONFIG_SCALE_VAAPI_FILTER 0
+#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SELECT_FILTER 0
 #define CONFIG_SELECTIVECOLOR_FILTER 0
 #define CONFIG_SENDCMD_FILTER 0
 #define CONFIG_SEPARATEFIELDS_FILTER 0
 #define CONFIG_SETDAR_FILTER 0
 #define CONFIG_SETFIELD_FILTER 0
 #define CONFIG_SETPTS_FILTER 0
 #define CONFIG_SETSAR_FILTER 0
 #define CONFIG_SETTB_FILTER 0
 #define CONFIG_SHOWINFO_FILTER 0
 #define CONFIG_SHOWPALETTE_FILTER 0
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
+#define CONFIG_SIDEDATA_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_FILTER 0
+#define CONFIG_SOBEL_FILTER 0
 #define CONFIG_SPLIT_FILTER 0
 #define CONFIG_SPP_FILTER 0
 #define CONFIG_SSIM_FILTER 0
 #define CONFIG_STEREO3D_FILTER 0
 #define CONFIG_STREAMSELECT_FILTER 0
 #define CONFIG_SUBTITLES_FILTER 0
 #define CONFIG_SUPER2XSAI_FILTER 0
 #define CONFIG_SWAPRECT_FILTER 0
@@ -1808,24 +1840,26 @@
 #define CONFIG_TELECINE_FILTER 0
 #define CONFIG_THUMBNAIL_FILTER 0
 #define CONFIG_TILE_FILTER 0
 #define CONFIG_TINTERLACE_FILTER 0
 #define CONFIG_TRANSPOSE_FILTER 0
 #define CONFIG_TRIM_FILTER 0
 #define CONFIG_UNSHARP_FILTER 0
 #define CONFIG_USPP_FILTER 0
+#define CONFIG_VAGUEDENOISER_FILTER 0
 #define CONFIG_VECTORSCOPE_FILTER 0
 #define CONFIG_VFLIP_FILTER 0
 #define CONFIG_VIDSTABDETECT_FILTER 0
 #define CONFIG_VIDSTABTRANSFORM_FILTER 0
 #define CONFIG_VIGNETTE_FILTER 0
 #define CONFIG_VSTACK_FILTER 0
 #define CONFIG_W3FDIF_FILTER 0
 #define CONFIG_WAVEFORM_FILTER 0
+#define CONFIG_WEAVE_FILTER 0
 #define CONFIG_XBR_FILTER 0
 #define CONFIG_YADIF_FILTER 0
 #define CONFIG_ZMQ_FILTER 0
 #define CONFIG_ZOOMPAN_FILTER 0
 #define CONFIG_ZSCALE_FILTER 0
 #define CONFIG_ALLRGB_FILTER 0
 #define CONFIG_ALLYUV_FILTER 0
 #define CONFIG_CELLAUTO_FILTER 0
@@ -1837,76 +1871,87 @@
 #define CONFIG_MANDELBROT_FILTER 0
 #define CONFIG_MPTESTSRC_FILTER 0
 #define CONFIG_NULLSRC_FILTER 0
 #define CONFIG_RGBTESTSRC_FILTER 0
 #define CONFIG_SMPTEBARS_FILTER 0
 #define CONFIG_SMPTEHDBARS_FILTER 0
 #define CONFIG_TESTSRC_FILTER 0
 #define CONFIG_TESTSRC2_FILTER 0
+#define CONFIG_YUVTESTSRC_FILTER 0
 #define CONFIG_NULLSINK_FILTER 0
 #define CONFIG_ADRAWGRAPH_FILTER 0
 #define CONFIG_AHISTOGRAM_FILTER 0
 #define CONFIG_APHASEMETER_FILTER 0
 #define CONFIG_AVECTORSCOPE_FILTER 0
 #define CONFIG_CONCAT_FILTER 0
 #define CONFIG_SHOWCQT_FILTER 0
 #define CONFIG_SHOWFREQS_FILTER 0
 #define CONFIG_SHOWSPECTRUM_FILTER 0
 #define CONFIG_SHOWSPECTRUMPIC_FILTER 0
 #define CONFIG_SHOWVOLUME_FILTER 0
 #define CONFIG_SHOWWAVES_FILTER 0
 #define CONFIG_SHOWWAVESPIC_FILTER 0
 #define CONFIG_SPECTRUMSYNTH_FILTER 0
 #define CONFIG_AMOVIE_FILTER 0
 #define CONFIG_MOVIE_FILTER 0
+#define CONFIG_H263_CUVID_HWACCEL 0
 #define CONFIG_H263_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_CUVID_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
+#define CONFIG_H264_MEDIACODEC_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
 #define CONFIG_H264_VAAPI_HWACCEL 0
 #define CONFIG_H264_VDA_HWACCEL 0
 #define CONFIG_H264_VDA_OLD_HWACCEL 0
 #define CONFIG_H264_VDPAU_HWACCEL 0
 #define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_HEVC_CUVID_HWACCEL 0
 #define CONFIG_HEVC_D3D11VA_HWACCEL 0
 #define CONFIG_HEVC_DXVA2_HWACCEL 0
+#define CONFIG_HEVC_MEDIACODEC_HWACCEL 0
 #define CONFIG_HEVC_QSV_HWACCEL 0
 #define CONFIG_HEVC_VAAPI_HWACCEL 0
 #define CONFIG_HEVC_VDPAU_HWACCEL 0
+#define CONFIG_MJPEG_CUVID_HWACCEL 0
+#define CONFIG_MPEG1_CUVID_HWACCEL 0
 #define CONFIG_MPEG1_XVMC_HWACCEL 0
 #define CONFIG_MPEG1_VDPAU_HWACCEL 0
 #define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG2_CUVID_HWACCEL 0
 #define CONFIG_MPEG2_XVMC_HWACCEL 0
 #define CONFIG_MPEG2_D3D11VA_HWACCEL 0
 #define CONFIG_MPEG2_DXVA2_HWACCEL 0
 #define CONFIG_MPEG2_MMAL_HWACCEL 0
 #define CONFIG_MPEG2_QSV_HWACCEL 0
 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
 #define CONFIG_MPEG2_VDPAU_HWACCEL 0
 #define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG4_CUVID_HWACCEL 0
+#define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0
 #define CONFIG_MPEG4_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_VC1_CUVID_HWACCEL 0
 #define CONFIG_VC1_D3D11VA_HWACCEL 0
 #define CONFIG_VC1_DXVA2_HWACCEL 0
 #define CONFIG_VC1_VAAPI_HWACCEL 0
 #define CONFIG_VC1_VDPAU_HWACCEL 0
 #define CONFIG_VC1_MMAL_HWACCEL 0
 #define CONFIG_VC1_QSV_HWACCEL 0
 #define CONFIG_VP8_CUVID_HWACCEL 0
+#define CONFIG_VP8_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_CUVID_HWACCEL 0
 #define CONFIG_VP9_D3D11VA_HWACCEL 0
 #define CONFIG_VP9_DXVA2_HWACCEL 0
+#define CONFIG_VP9_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_D3D11VA_HWACCEL 0
 #define CONFIG_WMV3_DXVA2_HWACCEL 0
 #define CONFIG_WMV3_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_VDPAU_HWACCEL 0
 #define CONFIG_ALSA_INDEV 0
 #define CONFIG_AVFOUNDATION_INDEV 0
 #define CONFIG_BKTR_INDEV 0
@@ -1953,16 +1998,17 @@
 #define CONFIG_DIRAC_MUXER 0
 #define CONFIG_DNXHD_MUXER 0
 #define CONFIG_DTS_MUXER 0
 #define CONFIG_DV_MUXER 0
 #define CONFIG_EAC3_MUXER 0
 #define CONFIG_F4V_MUXER 0
 #define CONFIG_FFM_MUXER 0
 #define CONFIG_FFMETADATA_MUXER 0
+#define CONFIG_FIFO_MUXER 0
 #define CONFIG_FILMSTRIP_MUXER 0
 #define CONFIG_FLAC_MUXER 0
 #define CONFIG_FLV_MUXER 0
 #define CONFIG_FRAMECRC_MUXER 0
 #define CONFIG_FRAMEHASH_MUXER 0
 #define CONFIG_FRAMEMD5_MUXER 0
 #define CONFIG_G722_MUXER 0
 #define CONFIG_G723_1_MUXER 0
@@ -2010,16 +2056,17 @@
 #define CONFIG_MPJPEG_MUXER 0
 #define CONFIG_MXF_MUXER 0
 #define CONFIG_MXF_D10_MUXER 0
 #define CONFIG_MXF_OPATOM_MUXER 0
 #define CONFIG_NULL_MUXER 0
 #define CONFIG_NUT_MUXER 0
 #define CONFIG_OGA_MUXER 0
 #define CONFIG_OGG_MUXER 0
+#define CONFIG_OGV_MUXER 0
 #define CONFIG_OMA_MUXER 0
 #define CONFIG_OPUS_MUXER 0
 #define CONFIG_PCM_ALAW_MUXER 0
 #define CONFIG_PCM_MULAW_MUXER 0
 #define CONFIG_PCM_F64BE_MUXER 0
 #define CONFIG_PCM_F64LE_MUXER 0
 #define CONFIG_PCM_F32BE_MUXER 0
 #define CONFIG_PCM_F32LE_MUXER 0
@@ -2056,16 +2103,17 @@
 #define CONFIG_SPDIF_MUXER 0
 #define CONFIG_SRT_MUXER 0
 #define CONFIG_SWF_MUXER 0
 #define CONFIG_TEE_MUXER 0
 #define CONFIG_TG2_MUXER 0
 #define CONFIG_TGP_MUXER 0
 #define CONFIG_MKVTIMESTAMP_V2_MUXER 0
 #define CONFIG_TRUEHD_MUXER 0
+#define CONFIG_TTA_MUXER 0
 #define CONFIG_UNCODEDFRAMECRC_MUXER 0
 #define CONFIG_VC1_MUXER 0
 #define CONFIG_VC1T_MUXER 0
 #define CONFIG_VOC_MUXER 0
 #define CONFIG_W64_MUXER 0
 #define CONFIG_WAV_MUXER 0
 #define CONFIG_WEBM_MUXER 0
 #define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
@@ -2079,17 +2127,17 @@
 #define CONFIG_LIBNUT_MUXER 0
 #define CONFIG_ALSA_OUTDEV 0
 #define CONFIG_CACA_OUTDEV 0
 #define CONFIG_DECKLINK_OUTDEV 0
 #define CONFIG_FBDEV_OUTDEV 0
 #define CONFIG_OPENGL_OUTDEV 0
 #define CONFIG_OSS_OUTDEV 0
 #define CONFIG_PULSE_OUTDEV 0
-#define CONFIG_SDL_OUTDEV 0
+#define CONFIG_SDL2_OUTDEV 0
 #define CONFIG_SNDIO_OUTDEV 0
 #define CONFIG_V4L2_OUTDEV 0
 #define CONFIG_XV_OUTDEV 0
 #define CONFIG_AAC_PARSER 0
 #define CONFIG_AAC_LATM_PARSER 0
 #define CONFIG_AC3_PARSER 0
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
@@ -2151,16 +2199,17 @@
 #define CONFIG_RTMPS_PROTOCOL 0
 #define CONFIG_RTMPT_PROTOCOL 0
 #define CONFIG_RTMPTE_PROTOCOL 0
 #define CONFIG_RTMPTS_PROTOCOL 0
 #define CONFIG_RTP_PROTOCOL 0
 #define CONFIG_SCTP_PROTOCOL 0
 #define CONFIG_SRTP_PROTOCOL 0
 #define CONFIG_SUBFILE_PROTOCOL 0
+#define CONFIG_TEE_PROTOCOL 0
 #define CONFIG_TCP_PROTOCOL 0
 #define CONFIG_TLS_GNUTLS_PROTOCOL 0
 #define CONFIG_TLS_SCHANNEL_PROTOCOL 0
 #define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0
 #define CONFIG_TLS_OPENSSL_PROTOCOL 0
 #define CONFIG_UDP_PROTOCOL 0
 #define CONFIG_UDPLITE_PROTOCOL 0
 #define CONFIG_UNIX_PROTOCOL 0
--- a/media/ffvpx/config_unix64.asm
+++ b/media/ffvpx/config_unix64.asm
@@ -176,17 +176,16 @@
 %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
 %define HAVE_CABS 1
 %define HAVE_CEXP 1
 %define HAVE_INLINE_ASM 1
 %define HAVE_SYMVER 1
 %define HAVE_YASM 1
 %define HAVE_BIGENDIAN 0
 %define HAVE_FAST_UNALIGNED 1
-%define HAVE_INCOMPATIBLE_LIBAV_ABI 0
 %define HAVE_ALSA_ASOUNDLIB_H 0
 %define HAVE_ALTIVEC_H 0
 %define HAVE_ARPA_INET_H 1
 %define HAVE_ASM_TYPES_H 1
 %define HAVE_CDIO_PARANOIA_H 0
 %define HAVE_CDIO_PARANOIA_PARANOIA_H 0
 %define HAVE_DISPATCH_DISPATCH_H 0
 %define HAVE_DEV_BKTR_IOCTL_BT848_H 0
@@ -279,16 +278,17 @@
 %define HAVE_GETTIMEOFDAY 1
 %define HAVE_GLOB 1
 %define HAVE_GLXGETPROCADDRESS 0
 %define HAVE_GMTIME_R 1
 %define HAVE_INET_ATON 1
 %define HAVE_ISATTY 1
 %define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
 %define HAVE_KBHIT 0
+%define HAVE_LOADLIBRARY 0
 %define HAVE_LSTAT 1
 %define HAVE_LZO1X_999_COMPRESS 0
 %define HAVE_MACH_ABSOLUTE_TIME 0
 %define HAVE_MAPVIEWOFFILE 0
 %define HAVE_MKSTEMP 1
 %define HAVE_MMAP 1
 %define HAVE_MPROTECT 1
 %define HAVE_NANOSLEEP 1
@@ -353,17 +353,17 @@
 %define HAVE_LIBC_MSVCRT 0
 %define HAVE_LIBDC1394_1 0
 %define HAVE_LIBDC1394_2 0
 %define HAVE_MAKEINFO 0
 %define HAVE_MAKEINFO_HTML 0
 %define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
 %define HAVE_PERL 1
 %define HAVE_POD2MAN 1
-%define HAVE_SDL 0
+%define HAVE_SDL2 0
 %define HAVE_SECTION_DATA_REL_RO 1
 %define HAVE_TEXI2HTML 0
 %define HAVE_THREADS 1
 %define HAVE_VAAPI_DRM 0
 %define HAVE_VAAPI_X11 0
 %define HAVE_VDPAU_X11 0
 %define HAVE_WINRT 0
 %define HAVE_XLIB 0
@@ -378,24 +378,25 @@
 %define CONFIG_DEMUXERS 0
 %define CONFIG_MUXERS 0
 %define CONFIG_PROTOCOLS 0
 %define CONFIG_DOC 0
 %define CONFIG_HTMLPAGES 0
 %define CONFIG_MANPAGES 1
 %define CONFIG_PODPAGES 1
 %define CONFIG_TXTPAGES 0
+%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 %define CONFIG_AVIO_READING_EXAMPLE 1
-%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 %define CONFIG_DECODING_ENCODING_EXAMPLE 0
 %define CONFIG_DEMUXING_DECODING_EXAMPLE 0
 %define CONFIG_EXTRACT_MVS_EXAMPLE 0
 %define CONFIG_FILTER_AUDIO_EXAMPLE 0
 %define CONFIG_FILTERING_AUDIO_EXAMPLE 0
 %define CONFIG_FILTERING_VIDEO_EXAMPLE 0
+%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0
 %define CONFIG_METADATA_EXAMPLE 0
 %define CONFIG_MUXING_EXAMPLE 0
 %define CONFIG_QSVDEC_EXAMPLE 0
 %define CONFIG_REMUXING_EXAMPLE 0
 %define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
 %define CONFIG_SCALING_VIDEO_EXAMPLE 0
 %define CONFIG_TRANSCODE_AAC_EXAMPLE 0
 %define CONFIG_TRANSCODING_EXAMPLE 0
@@ -414,17 +415,16 @@
 %define CONFIG_LIBASS 0
 %define CONFIG_LIBBLURAY 0
 %define CONFIG_LIBBS2B 0
 %define CONFIG_LIBCACA 0
 %define CONFIG_LIBCDIO 0
 %define CONFIG_LIBCELT 0
 %define CONFIG_LIBDC1394 0
 %define CONFIG_LIBEBUR128 0
-%define CONFIG_LIBFAAC 0
 %define CONFIG_LIBFDK_AAC 0
 %define CONFIG_LIBFLITE 0
 %define CONFIG_LIBFONTCONFIG 0
 %define CONFIG_LIBFREETYPE 0
 %define CONFIG_LIBFRIBIDI 0
 %define CONFIG_LIBGME 0
 %define CONFIG_LIBGSM 0
 %define CONFIG_LIBIEC61883 0
@@ -433,16 +433,17 @@
 %define CONFIG_LIBMODPLUG 0
 %define CONFIG_LIBMP3LAME 0
 %define CONFIG_LIBNUT 0
 %define CONFIG_LIBOPENCORE_AMRNB 0
 %define CONFIG_LIBOPENCORE_AMRWB 0
 %define CONFIG_LIBOPENCV 0
 %define CONFIG_LIBOPENH264 0
 %define CONFIG_LIBOPENJPEG 0
+%define CONFIG_LIBOPENMPT 0
 %define CONFIG_LIBOPUS 0
 %define CONFIG_LIBPULSE 0
 %define CONFIG_LIBRTMP 0
 %define CONFIG_LIBRUBBERBAND 0
 %define CONFIG_LIBSCHROEDINGER 0
 %define CONFIG_LIBSHINE 0
 %define CONFIG_LIBSMBCLIENT 0
 %define CONFIG_LIBSNAPPY 0
@@ -474,16 +475,17 @@
 %define CONFIG_MEDIACODEC 0
 %define CONFIG_NETCDF 0
 %define CONFIG_OPENAL 0
 %define CONFIG_OPENCL 0
 %define CONFIG_OPENGL 0
 %define CONFIG_OPENSSL 0
 %define CONFIG_SCHANNEL 0
 %define CONFIG_SDL 0
+%define CONFIG_SDL2 0
 %define CONFIG_SECURETRANSPORT 0
 %define CONFIG_VIDEOTOOLBOX 0
 %define CONFIG_X11GRAB 0
 %define CONFIG_XLIB 0
 %define CONFIG_ZLIB 0
 %define CONFIG_AUDIOTOOLBOX 0
 %define CONFIG_CUDA 0
 %define CONFIG_CUVID 0
@@ -533,17 +535,16 @@
 %define CONFIG_FFT 0
 %define CONFIG_LSP 0
 %define CONFIG_LZO 0
 %define CONFIG_MDCT 0
 %define CONFIG_PIXELUTILS 0
 %define CONFIG_NETWORK 0
 %define CONFIG_RDFT 0
 %define CONFIG_FONTCONFIG 0
-%define CONFIG_INCOMPATIBLE_LIBAV_ABI 0
 %define CONFIG_MEMALIGN_HACK 0
 %define CONFIG_MEMORY_POISONING 0
 %define CONFIG_NEON_CLOBBER_TEST 0
 %define CONFIG_PIC 1
 %define CONFIG_POD2MAN 1
 %define CONFIG_RAISE_MAJOR 0
 %define CONFIG_THUMB 0
 %define CONFIG_VALGRIND_BACKTRACE 0
@@ -977,16 +978,18 @@
 %define CONFIG_PCM_S16LE_PLANAR_DECODER 0
 %define CONFIG_PCM_S24BE_DECODER 0
 %define CONFIG_PCM_S24DAUD_DECODER 0
 %define CONFIG_PCM_S24LE_DECODER 0
 %define CONFIG_PCM_S24LE_PLANAR_DECODER 0
 %define CONFIG_PCM_S32BE_DECODER 0
 %define CONFIG_PCM_S32LE_DECODER 0
 %define CONFIG_PCM_S32LE_PLANAR_DECODER 0
+%define CONFIG_PCM_S64BE_DECODER 0
+%define CONFIG_PCM_S64LE_DECODER 0
 %define CONFIG_PCM_U8_DECODER 0
 %define CONFIG_PCM_U16BE_DECODER 0
 %define CONFIG_PCM_U16LE_DECODER 0
 %define CONFIG_PCM_U24BE_DECODER 0
 %define CONFIG_PCM_U24LE_DECODER 0
 %define CONFIG_PCM_U32BE_DECODER 0
 %define CONFIG_PCM_U32LE_DECODER 0
 %define CONFIG_PCM_ZORK_DECODER 0
@@ -1085,21 +1088,31 @@
 %define CONFIG_LIBSPEEX_DECODER 0
 %define CONFIG_LIBVORBIS_DECODER 0
 %define CONFIG_LIBVPX_VP8_DECODER 0
 %define CONFIG_LIBVPX_VP9_DECODER 0
 %define CONFIG_LIBZVBI_TELETEXT_DECODER 0
 %define CONFIG_BINTEXT_DECODER 0
 %define CONFIG_XBIN_DECODER 0
 %define CONFIG_IDF_DECODER 0
+%define CONFIG_LIBOPENH264_DECODER 0
+%define CONFIG_H263_CUVID_DECODER 0
 %define CONFIG_H264_CUVID_DECODER 0
 %define CONFIG_HEVC_CUVID_DECODER 0
+%define CONFIG_HEVC_MEDIACODEC_DECODER 0
+%define CONFIG_MJPEG_CUVID_DECODER 0
+%define CONFIG_MPEG1_CUVID_DECODER 0
+%define CONFIG_MPEG2_CUVID_DECODER 0
+%define CONFIG_MPEG4_CUVID_DECODER 0
+%define CONFIG_MPEG4_MEDIACODEC_DECODER 0
 %define CONFIG_VC1_CUVID_DECODER 0
 %define CONFIG_VP8_CUVID_DECODER 0
+%define CONFIG_VP8_MEDIACODEC_DECODER 0
 %define CONFIG_VP9_CUVID_DECODER 0
+%define CONFIG_VP9_MEDIACODEC_DECODER 0
 %define CONFIG_AA_DEMUXER 0
 %define CONFIG_AAC_DEMUXER 0
 %define CONFIG_AC3_DEMUXER 0
 %define CONFIG_ACM_DEMUXER 0
 %define CONFIG_ACT_DEMUXER 0
 %define CONFIG_ADF_DEMUXER 0
 %define CONFIG_ADP_DEMUXER 0
 %define CONFIG_ADS_DEMUXER 0
@@ -1359,16 +1372,17 @@
 %define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
 %define CONFIG_LIBGME_DEMUXER 0
 %define CONFIG_LIBMODPLUG_DEMUXER 0
 %define CONFIG_LIBNUT_DEMUXER 0
+%define CONFIG_LIBOPENMPT_DEMUXER 0
 %define CONFIG_A64MULTI_ENCODER 0
 %define CONFIG_A64MULTI5_ENCODER 0
 %define CONFIG_ALIAS_PIX_ENCODER 0
 %define CONFIG_AMV_ENCODER 0
 %define CONFIG_APNG_ENCODER 0
 %define CONFIG_ASV1_ENCODER 0
 %define CONFIG_ASV2_ENCODER 0
 %define CONFIG_AVRP_ENCODER 0
@@ -1445,22 +1459,24 @@
 %define CONFIG_AAC_ENCODER 0
 %define CONFIG_AC3_ENCODER 0
 %define CONFIG_AC3_FIXED_ENCODER 0
 %define CONFIG_ALAC_ENCODER 0
 %define CONFIG_DCA_ENCODER 0
 %define CONFIG_EAC3_ENCODER 0
 %define CONFIG_FLAC_ENCODER 0
 %define CONFIG_G723_1_ENCODER 0
+%define CONFIG_MLP_ENCODER 0
 %define CONFIG_MP2_ENCODER 0
 %define CONFIG_MP2FIXED_ENCODER 0
 %define CONFIG_NELLYMOSER_ENCODER 0
 %define CONFIG_RA_144_ENCODER 0
 %define CONFIG_SONIC_ENCODER 0
 %define CONFIG_SONIC_LS_ENCODER 0
+%define CONFIG_TRUEHD_ENCODER 0
 %define CONFIG_TTA_ENCODER 0
 %define CONFIG_VORBIS_ENCODER 0
 %define CONFIG_WAVPACK_ENCODER 0
 %define CONFIG_WMAV1_ENCODER 0
 %define CONFIG_WMAV2_ENCODER 0
 %define CONFIG_PCM_ALAW_ENCODER 0
 %define CONFIG_PCM_F32BE_ENCODER 0
 %define CONFIG_PCM_F32LE_ENCODER 0
@@ -1475,16 +1491,18 @@
 %define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
 %define CONFIG_PCM_S24BE_ENCODER 0
 %define CONFIG_PCM_S24DAUD_ENCODER 0
 %define CONFIG_PCM_S24LE_ENCODER 0
 %define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
 %define CONFIG_PCM_S32BE_ENCODER 0
 %define CONFIG_PCM_S32LE_ENCODER 0
 %define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
+%define CONFIG_PCM_S64BE_ENCODER 0
+%define CONFIG_PCM_S64LE_ENCODER 0
 %define CONFIG_PCM_U8_ENCODER 0
 %define CONFIG_PCM_U16BE_ENCODER 0
 %define CONFIG_PCM_U16LE_ENCODER 0
 %define CONFIG_PCM_U24BE_ENCODER 0
 %define CONFIG_PCM_U24LE_ENCODER 0
 %define CONFIG_PCM_U32BE_ENCODER 0
 %define CONFIG_PCM_U32LE_ENCODER 0
 %define CONFIG_ROQ_DPCM_ENCODER 0
@@ -1506,17 +1524,16 @@
 %define CONFIG_TEXT_ENCODER 0
 %define CONFIG_WEBVTT_ENCODER 0
 %define CONFIG_XSUB_ENCODER 0
 %define CONFIG_AAC_AT_ENCODER 0
 %define CONFIG_ALAC_AT_ENCODER 0
 %define CONFIG_ILBC_AT_ENCODER 0
 %define CONFIG_PCM_ALAW_AT_ENCODER 0
 %define CONFIG_PCM_MULAW_AT_ENCODER 0
-%define CONFIG_LIBFAAC_ENCODER 0
 %define CONFIG_LIBFDK_AAC_ENCODER 0
 %define CONFIG_LIBGSM_ENCODER 0
 %define CONFIG_LIBGSM_MS_ENCODER 0
 %define CONFIG_LIBILBC_ENCODER 0
 %define CONFIG_LIBMP3LAME_ENCODER 0
 %define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
 %define CONFIG_LIBOPENJPEG_ENCODER 0
 %define CONFIG_LIBOPUS_ENCODER 0
@@ -1551,16 +1568,17 @@
 %define CONFIG_HEVC_QSV_ENCODER 0
 %define CONFIG_HEVC_VAAPI_ENCODER 0
 %define CONFIG_LIBKVAZAAR_ENCODER 0
 %define CONFIG_MJPEG_VAAPI_ENCODER 0
 %define CONFIG_MPEG2_QSV_ENCODER 0
 %define CONFIG_ABENCH_FILTER 0
 %define CONFIG_ACOMPRESSOR_FILTER 0
 %define CONFIG_ACROSSFADE_FILTER 0
+%define CONFIG_ACRUSHER_FILTER 0
 %define CONFIG_ADELAY_FILTER 0
 %define CONFIG_AECHO_FILTER 0
 %define CONFIG_AEMPHASIS_FILTER 0
 %define CONFIG_AEVAL_FILTER 0
 %define CONFIG_AFADE_FILTER 0
 %define CONFIG_AFFTFILT_FILTER 0
 %define CONFIG_AFORMAT_FILTER 0
 %define CONFIG_AGATE_FILTER 0
@@ -1582,16 +1600,17 @@
 %define CONFIG_AREVERSE_FILTER 0
 %define CONFIG_ASELECT_FILTER 0
 %define CONFIG_ASENDCMD_FILTER 0
 %define CONFIG_ASETNSAMPLES_FILTER 0
 %define CONFIG_ASETPTS_FILTER 0
 %define CONFIG_ASETRATE_FILTER 0
 %define CONFIG_ASETTB_FILTER 0
 %define CONFIG_ASHOWINFO_FILTER 0
+%define CONFIG_ASIDEDATA_FILTER 0
 %define CONFIG_ASPLIT_FILTER 0
 %define CONFIG_ASTATS_FILTER 0
 %define CONFIG_ASTREAMSELECT_FILTER 0
 %define CONFIG_ASYNCTS_FILTER 0
 %define CONFIG_ATEMPO_FILTER 0
 %define CONFIG_ATRIM_FILTER 0
 %define CONFIG_AZMQ_FILTER 0
 %define CONFIG_BANDPASS_FILTER 0
@@ -1599,16 +1618,17 @@
 %define CONFIG_BASS_FILTER 0
 %define CONFIG_BIQUAD_FILTER 0
 %define CONFIG_BS2B_FILTER 0
 %define CONFIG_CHANNELMAP_FILTER 0
 %define CONFIG_CHANNELSPLIT_FILTER 0
 %define CONFIG_CHORUS_FILTER 0
 %define CONFIG_COMPAND_FILTER 0
 %define CONFIG_COMPENSATIONDELAY_FILTER 0
+%define CONFIG_CRYSTALIZER_FILTER 0
 %define CONFIG_DCSHIFT_FILTER 0
 %define CONFIG_DYNAUDNORM_FILTER 0
 %define CONFIG_EARWAX_FILTER 0
 %define CONFIG_EBUR128_FILTER 0
 %define CONFIG_EQUALIZER_FILTER 0
 %define CONFIG_EXTRASTEREO_FILTER 0
 %define CONFIG_FIREQUALIZER_FILTER 0
 %define CONFIG_FLANGER_FILTER 0
@@ -1637,20 +1657,22 @@
 %define CONFIG_AEVALSRC_FILTER 0
 %define CONFIG_ANOISESRC_FILTER 0
 %define CONFIG_ANULLSRC_FILTER 0
 %define CONFIG_FLITE_FILTER 0
 %define CONFIG_SINE_FILTER 0
 %define CONFIG_ANULLSINK_FILTER 0
 %define CONFIG_ALPHAEXTRACT_FILTER 0
 %define CONFIG_ALPHAMERGE_FILTER 0
+%define CONFIG_ASS_FILTER 0
 %define CONFIG_ATADENOISE_FILTER 0
-%define CONFIG_ASS_FILTER 0
+%define CONFIG_AVGBLUR_FILTER 0
+%define CONFIG_BBOX_FILTER 0
 %define CONFIG_BENCH_FILTER 0
-%define CONFIG_BBOX_FILTER 0
+%define CONFIG_BITPLANENOISE_FILTER 0
 %define CONFIG_BLACKDETECT_FILTER 0
 %define CONFIG_BLACKFRAME_FILTER 0
 %define CONFIG_BLEND_FILTER 0
 %define CONFIG_BOXBLUR_FILTER 0
 %define CONFIG_BWDIF_FILTER 0
 %define CONFIG_CHROMAKEY_FILTER 0
 %define CONFIG_CIESCOPE_FILTER 0
 %define CONFIG_CODECVIEW_FILTER 0
@@ -1696,47 +1718,54 @@
 %define CONFIG_FIND_RECT_FILTER 0
 %define CONFIG_FORMAT_FILTER 0
 %define CONFIG_FPS_FILTER 0
 %define CONFIG_FRAMEPACK_FILTER 0
 %define CONFIG_FRAMERATE_FILTER 0
 %define CONFIG_FRAMESTEP_FILTER 0
 %define CONFIG_FREI0R_FILTER 0
 %define CONFIG_FSPP_FILTER 0
+%define CONFIG_GBLUR_FILTER 0
 %define CONFIG_GEQ_FILTER 0
 %define CONFIG_GRADFUN_FILTER 0
 %define CONFIG_HALDCLUT_FILTER 0
 %define CONFIG_HFLIP_FILTER 0
 %define CONFIG_HISTEQ_FILTER 0
 %define CONFIG_HISTOGRAM_FILTER 0
 %define CONFIG_HQDN3D_FILTER 0
 %define CONFIG_HQX_FILTER 0
+%define CONFIG_HSTACK_FILTER 0
+%define CONFIG_HUE_FILTER 0
 %define CONFIG_HWDOWNLOAD_FILTER 0
 %define CONFIG_HWUPLOAD_FILTER 0
 %define CONFIG_HWUPLOAD_CUDA_FILTER 0
-%define CONFIG_HSTACK_FILTER 0
-%define CONFIG_HUE_FILTER 0
+%define CONFIG_HYSTERESIS_FILTER 0
 %define CONFIG_IDET_FILTER 0
 %define CONFIG_IL_FILTER 0
 %define CONFIG_INFLATE_FILTER 0
 %define CONFIG_INTERLACE_FILTER 0
 %define CONFIG_INTERLEAVE_FILTER 0
 %define CONFIG_KERNDEINT_FILTER 0
 %define CONFIG_LENSCORRECTION_FILTER 0
 %define CONFIG_LOOP_FILTER 0
+%define CONFIG_LUT_FILTER 0
+%define CONFIG_LUT2_FILTER 0
 %define CONFIG_LUT3D_FILTER 0
-%define CONFIG_LUT_FILTER 0
 %define CONFIG_LUTRGB_FILTER 0
 %define CONFIG_LUTYUV_FILTER 0
+%define CONFIG_MASKEDCLAMP_FILTER 0
 %define CONFIG_MASKEDMERGE_FILTER 0
 %define CONFIG_MCDEINT_FILTER 0
 %define CONFIG_MERGEPLANES_FILTER 0
+%define CONFIG_MESTIMATE_FILTER 0
 %define CONFIG_METADATA_FILTER 0
+%define CONFIG_MINTERPOLATE_FILTER 0
 %define CONFIG_MPDECIMATE_FILTER 0
 %define CONFIG_NEGATE_FILTER 0
+%define CONFIG_NLMEANS_FILTER 0
 %define CONFIG_NNEDI_FILTER 0
 %define CONFIG_NOFORMAT_FILTER 0
 %define CONFIG_NOISE_FILTER 0
 %define CONFIG_NULL_FILTER 0
 %define CONFIG_OCR_FILTER 0
 %define CONFIG_OCV_FILTER 0
 %define CONFIG_OVERLAY_FILTER 0
 %define CONFIG_OWDENOISE_FILTER 0
@@ -1744,48 +1773,51 @@
 %define CONFIG_PALETTEGEN_FILTER 0
 %define CONFIG_PALETTEUSE_FILTER 0
 %define CONFIG_PERMS_FILTER 0
 %define CONFIG_PERSPECTIVE_FILTER 0
 %define CONFIG_PHASE_FILTER 0
 %define CONFIG_PIXDESCTEST_FILTER 0
 %define CONFIG_PP_FILTER 0
 %define CONFIG_PP7_FILTER 0
+%define CONFIG_PREWITT_FILTER 0
 %define CONFIG_PSNR_FILTER 0
 %define CONFIG_PULLUP_FILTER 0
 %define CONFIG_QP_FILTER 0
 %define CONFIG_RANDOM_FILTER 0
 %define CONFIG_READVITC_FILTER 0
 %define CONFIG_REALTIME_FILTER 0
 %define CONFIG_REMAP_FILTER 0
 %define CONFIG_REMOVEGRAIN_FILTER 0
 %define CONFIG_REMOVELOGO_FILTER 0
 %define CONFIG_REPEATFIELDS_FILTER 0
 %define CONFIG_REVERSE_FILTER 0
 %define CONFIG_ROTATE_FILTER 0
 %define CONFIG_SAB_FILTER 0
 %define CONFIG_SCALE_FILTER 0
-%define CONFIG_SCALE2REF_FILTER 0
 %define CONFIG_SCALE_NPP_FILTER 0
 %define CONFIG_SCALE_VAAPI_FILTER 0
+%define CONFIG_SCALE2REF_FILTER 0
 %define CONFIG_SELECT_FILTER 0
 %define CONFIG_SELECTIVECOLOR_FILTER 0
 %define CONFIG_SENDCMD_FILTER 0
 %define CONFIG_SEPARATEFIELDS_FILTER 0
 %define CONFIG_SETDAR_FILTER 0
 %define CONFIG_SETFIELD_FILTER 0
 %define CONFIG_SETPTS_FILTER 0
 %define CONFIG_SETSAR_FILTER 0
 %define CONFIG_SETTB_FILTER 0
 %define CONFIG_SHOWINFO_FILTER 0
 %define CONFIG_SHOWPALETTE_FILTER 0
 %define CONFIG_SHUFFLEFRAMES_FILTER 0
 %define CONFIG_SHUFFLEPLANES_FILTER 0
+%define CONFIG_SIDEDATA_FILTER 0
 %define CONFIG_SIGNALSTATS_FILTER 0
 %define CONFIG_SMARTBLUR_FILTER 0
+%define CONFIG_SOBEL_FILTER 0
 %define CONFIG_SPLIT_FILTER 0
 %define CONFIG_SPP_FILTER 0
 %define CONFIG_SSIM_FILTER 0
 %define CONFIG_STEREO3D_FILTER 0
 %define CONFIG_STREAMSELECT_FILTER 0
 %define CONFIG_SUBTITLES_FILTER 0
 %define CONFIG_SUPER2XSAI_FILTER 0
 %define CONFIG_SWAPRECT_FILTER 0
@@ -1794,24 +1826,26 @@
 %define CONFIG_TELECINE_FILTER 0
 %define CONFIG_THUMBNAIL_FILTER 0
 %define CONFIG_TILE_FILTER 0
 %define CONFIG_TINTERLACE_FILTER 0
 %define CONFIG_TRANSPOSE_FILTER 0
 %define CONFIG_TRIM_FILTER 0
 %define CONFIG_UNSHARP_FILTER 0
 %define CONFIG_USPP_FILTER 0
+%define CONFIG_VAGUEDENOISER_FILTER 0
 %define CONFIG_VECTORSCOPE_FILTER 0
 %define CONFIG_VFLIP_FILTER 0
 %define CONFIG_VIDSTABDETECT_FILTER 0
 %define CONFIG_VIDSTABTRANSFORM_FILTER 0
 %define CONFIG_VIGNETTE_FILTER 0
 %define CONFIG_VSTACK_FILTER 0
 %define CONFIG_W3FDIF_FILTER 0
 %define CONFIG_WAVEFORM_FILTER 0
+%define CONFIG_WEAVE_FILTER 0
 %define CONFIG_XBR_FILTER 0
 %define CONFIG_YADIF_FILTER 0
 %define CONFIG_ZMQ_FILTER 0
 %define CONFIG_ZOOMPAN_FILTER 0
 %define CONFIG_ZSCALE_FILTER 0
 %define CONFIG_ALLRGB_FILTER 0
 %define CONFIG_ALLYUV_FILTER 0
 %define CONFIG_CELLAUTO_FILTER 0
@@ -1823,76 +1857,87 @@
 %define CONFIG_MANDELBROT_FILTER 0
 %define CONFIG_MPTESTSRC_FILTER 0
 %define CONFIG_NULLSRC_FILTER 0
 %define CONFIG_RGBTESTSRC_FILTER 0
 %define CONFIG_SMPTEBARS_FILTER 0
 %define CONFIG_SMPTEHDBARS_FILTER 0
 %define CONFIG_TESTSRC_FILTER 0
 %define CONFIG_TESTSRC2_FILTER 0
+%define CONFIG_YUVTESTSRC_FILTER 0
 %define CONFIG_NULLSINK_FILTER 0
 %define CONFIG_ADRAWGRAPH_FILTER 0
 %define CONFIG_AHISTOGRAM_FILTER 0
 %define CONFIG_APHASEMETER_FILTER 0
 %define CONFIG_AVECTORSCOPE_FILTER 0
 %define CONFIG_CONCAT_FILTER 0
 %define CONFIG_SHOWCQT_FILTER 0
 %define CONFIG_SHOWFREQS_FILTER 0
 %define CONFIG_SHOWSPECTRUM_FILTER 0
 %define CONFIG_SHOWSPECTRUMPIC_FILTER 0
 %define CONFIG_SHOWVOLUME_FILTER 0
 %define CONFIG_SHOWWAVES_FILTER 0
 %define CONFIG_SHOWWAVESPIC_FILTER 0
 %define CONFIG_SPECTRUMSYNTH_FILTER 0
 %define CONFIG_AMOVIE_FILTER 0
 %define CONFIG_MOVIE_FILTER 0
+%define CONFIG_H263_CUVID_HWACCEL 0
 %define CONFIG_H263_VAAPI_HWACCEL 0
 %define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_H264_CUVID_HWACCEL 0
 %define CONFIG_H264_D3D11VA_HWACCEL 0
 %define CONFIG_H264_DXVA2_HWACCEL 0
+%define CONFIG_H264_MEDIACODEC_HWACCEL 0
 %define CONFIG_H264_MMAL_HWACCEL 0
 %define CONFIG_H264_QSV_HWACCEL 0
 %define CONFIG_H264_VAAPI_HWACCEL 0
 %define CONFIG_H264_VDA_HWACCEL 0
 %define CONFIG_H264_VDA_OLD_HWACCEL 0
 %define CONFIG_H264_VDPAU_HWACCEL 0
 %define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_HEVC_CUVID_HWACCEL 0
 %define CONFIG_HEVC_D3D11VA_HWACCEL 0
 %define CONFIG_HEVC_DXVA2_HWACCEL 0
+%define CONFIG_HEVC_MEDIACODEC_HWACCEL 0
 %define CONFIG_HEVC_QSV_HWACCEL 0
 %define CONFIG_HEVC_VAAPI_HWACCEL 0
 %define CONFIG_HEVC_VDPAU_HWACCEL 0
+%define CONFIG_MJPEG_CUVID_HWACCEL 0
+%define CONFIG_MPEG1_CUVID_HWACCEL 0
 %define CONFIG_MPEG1_XVMC_HWACCEL 0
 %define CONFIG_MPEG1_VDPAU_HWACCEL 0
 %define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
+%define CONFIG_MPEG2_CUVID_HWACCEL 0
 %define CONFIG_MPEG2_XVMC_HWACCEL 0
 %define CONFIG_MPEG2_D3D11VA_HWACCEL 0
 %define CONFIG_MPEG2_DXVA2_HWACCEL 0
 %define CONFIG_MPEG2_MMAL_HWACCEL 0
 %define CONFIG_MPEG2_QSV_HWACCEL 0
 %define CONFIG_MPEG2_VAAPI_HWACCEL 0
 %define CONFIG_MPEG2_VDPAU_HWACCEL 0
 %define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
+%define CONFIG_MPEG4_CUVID_HWACCEL 0
+%define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0
 %define CONFIG_MPEG4_MMAL_HWACCEL 0
 %define CONFIG_MPEG4_VAAPI_HWACCEL 0
 %define CONFIG_MPEG4_VDPAU_HWACCEL 0
 %define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_VC1_CUVID_HWACCEL 0
 %define CONFIG_VC1_D3D11VA_HWACCEL 0
 %define CONFIG_VC1_DXVA2_HWACCEL 0
 %define CONFIG_VC1_VAAPI_HWACCEL 0
 %define CONFIG_VC1_VDPAU_HWACCEL 0
 %define CONFIG_VC1_MMAL_HWACCEL 0
 %define CONFIG_VC1_QSV_HWACCEL 0
 %define CONFIG_VP8_CUVID_HWACCEL 0
+%define CONFIG_VP8_MEDIACODEC_HWACCEL 0
 %define CONFIG_VP9_CUVID_HWACCEL 0
 %define CONFIG_VP9_D3D11VA_HWACCEL 0
 %define CONFIG_VP9_DXVA2_HWACCEL 0
+%define CONFIG_VP9_MEDIACODEC_HWACCEL 0
 %define CONFIG_VP9_VAAPI_HWACCEL 0
 %define CONFIG_WMV3_D3D11VA_HWACCEL 0
 %define CONFIG_WMV3_DXVA2_HWACCEL 0
 %define CONFIG_WMV3_VAAPI_HWACCEL 0
 %define CONFIG_WMV3_VDPAU_HWACCEL 0
 %define CONFIG_ALSA_INDEV 0
 %define CONFIG_AVFOUNDATION_INDEV 0
 %define CONFIG_BKTR_INDEV 0
@@ -1939,16 +1984,17 @@
 %define CONFIG_DIRAC_MUXER 0
 %define CONFIG_DNXHD_MUXER 0
 %define CONFIG_DTS_MUXER 0
 %define CONFIG_DV_MUXER 0
 %define CONFIG_EAC3_MUXER 0
 %define CONFIG_F4V_MUXER 0
 %define CONFIG_FFM_MUXER 0
 %define CONFIG_FFMETADATA_MUXER 0
+%define CONFIG_FIFO_MUXER 0
 %define CONFIG_FILMSTRIP_MUXER 0
 %define CONFIG_FLAC_MUXER 0
 %define CONFIG_FLV_MUXER 0
 %define CONFIG_FRAMECRC_MUXER 0
 %define CONFIG_FRAMEHASH_MUXER 0
 %define CONFIG_FRAMEMD5_MUXER 0
 %define CONFIG_G722_MUXER 0
 %define CONFIG_G723_1_MUXER 0
@@ -1996,16 +2042,17 @@
 %define CONFIG_MPJPEG_MUXER 0
 %define CONFIG_MXF_MUXER 0
 %define CONFIG_MXF_D10_MUXER 0
 %define CONFIG_MXF_OPATOM_MUXER 0
 %define CONFIG_NULL_MUXER 0
 %define CONFIG_NUT_MUXER 0
 %define CONFIG_OGA_MUXER 0
 %define CONFIG_OGG_MUXER 0
+%define CONFIG_OGV_MUXER 0
 %define CONFIG_OMA_MUXER 0
 %define CONFIG_OPUS_MUXER 0
 %define CONFIG_PCM_ALAW_MUXER 0
 %define CONFIG_PCM_MULAW_MUXER 0
 %define CONFIG_PCM_F64BE_MUXER 0
 %define CONFIG_PCM_F64LE_MUXER 0
 %define CONFIG_PCM_F32BE_MUXER 0
 %define CONFIG_PCM_F32LE_MUXER 0
@@ -2042,16 +2089,17 @@
 %define CONFIG_SPDIF_MUXER 0
 %define CONFIG_SRT_MUXER 0
 %define CONFIG_SWF_MUXER 0
 %define CONFIG_TEE_MUXER 0
 %define CONFIG_TG2_MUXER 0
 %define CONFIG_TGP_MUXER 0
 %define CONFIG_MKVTIMESTAMP_V2_MUXER 0
 %define CONFIG_TRUEHD_MUXER 0
+%define CONFIG_TTA_MUXER 0
 %define CONFIG_UNCODEDFRAMECRC_MUXER 0
 %define CONFIG_VC1_MUXER 0
 %define CONFIG_VC1T_MUXER 0
 %define CONFIG_VOC_MUXER 0
 %define CONFIG_W64_MUXER 0
 %define CONFIG_WAV_MUXER 0
 %define CONFIG_WEBM_MUXER 0
 %define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
@@ -2065,17 +2113,17 @@
 %define CONFIG_LIBNUT_MUXER 0
 %define CONFIG_ALSA_OUTDEV 0
 %define CONFIG_CACA_OUTDEV 0
 %define CONFIG_DECKLINK_OUTDEV 0
 %define CONFIG_FBDEV_OUTDEV 0
 %define CONFIG_OPENGL_OUTDEV 0
 %define CONFIG_OSS_OUTDEV 0
 %define CONFIG_PULSE_OUTDEV 0
-%define CONFIG_SDL_OUTDEV 0
+%define CONFIG_SDL2_OUTDEV 0
 %define CONFIG_SNDIO_OUTDEV 0
 %define CONFIG_V4L2_OUTDEV 0
 %define CONFIG_XV_OUTDEV 0
 %define CONFIG_AAC_PARSER 0
 %define CONFIG_AAC_LATM_PARSER 0
 %define CONFIG_AC3_PARSER 0
 %define CONFIG_ADX_PARSER 0
 %define CONFIG_BMP_PARSER 0
@@ -2137,16 +2185,17 @@
 %define CONFIG_RTMPS_PROTOCOL 0
 %define CONFIG_RTMPT_PROTOCOL 0
 %define CONFIG_RTMPTE_PROTOCOL 0
 %define CONFIG_RTMPTS_PROTOCOL 0
 %define CONFIG_RTP_PROTOCOL 0
 %define CONFIG_SCTP_PROTOCOL 0
 %define CONFIG_SRTP_PROTOCOL 0
 %define CONFIG_SUBFILE_PROTOCOL 0
+%define CONFIG_TEE_PROTOCOL 0
 %define CONFIG_TCP_PROTOCOL 0
 %define CONFIG_TLS_GNUTLS_PROTOCOL 0
 %define CONFIG_TLS_SCHANNEL_PROTOCOL 0
 %define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0
 %define CONFIG_TLS_OPENSSL_PROTOCOL 0
 %define CONFIG_UDP_PROTOCOL 0
 %define CONFIG_UDPLITE_PROTOCOL 0
 %define CONFIG_UNIX_PROTOCOL 0
--- a/media/ffvpx/config_unix64.h
+++ b/media/ffvpx/config_unix64.h
@@ -4,17 +4,17 @@
 #define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-asm --enable-yasm --disable-avx2"
 #define FFMPEG_LICENSE "LGPL version 2.1 or later"
 #define CONFIG_THIS_YEAR 2016
 #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
 #define AVCONV_DATADIR "/usr/local/share/ffmpeg"
 #define CC_IDENT "gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)"
 #define av_restrict restrict
 #define EXTERN_PREFIX ""
-#define EXTERN_ASM 
+#define EXTERN_ASM
 #define BUILDSUF ""
 #define SLIBSUF ".so"
 #define HAVE_MMX2 HAVE_MMXEXT
 #define SWS_MAX_FILTER_SIZE 256
 #define ARCH_AARCH64 0
 #define ARCH_ALPHA 0
 #define ARCH_ARM 0
 #define ARCH_AVR32 0
@@ -192,17 +192,16 @@
 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
 #define HAVE_CABS 1
 #define HAVE_CEXP 1
 #define HAVE_INLINE_ASM 1
 #define HAVE_SYMVER 1
 #define HAVE_YASM 1
 #define HAVE_BIGENDIAN 0
 #define HAVE_FAST_UNALIGNED 1
-#define HAVE_INCOMPATIBLE_LIBAV_ABI 0
 #define HAVE_ALSA_ASOUNDLIB_H 0
 #define HAVE_ALTIVEC_H 0
 #define HAVE_ARPA_INET_H 1
 #define HAVE_ASM_TYPES_H 1
 #define HAVE_CDIO_PARANOIA_H 0
 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0
 #define HAVE_DISPATCH_DISPATCH_H 0
 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0
@@ -295,16 +294,17 @@
 #define HAVE_GETTIMEOFDAY 1
 #define HAVE_GLOB 1
 #define HAVE_GLXGETPROCADDRESS 0
 #define HAVE_GMTIME_R 1
 #define HAVE_INET_ATON 1
 #define HAVE_ISATTY 1
 #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
 #define HAVE_KBHIT 0
+#define HAVE_LOADLIBRARY 0
 #define HAVE_LSTAT 1
 #define HAVE_LZO1X_999_COMPRESS 0
 #define HAVE_MACH_ABSOLUTE_TIME 0
 #define HAVE_MAPVIEWOFFILE 0
 #define HAVE_MKSTEMP 1
 #define HAVE_MMAP 1
 #define HAVE_MPROTECT 1
 #define HAVE_NANOSLEEP 1
@@ -368,17 +368,17 @@
 #define HAVE_LIBC_MSVCRT 0
 #define HAVE_LIBDC1394_1 0
 #define HAVE_LIBDC1394_2 0
 #define HAVE_MAKEINFO 0
 #define HAVE_MAKEINFO_HTML 0
 #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
 #define HAVE_PERL 1
 #define HAVE_POD2MAN 1
-#define HAVE_SDL 0
+#define HAVE_SDL2 0
 #define HAVE_SECTION_DATA_REL_RO 1
 #define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_DRM 0
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
 #define HAVE_WINRT 0
 #define HAVE_XLIB 0
@@ -393,24 +393,25 @@
 #define CONFIG_DEMUXERS 0
 #define CONFIG_MUXERS 0
 #define CONFIG_PROTOCOLS 0
 #define CONFIG_DOC 0
 #define CONFIG_HTMLPAGES 0
 #define CONFIG_MANPAGES 1
 #define CONFIG_PODPAGES 1
 #define CONFIG_TXTPAGES 0
+#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_AVIO_READING_EXAMPLE 1
-#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_DECODING_ENCODING_EXAMPLE 0
 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0
 #define CONFIG_EXTRACT_MVS_EXAMPLE 0
 #define CONFIG_FILTER_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0
+#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0
 #define CONFIG_METADATA_EXAMPLE 0
 #define CONFIG_MUXING_EXAMPLE 0
 #define CONFIG_QSVDEC_EXAMPLE 0
 #define CONFIG_REMUXING_EXAMPLE 0
 #define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
 #define CONFIG_SCALING_VIDEO_EXAMPLE 0
 #define CONFIG_TRANSCODE_AAC_EXAMPLE 0
 #define CONFIG_TRANSCODING_EXAMPLE 0
@@ -429,17 +430,16 @@
 #define CONFIG_LIBASS 0
 #define CONFIG_LIBBLURAY 0
 #define CONFIG_LIBBS2B 0
 #define CONFIG_LIBCACA 0
 #define CONFIG_LIBCDIO 0
 #define CONFIG_LIBCELT 0
 #define CONFIG_LIBDC1394 0
 #define CONFIG_LIBEBUR128 0
-#define CONFIG_LIBFAAC 0
 #define CONFIG_LIBFDK_AAC 0
 #define CONFIG_LIBFLITE 0
 #define CONFIG_LIBFONTCONFIG 0
 #define CONFIG_LIBFREETYPE 0
 #define CONFIG_LIBFRIBIDI 0
 #define CONFIG_LIBGME 0
 #define CONFIG_LIBGSM 0
 #define CONFIG_LIBIEC61883 0
@@ -448,16 +448,17 @@
 #define CONFIG_LIBMODPLUG 0
 #define CONFIG_LIBMP3LAME 0
 #define CONFIG_LIBNUT 0
 #define CONFIG_LIBOPENCORE_AMRNB 0
 #define CONFIG_LIBOPENCORE_AMRWB 0
 #define CONFIG_LIBOPENCV 0
 #define CONFIG_LIBOPENH264 0
 #define CONFIG_LIBOPENJPEG 0
+#define CONFIG_LIBOPENMPT 0
 #define CONFIG_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
 #define CONFIG_LIBRTMP 0
 #define CONFIG_LIBRUBBERBAND 0
 #define CONFIG_LIBSCHROEDINGER 0
 #define CONFIG_LIBSHINE 0
 #define CONFIG_LIBSMBCLIENT 0
 #define CONFIG_LIBSNAPPY 0
@@ -489,16 +490,17 @@
 #define CONFIG_MEDIACODEC 0
 #define CONFIG_NETCDF 0
 #define CONFIG_OPENAL 0
 #define CONFIG_OPENCL 0
 #define CONFIG_OPENGL 0
 #define CONFIG_OPENSSL 0
 #define CONFIG_SCHANNEL 0
 #define CONFIG_SDL 0
+#define CONFIG_SDL2 0
 #define CONFIG_SECURETRANSPORT 0
 #define CONFIG_VIDEOTOOLBOX 0
 #define CONFIG_X11GRAB 0
 #define CONFIG_XLIB 0
 #define CONFIG_ZLIB 0
 #define CONFIG_AUDIOTOOLBOX 0
 #define CONFIG_CUDA 0
 #define CONFIG_CUVID 0
@@ -548,17 +550,16 @@
 #define CONFIG_FFT 0
 #define CONFIG_LSP 0
 #define CONFIG_LZO 0
 #define CONFIG_MDCT 0
 #define CONFIG_PIXELUTILS 0
 #define CONFIG_NETWORK 0
 #define CONFIG_RDFT 0
 #define CONFIG_FONTCONFIG 0
-#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0
 #define CONFIG_MEMALIGN_HACK 0
 #define CONFIG_MEMORY_POISONING 0
 #define CONFIG_NEON_CLOBBER_TEST 0
 #define CONFIG_PIC 1
 #define CONFIG_POD2MAN 1
 #define CONFIG_RAISE_MAJOR 0
 #define CONFIG_THUMB 0
 #define CONFIG_VALGRIND_BACKTRACE 0
@@ -992,16 +993,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S24BE_DECODER 0
 #define CONFIG_PCM_S24DAUD_DECODER 0
 #define CONFIG_PCM_S24LE_DECODER 0
 #define CONFIG_PCM_S24LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S32BE_DECODER 0
 #define CONFIG_PCM_S32LE_DECODER 0
 #define CONFIG_PCM_S32LE_PLANAR_DECODER 0
+#define CONFIG_PCM_S64BE_DECODER 0
+#define CONFIG_PCM_S64LE_DECODER 0
 #define CONFIG_PCM_U8_DECODER 0
 #define CONFIG_PCM_U16BE_DECODER 0
 #define CONFIG_PCM_U16LE_DECODER 0
 #define CONFIG_PCM_U24BE_DECODER 0
 #define CONFIG_PCM_U24LE_DECODER 0
 #define CONFIG_PCM_U32BE_DECODER 0
 #define CONFIG_PCM_U32LE_DECODER 0
 #define CONFIG_PCM_ZORK_DECODER 0
@@ -1100,21 +1103,31 @@
 #define CONFIG_LIBSPEEX_DECODER 0
 #define CONFIG_LIBVORBIS_DECODER 0
 #define CONFIG_LIBVPX_VP8_DECODER 0
 #define CONFIG_LIBVPX_VP9_DECODER 0
 #define CONFIG_LIBZVBI_TELETEXT_DECODER 0
 #define CONFIG_BINTEXT_DECODER 0
 #define CONFIG_XBIN_DECODER 0
 #define CONFIG_IDF_DECODER 0
+#define CONFIG_LIBOPENH264_DECODER 0
+#define CONFIG_H263_CUVID_DECODER 0
 #define CONFIG_H264_CUVID_DECODER 0
 #define CONFIG_HEVC_CUVID_DECODER 0
+#define CONFIG_HEVC_MEDIACODEC_DECODER 0
+#define CONFIG_MJPEG_CUVID_DECODER 0
+#define CONFIG_MPEG1_CUVID_DECODER 0
+#define CONFIG_MPEG2_CUVID_DECODER 0
+#define CONFIG_MPEG4_CUVID_DECODER 0
+#define CONFIG_MPEG4_MEDIACODEC_DECODER 0
 #define CONFIG_VC1_CUVID_DECODER 0
 #define CONFIG_VP8_CUVID_DECODER 0
+#define CONFIG_VP8_MEDIACODEC_DECODER 0
 #define CONFIG_VP9_CUVID_DECODER 0
+#define CONFIG_VP9_MEDIACODEC_DECODER 0
 #define CONFIG_AA_DEMUXER 0
 #define CONFIG_AAC_DEMUXER 0
 #define CONFIG_AC3_DEMUXER 0
 #define CONFIG_ACM_DEMUXER 0
 #define CONFIG_ACT_DEMUXER 0
 #define CONFIG_ADF_DEMUXER 0
 #define CONFIG_ADP_DEMUXER 0
 #define CONFIG_ADS_DEMUXER 0
@@ -1374,16 +1387,17 @@
 #define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
 #define CONFIG_LIBGME_DEMUXER 0
 #define CONFIG_LIBMODPLUG_DEMUXER 0
 #define CONFIG_LIBNUT_DEMUXER 0
+#define CONFIG_LIBOPENMPT_DEMUXER 0
 #define CONFIG_A64MULTI_ENCODER 0
 #define CONFIG_A64MULTI5_ENCODER 0
 #define CONFIG_ALIAS_PIX_ENCODER 0
 #define CONFIG_AMV_ENCODER 0
 #define CONFIG_APNG_ENCODER 0
 #define CONFIG_ASV1_ENCODER 0
 #define CONFIG_ASV2_ENCODER 0
 #define CONFIG_AVRP_ENCODER 0
@@ -1460,22 +1474,24 @@
 #define CONFIG_AAC_ENCODER 0
 #define CONFIG_AC3_ENCODER 0
 #define CONFIG_AC3_FIXED_ENCODER 0
 #define CONFIG_ALAC_ENCODER 0
 #define CONFIG_DCA_ENCODER 0
 #define CONFIG_EAC3_ENCODER 0
 #define CONFIG_FLAC_ENCODER 0
 #define CONFIG_G723_1_ENCODER 0
+#define CONFIG_MLP_ENCODER 0
 #define CONFIG_MP2_ENCODER 0
 #define CONFIG_MP2FIXED_ENCODER 0
 #define CONFIG_NELLYMOSER_ENCODER 0
 #define CONFIG_RA_144_ENCODER 0
 #define CONFIG_SONIC_ENCODER 0
 #define CONFIG_SONIC_LS_ENCODER 0
+#define CONFIG_TRUEHD_ENCODER 0
 #define CONFIG_TTA_ENCODER 0
 #define CONFIG_VORBIS_ENCODER 0
 #define CONFIG_WAVPACK_ENCODER 0
 #define CONFIG_WMAV1_ENCODER 0
 #define CONFIG_WMAV2_ENCODER 0
 #define CONFIG_PCM_ALAW_ENCODER 0
 #define CONFIG_PCM_F32BE_ENCODER 0
 #define CONFIG_PCM_F32LE_ENCODER 0
@@ -1490,16 +1506,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S24BE_ENCODER 0
 #define CONFIG_PCM_S24DAUD_ENCODER 0
 #define CONFIG_PCM_S24LE_ENCODER 0
 #define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S32BE_ENCODER 0
 #define CONFIG_PCM_S32LE_ENCODER 0
 #define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
+#define CONFIG_PCM_S64BE_ENCODER 0
+#define CONFIG_PCM_S64LE_ENCODER 0
 #define CONFIG_PCM_U8_ENCODER 0
 #define CONFIG_PCM_U16BE_ENCODER 0
 #define CONFIG_PCM_U16LE_ENCODER 0
 #define CONFIG_PCM_U24BE_ENCODER 0
 #define CONFIG_PCM_U24LE_ENCODER 0
 #define CONFIG_PCM_U32BE_ENCODER 0
 #define CONFIG_PCM_U32LE_ENCODER 0
 #define CONFIG_ROQ_DPCM_ENCODER 0
@@ -1521,17 +1539,16 @@
 #define CONFIG_TEXT_ENCODER 0
 #define CONFIG_WEBVTT_ENCODER 0
 #define CONFIG_XSUB_ENCODER 0
 #define CONFIG_AAC_AT_ENCODER 0
 #define CONFIG_ALAC_AT_ENCODER 0
 #define CONFIG_ILBC_AT_ENCODER 0
 #define CONFIG_PCM_ALAW_AT_ENCODER 0
 #define CONFIG_PCM_MULAW_AT_ENCODER 0
-#define CONFIG_LIBFAAC_ENCODER 0
 #define CONFIG_LIBFDK_AAC_ENCODER 0
 #define CONFIG_LIBGSM_ENCODER 0
 #define CONFIG_LIBGSM_MS_ENCODER 0
 #define CONFIG_LIBILBC_ENCODER 0
 #define CONFIG_LIBMP3LAME_ENCODER 0
 #define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
@@ -1566,16 +1583,17 @@
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_HEVC_VAAPI_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MJPEG_VAAPI_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ABENCH_FILTER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_FILTER 0
+#define CONFIG_ACRUSHER_FILTER 0
 #define CONFIG_ADELAY_FILTER 0
 #define CONFIG_AECHO_FILTER 0
 #define CONFIG_AEMPHASIS_FILTER 0
 #define CONFIG_AEVAL_FILTER 0
 #define CONFIG_AFADE_FILTER 0
 #define CONFIG_AFFTFILT_FILTER 0
 #define CONFIG_AFORMAT_FILTER 0
 #define CONFIG_AGATE_FILTER 0
@@ -1597,16 +1615,17 @@
 #define CONFIG_AREVERSE_FILTER 0
 #define CONFIG_ASELECT_FILTER 0
 #define CONFIG_ASENDCMD_FILTER 0
 #define CONFIG_ASETNSAMPLES_FILTER 0
 #define CONFIG_ASETPTS_FILTER 0
 #define CONFIG_ASETRATE_FILTER 0
 #define CONFIG_ASETTB_FILTER 0
 #define CONFIG_ASHOWINFO_FILTER 0
+#define CONFIG_ASIDEDATA_FILTER 0
 #define CONFIG_ASPLIT_FILTER 0
 #define CONFIG_ASTATS_FILTER 0
 #define CONFIG_ASTREAMSELECT_FILTER 0
 #define CONFIG_ASYNCTS_FILTER 0
 #define CONFIG_ATEMPO_FILTER 0
 #define CONFIG_ATRIM_FILTER 0
 #define CONFIG_AZMQ_FILTER 0
 #define CONFIG_BANDPASS_FILTER 0
@@ -1614,16 +1633,17 @@
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
 #define CONFIG_BS2B_FILTER 0
 #define CONFIG_CHANNELMAP_FILTER 0
 #define CONFIG_CHANNELSPLIT_FILTER 0
 #define CONFIG_CHORUS_FILTER 0
 #define CONFIG_COMPAND_FILTER 0
 #define CONFIG_COMPENSATIONDELAY_FILTER 0
+#define CONFIG_CRYSTALIZER_FILTER 0
 #define CONFIG_DCSHIFT_FILTER 0
 #define CONFIG_DYNAUDNORM_FILTER 0
 #define CONFIG_EARWAX_FILTER 0
 #define CONFIG_EBUR128_FILTER 0
 #define CONFIG_EQUALIZER_FILTER 0
 #define CONFIG_EXTRASTEREO_FILTER 0
 #define CONFIG_FIREQUALIZER_FILTER 0
 #define CONFIG_FLANGER_FILTER 0
@@ -1652,20 +1672,22 @@
 #define CONFIG_AEVALSRC_FILTER 0
 #define CONFIG_ANOISESRC_FILTER 0
 #define CONFIG_ANULLSRC_FILTER 0
 #define CONFIG_FLITE_FILTER 0
 #define CONFIG_SINE_FILTER 0
 #define CONFIG_ANULLSINK_FILTER 0
 #define CONFIG_ALPHAEXTRACT_FILTER 0
 #define CONFIG_ALPHAMERGE_FILTER 0
+#define CONFIG_ASS_FILTER 0
 #define CONFIG_ATADENOISE_FILTER 0
-#define CONFIG_ASS_FILTER 0
+#define CONFIG_AVGBLUR_FILTER 0
+#define CONFIG_BBOX_FILTER 0
 #define CONFIG_BENCH_FILTER 0
-#define CONFIG_BBOX_FILTER 0
+#define CONFIG_BITPLANENOISE_FILTER 0
 #define CONFIG_BLACKDETECT_FILTER 0
 #define CONFIG_BLACKFRAME_FILTER 0
 #define CONFIG_BLEND_FILTER 0
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_BWDIF_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CIESCOPE_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
@@ -1711,47 +1733,54 @@
 #define CONFIG_FIND_RECT_FILTER 0
 #define CONFIG_FORMAT_FILTER 0
 #define CONFIG_FPS_FILTER 0
 #define CONFIG_FRAMEPACK_FILTER 0
 #define CONFIG_FRAMERATE_FILTER 0
 #define CONFIG_FRAMESTEP_FILTER 0
 #define CONFIG_FREI0R_FILTER 0
 #define CONFIG_FSPP_FILTER 0
+#define CONFIG_GBLUR_FILTER 0
 #define CONFIG_GEQ_FILTER 0
 #define CONFIG_GRADFUN_FILTER 0
 #define CONFIG_HALDCLUT_FILTER 0
 #define CONFIG_HFLIP_FILTER 0
 #define CONFIG_HISTEQ_FILTER 0
 #define CONFIG_HISTOGRAM_FILTER 0
 #define CONFIG_HQDN3D_FILTER 0
 #define CONFIG_HQX_FILTER 0
+#define CONFIG_HSTACK_FILTER 0
+#define CONFIG_HUE_FILTER 0
 #define CONFIG_HWDOWNLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_CUDA_FILTER 0
-#define CONFIG_HSTACK_FILTER 0
-#define CONFIG_HUE_FILTER 0
+#define CONFIG_HYSTERESIS_FILTER 0
 #define CONFIG_IDET_FILTER 0
 #define CONFIG_IL_FILTER 0
 #define CONFIG_INFLATE_FILTER 0
 #define CONFIG_INTERLACE_FILTER 0
 #define CONFIG_INTERLEAVE_FILTER 0
 #define CONFIG_KERNDEINT_FILTER 0
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LOOP_FILTER 0
+#define CONFIG_LUT_FILTER 0
+#define CONFIG_LUT2_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
-#define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
+#define CONFIG_MASKEDCLAMP_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_MESTIMATE_FILTER 0
 #define CONFIG_METADATA_FILTER 0
+#define CONFIG_MINTERPOLATE_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_FILTER 0
+#define CONFIG_NLMEANS_FILTER 0
 #define CONFIG_NNEDI_FILTER 0
 #define CONFIG_NOFORMAT_FILTER 0
 #define CONFIG_NOISE_FILTER 0
 #define CONFIG_NULL_FILTER 0
 #define CONFIG_OCR_FILTER 0
 #define CONFIG_OCV_FILTER 0
 #define CONFIG_OVERLAY_FILTER 0
 #define CONFIG_OWDENOISE_FILTER 0
@@ -1759,48 +1788,51 @@
 #define CONFIG_PALETTEGEN_FILTER 0
 #define CONFIG_PALETTEUSE_FILTER 0
 #define CONFIG_PERMS_FILTER 0
 #define CONFIG_PERSPECTIVE_FILTER 0
 #define CONFIG_PHASE_FILTER 0
 #define CONFIG_PIXDESCTEST_FILTER 0
 #define CONFIG_PP_FILTER 0
 #define CONFIG_PP7_FILTER 0
+#define CONFIG_PREWITT_FILTER 0
 #define CONFIG_PSNR_FILTER 0
 #define CONFIG_PULLUP_FILTER 0
 #define CONFIG_QP_FILTER 0
 #define CONFIG_RANDOM_FILTER 0
 #define CONFIG_READVITC_FILTER 0
 #define CONFIG_REALTIME_FILTER 0
 #define CONFIG_REMAP_FILTER 0
 #define CONFIG_REMOVEGRAIN_FILTER 0
 #define CONFIG_REMOVELOGO_FILTER 0
 #define CONFIG_REPEATFIELDS_FILTER 0
 #define CONFIG_REVERSE_FILTER 0
 #define CONFIG_ROTATE_FILTER 0
 #define CONFIG_SAB_FILTER 0
 #define CONFIG_SCALE_FILTER 0
-#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SCALE_NPP_FILTER 0
 #define CONFIG_SCALE_VAAPI_FILTER 0
+#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SELECT_FILTER 0
 #define CONFIG_SELECTIVECOLOR_FILTER 0
 #define CONFIG_SENDCMD_FILTER 0
 #define CONFIG_SEPARATEFIELDS_FILTER 0
 #define CONFIG_SETDAR_FILTER 0
 #define CONFIG_SETFIELD_FILTER 0
 #define CONFIG_SETPTS_FILTER 0
 #define CONFIG_SETSAR_FILTER 0
 #define CONFIG_SETTB_FILTER 0
 #define CONFIG_SHOWINFO_FILTER 0
 #define CONFIG_SHOWPALETTE_FILTER 0
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
+#define CONFIG_SIDEDATA_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_FILTER 0
+#define CONFIG_SOBEL_FILTER 0
 #define CONFIG_SPLIT_FILTER 0
 #define CONFIG_SPP_FILTER 0
 #define CONFIG_SSIM_FILTER 0
 #define CONFIG_STEREO3D_FILTER 0
 #define CONFIG_STREAMSELECT_FILTER 0
 #define CONFIG_SUBTITLES_FILTER 0
 #define CONFIG_SUPER2XSAI_FILTER 0
 #define CONFIG_SWAPRECT_FILTER 0
@@ -1809,24 +1841,26 @@
 #define CONFIG_TELECINE_FILTER 0
 #define CONFIG_THUMBNAIL_FILTER 0
 #define CONFIG_TILE_FILTER 0
 #define CONFIG_TINTERLACE_FILTER 0
 #define CONFIG_TRANSPOSE_FILTER 0
 #define CONFIG_TRIM_FILTER 0
 #define CONFIG_UNSHARP_FILTER 0
 #define CONFIG_USPP_FILTER 0
+#define CONFIG_VAGUEDENOISER_FILTER 0
 #define CONFIG_VECTORSCOPE_FILTER 0
 #define CONFIG_VFLIP_FILTER 0
 #define CONFIG_VIDSTABDETECT_FILTER 0
 #define CONFIG_VIDSTABTRANSFORM_FILTER 0
 #define CONFIG_VIGNETTE_FILTER 0
 #define CONFIG_VSTACK_FILTER 0
 #define CONFIG_W3FDIF_FILTER 0
 #define CONFIG_WAVEFORM_FILTER 0
+#define CONFIG_WEAVE_FILTER 0
 #define CONFIG_XBR_FILTER 0
 #define CONFIG_YADIF_FILTER 0
 #define CONFIG_ZMQ_FILTER 0
 #define CONFIG_ZOOMPAN_FILTER 0
 #define CONFIG_ZSCALE_FILTER 0
 #define CONFIG_ALLRGB_FILTER 0
 #define CONFIG_ALLYUV_FILTER 0
 #define CONFIG_CELLAUTO_FILTER 0
@@ -1838,76 +1872,87 @@
 #define CONFIG_MANDELBROT_FILTER 0
 #define CONFIG_MPTESTSRC_FILTER 0
 #define CONFIG_NULLSRC_FILTER 0
 #define CONFIG_RGBTESTSRC_FILTER 0
 #define CONFIG_SMPTEBARS_FILTER 0
 #define CONFIG_SMPTEHDBARS_FILTER 0
 #define CONFIG_TESTSRC_FILTER 0
 #define CONFIG_TESTSRC2_FILTER 0
+#define CONFIG_YUVTESTSRC_FILTER 0
 #define CONFIG_NULLSINK_FILTER 0
 #define CONFIG_ADRAWGRAPH_FILTER 0
 #define CONFIG_AHISTOGRAM_FILTER 0
 #define CONFIG_APHASEMETER_FILTER 0
 #define CONFIG_AVECTORSCOPE_FILTER 0
 #define CONFIG_CONCAT_FILTER 0
 #define CONFIG_SHOWCQT_FILTER 0
 #define CONFIG_SHOWFREQS_FILTER 0
 #define CONFIG_SHOWSPECTRUM_FILTER 0
 #define CONFIG_SHOWSPECTRUMPIC_FILTER 0
 #define CONFIG_SHOWVOLUME_FILTER 0
 #define CONFIG_SHOWWAVES_FILTER 0
 #define CONFIG_SHOWWAVESPIC_FILTER 0
 #define CONFIG_SPECTRUMSYNTH_FILTER 0
 #define CONFIG_AMOVIE_FILTER 0
 #define CONFIG_MOVIE_FILTER 0
+#define CONFIG_H263_CUVID_HWACCEL 0
 #define CONFIG_H263_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_CUVID_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
+#define CONFIG_H264_MEDIACODEC_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
 #define CONFIG_H264_VAAPI_HWACCEL 0
 #define CONFIG_H264_VDA_HWACCEL 0
 #define CONFIG_H264_VDA_OLD_HWACCEL 0
 #define CONFIG_H264_VDPAU_HWACCEL 0
 #define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_HEVC_CUVID_HWACCEL 0
 #define CONFIG_HEVC_D3D11VA_HWACCEL 0
 #define CONFIG_HEVC_DXVA2_HWACCEL 0
+#define CONFIG_HEVC_MEDIACODEC_HWACCEL 0
 #define CONFIG_HEVC_QSV_HWACCEL 0
 #define CONFIG_HEVC_VAAPI_HWACCEL 0
 #define CONFIG_HEVC_VDPAU_HWACCEL 0
+#define CONFIG_MJPEG_CUVID_HWACCEL 0
+#define CONFIG_MPEG1_CUVID_HWACCEL 0
 #define CONFIG_MPEG1_XVMC_HWACCEL 0
 #define CONFIG_MPEG1_VDPAU_HWACCEL 0
 #define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG2_CUVID_HWACCEL 0
 #define CONFIG_MPEG2_XVMC_HWACCEL 0
 #define CONFIG_MPEG2_D3D11VA_HWACCEL 0
 #define CONFIG_MPEG2_DXVA2_HWACCEL 0
 #define CONFIG_MPEG2_MMAL_HWACCEL 0
 #define CONFIG_MPEG2_QSV_HWACCEL 0
 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
 #define CONFIG_MPEG2_VDPAU_HWACCEL 0
 #define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG4_CUVID_HWACCEL 0
+#define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0
 #define CONFIG_MPEG4_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_VC1_CUVID_HWACCEL 0
 #define CONFIG_VC1_D3D11VA_HWACCEL 0
 #define CONFIG_VC1_DXVA2_HWACCEL 0
 #define CONFIG_VC1_VAAPI_HWACCEL 0
 #define CONFIG_VC1_VDPAU_HWACCEL 0
 #define CONFIG_VC1_MMAL_HWACCEL 0
 #define CONFIG_VC1_QSV_HWACCEL 0
 #define CONFIG_VP8_CUVID_HWACCEL 0
+#define CONFIG_VP8_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_CUVID_HWACCEL 0
 #define CONFIG_VP9_D3D11VA_HWACCEL 0
 #define CONFIG_VP9_DXVA2_HWACCEL 0
+#define CONFIG_VP9_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_D3D11VA_HWACCEL 0
 #define CONFIG_WMV3_DXVA2_HWACCEL 0
 #define CONFIG_WMV3_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_VDPAU_HWACCEL 0
 #define CONFIG_ALSA_INDEV 0
 #define CONFIG_AVFOUNDATION_INDEV 0
 #define CONFIG_BKTR_INDEV 0
@@ -1954,16 +1999,17 @@
 #define CONFIG_DIRAC_MUXER 0
 #define CONFIG_DNXHD_MUXER 0
 #define CONFIG_DTS_MUXER 0
 #define CONFIG_DV_MUXER 0
 #define CONFIG_EAC3_MUXER 0
 #define CONFIG_F4V_MUXER 0
 #define CONFIG_FFM_MUXER 0
 #define CONFIG_FFMETADATA_MUXER 0
+#define CONFIG_FIFO_MUXER 0
 #define CONFIG_FILMSTRIP_MUXER 0
 #define CONFIG_FLAC_MUXER 0
 #define CONFIG_FLV_MUXER 0
 #define CONFIG_FRAMECRC_MUXER 0
 #define CONFIG_FRAMEHASH_MUXER 0
 #define CONFIG_FRAMEMD5_MUXER 0
 #define CONFIG_G722_MUXER 0
 #define CONFIG_G723_1_MUXER 0
@@ -2011,16 +2057,17 @@
 #define CONFIG_MPJPEG_MUXER 0
 #define CONFIG_MXF_MUXER 0
 #define CONFIG_MXF_D10_MUXER 0
 #define CONFIG_MXF_OPATOM_MUXER 0
 #define CONFIG_NULL_MUXER 0
 #define CONFIG_NUT_MUXER 0
 #define CONFIG_OGA_MUXER 0
 #define CONFIG_OGG_MUXER 0
+#define CONFIG_OGV_MUXER 0
 #define CONFIG_OMA_MUXER 0
 #define CONFIG_OPUS_MUXER 0
 #define CONFIG_PCM_ALAW_MUXER 0
 #define CONFIG_PCM_MULAW_MUXER 0
 #define CONFIG_PCM_F64BE_MUXER 0
 #define CONFIG_PCM_F64LE_MUXER 0
 #define CONFIG_PCM_F32BE_MUXER 0
 #define CONFIG_PCM_F32LE_MUXER 0
@@ -2057,16 +2104,17 @@
 #define CONFIG_SPDIF_MUXER 0
 #define CONFIG_SRT_MUXER 0
 #define CONFIG_SWF_MUXER 0
 #define CONFIG_TEE_MUXER 0
 #define CONFIG_TG2_MUXER 0
 #define CONFIG_TGP_MUXER 0
 #define CONFIG_MKVTIMESTAMP_V2_MUXER 0
 #define CONFIG_TRUEHD_MUXER 0
+#define CONFIG_TTA_MUXER 0
 #define CONFIG_UNCODEDFRAMECRC_MUXER 0
 #define CONFIG_VC1_MUXER 0
 #define CONFIG_VC1T_MUXER 0
 #define CONFIG_VOC_MUXER 0
 #define CONFIG_W64_MUXER 0
 #define CONFIG_WAV_MUXER 0
 #define CONFIG_WEBM_MUXER 0
 #define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
@@ -2080,17 +2128,17 @@
 #define CONFIG_LIBNUT_MUXER 0
 #define CONFIG_ALSA_OUTDEV 0
 #define CONFIG_CACA_OUTDEV 0
 #define CONFIG_DECKLINK_OUTDEV 0
 #define CONFIG_FBDEV_OUTDEV 0
 #define CONFIG_OPENGL_OUTDEV 0
 #define CONFIG_OSS_OUTDEV 0
 #define CONFIG_PULSE_OUTDEV 0
-#define CONFIG_SDL_OUTDEV 0
+#define CONFIG_SDL2_OUTDEV 0
 #define CONFIG_SNDIO_OUTDEV 0
 #define CONFIG_V4L2_OUTDEV 0
 #define CONFIG_XV_OUTDEV 0
 #define CONFIG_AAC_PARSER 0
 #define CONFIG_AAC_LATM_PARSER 0
 #define CONFIG_AC3_PARSER 0
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
@@ -2152,16 +2200,17 @@
 #define CONFIG_RTMPS_PROTOCOL 0
 #define CONFIG_RTMPT_PROTOCOL 0
 #define CONFIG_RTMPTE_PROTOCOL 0
 #define CONFIG_RTMPTS_PROTOCOL 0
 #define CONFIG_RTP_PROTOCOL 0
 #define CONFIG_SCTP_PROTOCOL 0
 #define CONFIG_SRTP_PROTOCOL 0
 #define CONFIG_SUBFILE_PROTOCOL 0
+#define CONFIG_TEE_PROTOCOL 0
 #define CONFIG_TCP_PROTOCOL 0
 #define CONFIG_TLS_GNUTLS_PROTOCOL 0
 #define CONFIG_TLS_SCHANNEL_PROTOCOL 0
 #define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0
 #define CONFIG_TLS_OPENSSL_PROTOCOL 0
 #define CONFIG_UDP_PROTOCOL 0
 #define CONFIG_UDPLITE_PROTOCOL 0
 #define CONFIG_UNIX_PROTOCOL 0
--- a/media/ffvpx/config_win32.asm
+++ b/media/ffvpx/config_win32.asm
@@ -176,17 +176,16 @@
 %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0
 %define HAVE_CABS 0
 %define HAVE_CEXP 0
 %define HAVE_INLINE_ASM 0
 %define HAVE_SYMVER 0
 %define HAVE_YASM 1
 %define HAVE_BIGENDIAN 0
 %define HAVE_FAST_UNALIGNED 1
-%define HAVE_INCOMPATIBLE_LIBAV_ABI 0
 %define HAVE_ALSA_ASOUNDLIB_H 0
 %define HAVE_ALTIVEC_H 0
 %define HAVE_ARPA_INET_H 0
 %define HAVE_ASM_TYPES_H 0
 %define HAVE_CDIO_PARANOIA_H 0
 %define HAVE_CDIO_PARANOIA_PARANOIA_H 0
 %define HAVE_DISPATCH_DISPATCH_H 0
 %define HAVE_DEV_BKTR_IOCTL_BT848_H 0
@@ -279,16 +278,17 @@
 %define HAVE_GETTIMEOFDAY 0
 %define HAVE_GLOB 0
 %define HAVE_GLXGETPROCADDRESS 0
 %define HAVE_GMTIME_R 0
 %define HAVE_INET_ATON 0
 %define HAVE_ISATTY 1
 %define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
 %define HAVE_KBHIT 1
+%define HAVE_LOADLIBRARY 0
 %define HAVE_LSTAT 0
 %define HAVE_LZO1X_999_COMPRESS 0
 %define HAVE_MACH_ABSOLUTE_TIME 0
 %define HAVE_MAPVIEWOFFILE 1
 %define HAVE_MKSTEMP 0
 %define HAVE_MMAP 0
 %define HAVE_MPROTECT 0
 %define HAVE_NANOSLEEP 0
@@ -353,17 +353,17 @@
 %define HAVE_LIBC_MSVCRT 1
 %define HAVE_LIBDC1394_1 0
 %define HAVE_LIBDC1394_2 0
 %define HAVE_MAKEINFO 1
 %define HAVE_MAKEINFO_HTML 0
 %define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
 %define HAVE_PERL 1
 %define HAVE_POD2MAN 1
-%define HAVE_SDL 0
+%define HAVE_SDL2 0
 %define HAVE_SECTION_DATA_REL_RO 0
 %define HAVE_TEXI2HTML 0
 %define HAVE_THREADS 1
 %define HAVE_VAAPI_DRM 0
 %define HAVE_VAAPI_X11 0
 %define HAVE_VDPAU_X11 0
 %define HAVE_WINRT 0
 %define HAVE_XLIB 0
@@ -378,24 +378,25 @@
 %define CONFIG_DEMUXERS 0
 %define CONFIG_MUXERS 0
 %define CONFIG_PROTOCOLS 0
 %define CONFIG_DOC 0
 %define CONFIG_HTMLPAGES 0
 %define CONFIG_MANPAGES 1
 %define CONFIG_PODPAGES 1
 %define CONFIG_TXTPAGES 1
+%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 %define CONFIG_AVIO_READING_EXAMPLE 1
-%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 %define CONFIG_DECODING_ENCODING_EXAMPLE 0
 %define CONFIG_DEMUXING_DECODING_EXAMPLE 0
 %define CONFIG_EXTRACT_MVS_EXAMPLE 0
 %define CONFIG_FILTER_AUDIO_EXAMPLE 0
 %define CONFIG_FILTERING_AUDIO_EXAMPLE 0
 %define CONFIG_FILTERING_VIDEO_EXAMPLE 0
+%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0
 %define CONFIG_METADATA_EXAMPLE 0
 %define CONFIG_MUXING_EXAMPLE 0
 %define CONFIG_QSVDEC_EXAMPLE 0
 %define CONFIG_REMUXING_EXAMPLE 0
 %define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
 %define CONFIG_SCALING_VIDEO_EXAMPLE 0
 %define CONFIG_TRANSCODE_AAC_EXAMPLE 0
 %define CONFIG_TRANSCODING_EXAMPLE 0
@@ -414,17 +415,16 @@
 %define CONFIG_LIBASS 0
 %define CONFIG_LIBBLURAY 0
 %define CONFIG_LIBBS2B 0
 %define CONFIG_LIBCACA 0
 %define CONFIG_LIBCDIO 0
 %define CONFIG_LIBCELT 0
 %define CONFIG_LIBDC1394 0
 %define CONFIG_LIBEBUR128 0
-%define CONFIG_LIBFAAC 0
 %define CONFIG_LIBFDK_AAC 0
 %define CONFIG_LIBFLITE 0
 %define CONFIG_LIBFONTCONFIG 0
 %define CONFIG_LIBFREETYPE 0
 %define CONFIG_LIBFRIBIDI 0
 %define CONFIG_LIBGME 0
 %define CONFIG_LIBGSM 0
 %define CONFIG_LIBIEC61883 0
@@ -433,16 +433,17 @@
 %define CONFIG_LIBMODPLUG 0
 %define CONFIG_LIBMP3LAME 0
 %define CONFIG_LIBNUT 0
 %define CONFIG_LIBOPENCORE_AMRNB 0
 %define CONFIG_LIBOPENCORE_AMRWB 0
 %define CONFIG_LIBOPENCV 0
 %define CONFIG_LIBOPENH264 0
 %define CONFIG_LIBOPENJPEG 0
+%define CONFIG_LIBOPENMPT 0
 %define CONFIG_LIBOPUS 0
 %define CONFIG_LIBPULSE 0
 %define CONFIG_LIBRTMP 0
 %define CONFIG_LIBRUBBERBAND 0
 %define CONFIG_LIBSCHROEDINGER 0
 %define CONFIG_LIBSHINE 0
 %define CONFIG_LIBSMBCLIENT 0
 %define CONFIG_LIBSNAPPY 0
@@ -474,16 +475,17 @@
 %define CONFIG_MEDIACODEC 0
 %define CONFIG_NETCDF 0
 %define CONFIG_OPENAL 0
 %define CONFIG_OPENCL 0
 %define CONFIG_OPENGL 0
 %define CONFIG_OPENSSL 0
 %define CONFIG_SCHANNEL 1
 %define CONFIG_SDL 0
+%define CONFIG_SDL2 0
 %define CONFIG_SECURETRANSPORT 0
 %define CONFIG_VIDEOTOOLBOX 0
 %define CONFIG_X11GRAB 0
 %define CONFIG_XLIB 0
 %define CONFIG_ZLIB 0
 %define CONFIG_AUDIOTOOLBOX 0
 %define CONFIG_CUDA 0
 %define CONFIG_CUVID 0
@@ -533,17 +535,16 @@
 %define CONFIG_FFT 0
 %define CONFIG_LSP 0
 %define CONFIG_LZO 0
 %define CONFIG_MDCT 0
 %define CONFIG_PIXELUTILS 0
 %define CONFIG_NETWORK 0
 %define CONFIG_RDFT 0
 %define CONFIG_FONTCONFIG 0
-%define CONFIG_INCOMPATIBLE_LIBAV_ABI 0
 %define CONFIG_MEMALIGN_HACK 0
 %define CONFIG_MEMORY_POISONING 0
 %define CONFIG_NEON_CLOBBER_TEST 0
 %define CONFIG_PIC 0
 %define CONFIG_POD2MAN 1
 %define CONFIG_RAISE_MAJOR 0
 %define CONFIG_THUMB 0
 %define CONFIG_VALGRIND_BACKTRACE 0
@@ -977,16 +978,18 @@
 %define CONFIG_PCM_S16LE_PLANAR_DECODER 0
 %define CONFIG_PCM_S24BE_DECODER 0
 %define CONFIG_PCM_S24DAUD_DECODER 0
 %define CONFIG_PCM_S24LE_DECODER 0
 %define CONFIG_PCM_S24LE_PLANAR_DECODER 0
 %define CONFIG_PCM_S32BE_DECODER 0
 %define CONFIG_PCM_S32LE_DECODER 0
 %define CONFIG_PCM_S32LE_PLANAR_DECODER 0
+%define CONFIG_PCM_S64BE_DECODER 0
+%define CONFIG_PCM_S64LE_DECODER 0
 %define CONFIG_PCM_U8_DECODER 0
 %define CONFIG_PCM_U16BE_DECODER 0
 %define CONFIG_PCM_U16LE_DECODER 0
 %define CONFIG_PCM_U24BE_DECODER 0
 %define CONFIG_PCM_U24LE_DECODER 0
 %define CONFIG_PCM_U32BE_DECODER 0
 %define CONFIG_PCM_U32LE_DECODER 0
 %define CONFIG_PCM_ZORK_DECODER 0
@@ -1085,21 +1088,31 @@
 %define CONFIG_LIBSPEEX_DECODER 0
 %define CONFIG_LIBVORBIS_DECODER 0
 %define CONFIG_LIBVPX_VP8_DECODER 0
 %define CONFIG_LIBVPX_VP9_DECODER 0
 %define CONFIG_LIBZVBI_TELETEXT_DECODER 0
 %define CONFIG_BINTEXT_DECODER 0
 %define CONFIG_XBIN_DECODER 0
 %define CONFIG_IDF_DECODER 0
+%define CONFIG_LIBOPENH264_DECODER 0
+%define CONFIG_H263_CUVID_DECODER 0
 %define CONFIG_H264_CUVID_DECODER 0
 %define CONFIG_HEVC_CUVID_DECODER 0
+%define CONFIG_HEVC_MEDIACODEC_DECODER 0
+%define CONFIG_MJPEG_CUVID_DECODER 0
+%define CONFIG_MPEG1_CUVID_DECODER 0
+%define CONFIG_MPEG2_CUVID_DECODER 0
+%define CONFIG_MPEG4_CUVID_DECODER 0
+%define CONFIG_MPEG4_MEDIACODEC_DECODER 0
 %define CONFIG_VC1_CUVID_DECODER 0
 %define CONFIG_VP8_CUVID_DECODER 0
+%define CONFIG_VP8_MEDIACODEC_DECODER 0
 %define CONFIG_VP9_CUVID_DECODER 0
+%define CONFIG_VP9_MEDIACODEC_DECODER 0
 %define CONFIG_AA_DEMUXER 0
 %define CONFIG_AAC_DEMUXER 0
 %define CONFIG_AC3_DEMUXER 0
 %define CONFIG_ACM_DEMUXER 0
 %define CONFIG_ACT_DEMUXER 0
 %define CONFIG_ADF_DEMUXER 0
 %define CONFIG_ADP_DEMUXER 0
 %define CONFIG_ADS_DEMUXER 0
@@ -1359,16 +1372,17 @@
 %define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
 %define CONFIG_LIBGME_DEMUXER 0
 %define CONFIG_LIBMODPLUG_DEMUXER 0
 %define CONFIG_LIBNUT_DEMUXER 0
+%define CONFIG_LIBOPENMPT_DEMUXER 0
 %define CONFIG_A64MULTI_ENCODER 0
 %define CONFIG_A64MULTI5_ENCODER 0
 %define CONFIG_ALIAS_PIX_ENCODER 0
 %define CONFIG_AMV_ENCODER 0
 %define CONFIG_APNG_ENCODER 0
 %define CONFIG_ASV1_ENCODER 0
 %define CONFIG_ASV2_ENCODER 0
 %define CONFIG_AVRP_ENCODER 0
@@ -1445,22 +1459,24 @@
 %define CONFIG_AAC_ENCODER 0
 %define CONFIG_AC3_ENCODER 0
 %define CONFIG_AC3_FIXED_ENCODER 0
 %define CONFIG_ALAC_ENCODER 0
 %define CONFIG_DCA_ENCODER 0
 %define CONFIG_EAC3_ENCODER 0
 %define CONFIG_FLAC_ENCODER 0
 %define CONFIG_G723_1_ENCODER 0
+%define CONFIG_MLP_ENCODER 0
 %define CONFIG_MP2_ENCODER 0
 %define CONFIG_MP2FIXED_ENCODER 0
 %define CONFIG_NELLYMOSER_ENCODER 0
 %define CONFIG_RA_144_ENCODER 0
 %define CONFIG_SONIC_ENCODER 0
 %define CONFIG_SONIC_LS_ENCODER 0
+%define CONFIG_TRUEHD_ENCODER 0
 %define CONFIG_TTA_ENCODER 0
 %define CONFIG_VORBIS_ENCODER 0
 %define CONFIG_WAVPACK_ENCODER 0
 %define CONFIG_WMAV1_ENCODER 0
 %define CONFIG_WMAV2_ENCODER 0
 %define CONFIG_PCM_ALAW_ENCODER 0
 %define CONFIG_PCM_F32BE_ENCODER 0
 %define CONFIG_PCM_F32LE_ENCODER 0
@@ -1475,16 +1491,18 @@
 %define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
 %define CONFIG_PCM_S24BE_ENCODER 0
 %define CONFIG_PCM_S24DAUD_ENCODER 0
 %define CONFIG_PCM_S24LE_ENCODER 0
 %define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
 %define CONFIG_PCM_S32BE_ENCODER 0
 %define CONFIG_PCM_S32LE_ENCODER 0
 %define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
+%define CONFIG_PCM_S64BE_ENCODER 0
+%define CONFIG_PCM_S64LE_ENCODER 0
 %define CONFIG_PCM_U8_ENCODER 0
 %define CONFIG_PCM_U16BE_ENCODER 0
 %define CONFIG_PCM_U16LE_ENCODER 0
 %define CONFIG_PCM_U24BE_ENCODER 0
 %define CONFIG_PCM_U24LE_ENCODER 0
 %define CONFIG_PCM_U32BE_ENCODER 0
 %define CONFIG_PCM_U32LE_ENCODER 0
 %define CONFIG_ROQ_DPCM_ENCODER 0
@@ -1506,17 +1524,16 @@
 %define CONFIG_TEXT_ENCODER 0
 %define CONFIG_WEBVTT_ENCODER 0
 %define CONFIG_XSUB_ENCODER 0
 %define CONFIG_AAC_AT_ENCODER 0
 %define CONFIG_ALAC_AT_ENCODER 0
 %define CONFIG_ILBC_AT_ENCODER 0
 %define CONFIG_PCM_ALAW_AT_ENCODER 0
 %define CONFIG_PCM_MULAW_AT_ENCODER 0
-%define CONFIG_LIBFAAC_ENCODER 0
 %define CONFIG_LIBFDK_AAC_ENCODER 0
 %define CONFIG_LIBGSM_ENCODER 0
 %define CONFIG_LIBGSM_MS_ENCODER 0
 %define CONFIG_LIBILBC_ENCODER 0
 %define CONFIG_LIBMP3LAME_ENCODER 0
 %define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
 %define CONFIG_LIBOPENJPEG_ENCODER 0
 %define CONFIG_LIBOPUS_ENCODER 0
@@ -1551,16 +1568,17 @@
 %define CONFIG_HEVC_QSV_ENCODER 0
 %define CONFIG_HEVC_VAAPI_ENCODER 0
 %define CONFIG_LIBKVAZAAR_ENCODER 0
 %define CONFIG_MJPEG_VAAPI_ENCODER 0
 %define CONFIG_MPEG2_QSV_ENCODER 0
 %define CONFIG_ABENCH_FILTER 0
 %define CONFIG_ACOMPRESSOR_FILTER 0
 %define CONFIG_ACROSSFADE_FILTER 0
+%define CONFIG_ACRUSHER_FILTER 0
 %define CONFIG_ADELAY_FILTER 0
 %define CONFIG_AECHO_FILTER 0
 %define CONFIG_AEMPHASIS_FILTER 0
 %define CONFIG_AEVAL_FILTER 0
 %define CONFIG_AFADE_FILTER 0
 %define CONFIG_AFFTFILT_FILTER 0
 %define CONFIG_AFORMAT_FILTER 0
 %define CONFIG_AGATE_FILTER 0
@@ -1582,16 +1600,17 @@
 %define CONFIG_AREVERSE_FILTER 0
 %define CONFIG_ASELECT_FILTER 0
 %define CONFIG_ASENDCMD_FILTER 0
 %define CONFIG_ASETNSAMPLES_FILTER 0
 %define CONFIG_ASETPTS_FILTER 0
 %define CONFIG_ASETRATE_FILTER 0
 %define CONFIG_ASETTB_FILTER 0
 %define CONFIG_ASHOWINFO_FILTER 0
+%define CONFIG_ASIDEDATA_FILTER 0
 %define CONFIG_ASPLIT_FILTER 0
 %define CONFIG_ASTATS_FILTER 0
 %define CONFIG_ASTREAMSELECT_FILTER 0
 %define CONFIG_ASYNCTS_FILTER 0
 %define CONFIG_ATEMPO_FILTER 0
 %define CONFIG_ATRIM_FILTER 0
 %define CONFIG_AZMQ_FILTER 0
 %define CONFIG_BANDPASS_FILTER 0
@@ -1599,16 +1618,17 @@
 %define CONFIG_BASS_FILTER 0
 %define CONFIG_BIQUAD_FILTER 0
 %define CONFIG_BS2B_FILTER 0
 %define CONFIG_CHANNELMAP_FILTER 0
 %define CONFIG_CHANNELSPLIT_FILTER 0
 %define CONFIG_CHORUS_FILTER 0
 %define CONFIG_COMPAND_FILTER 0
 %define CONFIG_COMPENSATIONDELAY_FILTER 0
+%define CONFIG_CRYSTALIZER_FILTER 0
 %define CONFIG_DCSHIFT_FILTER 0
 %define CONFIG_DYNAUDNORM_FILTER 0
 %define CONFIG_EARWAX_FILTER 0
 %define CONFIG_EBUR128_FILTER 0
 %define CONFIG_EQUALIZER_FILTER 0
 %define CONFIG_EXTRASTEREO_FILTER 0
 %define CONFIG_FIREQUALIZER_FILTER 0
 %define CONFIG_FLANGER_FILTER 0
@@ -1637,20 +1657,22 @@
 %define CONFIG_AEVALSRC_FILTER 0
 %define CONFIG_ANOISESRC_FILTER 0
 %define CONFIG_ANULLSRC_FILTER 0
 %define CONFIG_FLITE_FILTER 0
 %define CONFIG_SINE_FILTER 0
 %define CONFIG_ANULLSINK_FILTER 0
 %define CONFIG_ALPHAEXTRACT_FILTER 0
 %define CONFIG_ALPHAMERGE_FILTER 0
+%define CONFIG_ASS_FILTER 0
 %define CONFIG_ATADENOISE_FILTER 0
-%define CONFIG_ASS_FILTER 0
+%define CONFIG_AVGBLUR_FILTER 0
+%define CONFIG_BBOX_FILTER 0
 %define CONFIG_BENCH_FILTER 0
-%define CONFIG_BBOX_FILTER 0
+%define CONFIG_BITPLANENOISE_FILTER 0
 %define CONFIG_BLACKDETECT_FILTER 0
 %define CONFIG_BLACKFRAME_FILTER 0
 %define CONFIG_BLEND_FILTER 0
 %define CONFIG_BOXBLUR_FILTER 0
 %define CONFIG_BWDIF_FILTER 0
 %define CONFIG_CHROMAKEY_FILTER 0
 %define CONFIG_CIESCOPE_FILTER 0
 %define CONFIG_CODECVIEW_FILTER 0
@@ -1696,47 +1718,54 @@
 %define CONFIG_FIND_RECT_FILTER 0
 %define CONFIG_FORMAT_FILTER 0
 %define CONFIG_FPS_FILTER 0
 %define CONFIG_FRAMEPACK_FILTER 0
 %define CONFIG_FRAMERATE_FILTER 0
 %define CONFIG_FRAMESTEP_FILTER 0
 %define CONFIG_FREI0R_FILTER 0
 %define CONFIG_FSPP_FILTER 0
+%define CONFIG_GBLUR_FILTER 0
 %define CONFIG_GEQ_FILTER 0
 %define CONFIG_GRADFUN_FILTER 0
 %define CONFIG_HALDCLUT_FILTER 0
 %define CONFIG_HFLIP_FILTER 0
 %define CONFIG_HISTEQ_FILTER 0
 %define CONFIG_HISTOGRAM_FILTER 0
 %define CONFIG_HQDN3D_FILTER 0
 %define CONFIG_HQX_FILTER 0
+%define CONFIG_HSTACK_FILTER 0
+%define CONFIG_HUE_FILTER 0
 %define CONFIG_HWDOWNLOAD_FILTER 0
 %define CONFIG_HWUPLOAD_FILTER 0
 %define CONFIG_HWUPLOAD_CUDA_FILTER 0
-%define CONFIG_HSTACK_FILTER 0
-%define CONFIG_HUE_FILTER 0
+%define CONFIG_HYSTERESIS_FILTER 0
 %define CONFIG_IDET_FILTER 0
 %define CONFIG_IL_FILTER 0
 %define CONFIG_INFLATE_FILTER 0
 %define CONFIG_INTERLACE_FILTER 0
 %define CONFIG_INTERLEAVE_FILTER 0
 %define CONFIG_KERNDEINT_FILTER 0
 %define CONFIG_LENSCORRECTION_FILTER 0
 %define CONFIG_LOOP_FILTER 0
+%define CONFIG_LUT_FILTER 0
+%define CONFIG_LUT2_FILTER 0
 %define CONFIG_LUT3D_FILTER 0
-%define CONFIG_LUT_FILTER 0
 %define CONFIG_LUTRGB_FILTER 0
 %define CONFIG_LUTYUV_FILTER 0
+%define CONFIG_MASKEDCLAMP_FILTER 0
 %define CONFIG_MASKEDMERGE_FILTER 0
 %define CONFIG_MCDEINT_FILTER 0
 %define CONFIG_MERGEPLANES_FILTER 0
+%define CONFIG_MESTIMATE_FILTER 0
 %define CONFIG_METADATA_FILTER 0
+%define CONFIG_MINTERPOLATE_FILTER 0
 %define CONFIG_MPDECIMATE_FILTER 0
 %define CONFIG_NEGATE_FILTER 0
+%define CONFIG_NLMEANS_FILTER 0
 %define CONFIG_NNEDI_FILTER 0
 %define CONFIG_NOFORMAT_FILTER 0
 %define CONFIG_NOISE_FILTER 0
 %define CONFIG_NULL_FILTER 0
 %define CONFIG_OCR_FILTER 0
 %define CONFIG_OCV_FILTER 0
 %define CONFIG_OVERLAY_FILTER 0
 %define CONFIG_OWDENOISE_FILTER 0
@@ -1744,48 +1773,51 @@
 %define CONFIG_PALETTEGEN_FILTER 0
 %define CONFIG_PALETTEUSE_FILTER 0
 %define CONFIG_PERMS_FILTER 0
 %define CONFIG_PERSPECTIVE_FILTER 0
 %define CONFIG_PHASE_FILTER 0
 %define CONFIG_PIXDESCTEST_FILTER 0
 %define CONFIG_PP_FILTER 0
 %define CONFIG_PP7_FILTER 0
+%define CONFIG_PREWITT_FILTER 0
 %define CONFIG_PSNR_FILTER 0
 %define CONFIG_PULLUP_FILTER 0
 %define CONFIG_QP_FILTER 0
 %define CONFIG_RANDOM_FILTER 0
 %define CONFIG_READVITC_FILTER 0
 %define CONFIG_REALTIME_FILTER 0
 %define CONFIG_REMAP_FILTER 0
 %define CONFIG_REMOVEGRAIN_FILTER 0
 %define CONFIG_REMOVELOGO_FILTER 0
 %define CONFIG_REPEATFIELDS_FILTER 0
 %define CONFIG_REVERSE_FILTER 0
 %define CONFIG_ROTATE_FILTER 0
 %define CONFIG_SAB_FILTER 0
 %define CONFIG_SCALE_FILTER 0
-%define CONFIG_SCALE2REF_FILTER 0
 %define CONFIG_SCALE_NPP_FILTER 0
 %define CONFIG_SCALE_VAAPI_FILTER 0
+%define CONFIG_SCALE2REF_FILTER 0
 %define CONFIG_SELECT_FILTER 0
 %define CONFIG_SELECTIVECOLOR_FILTER 0
 %define CONFIG_SENDCMD_FILTER 0
 %define CONFIG_SEPARATEFIELDS_FILTER 0
 %define CONFIG_SETDAR_FILTER 0
 %define CONFIG_SETFIELD_FILTER 0
 %define CONFIG_SETPTS_FILTER 0
 %define CONFIG_SETSAR_FILTER 0
 %define CONFIG_SETTB_FILTER 0
 %define CONFIG_SHOWINFO_FILTER 0
 %define CONFIG_SHOWPALETTE_FILTER 0
 %define CONFIG_SHUFFLEFRAMES_FILTER 0
 %define CONFIG_SHUFFLEPLANES_FILTER 0
+%define CONFIG_SIDEDATA_FILTER 0
 %define CONFIG_SIGNALSTATS_FILTER 0
 %define CONFIG_SMARTBLUR_FILTER 0
+%define CONFIG_SOBEL_FILTER 0
 %define CONFIG_SPLIT_FILTER 0
 %define CONFIG_SPP_FILTER 0
 %define CONFIG_SSIM_FILTER 0
 %define CONFIG_STEREO3D_FILTER 0
 %define CONFIG_STREAMSELECT_FILTER 0
 %define CONFIG_SUBTITLES_FILTER 0
 %define CONFIG_SUPER2XSAI_FILTER 0
 %define CONFIG_SWAPRECT_FILTER 0
@@ -1794,24 +1826,26 @@
 %define CONFIG_TELECINE_FILTER 0
 %define CONFIG_THUMBNAIL_FILTER 0
 %define CONFIG_TILE_FILTER 0
 %define CONFIG_TINTERLACE_FILTER 0
 %define CONFIG_TRANSPOSE_FILTER 0
 %define CONFIG_TRIM_FILTER 0
 %define CONFIG_UNSHARP_FILTER 0
 %define CONFIG_USPP_FILTER 0
+%define CONFIG_VAGUEDENOISER_FILTER 0
 %define CONFIG_VECTORSCOPE_FILTER 0
 %define CONFIG_VFLIP_FILTER 0
 %define CONFIG_VIDSTABDETECT_FILTER 0
 %define CONFIG_VIDSTABTRANSFORM_FILTER 0
 %define CONFIG_VIGNETTE_FILTER 0
 %define CONFIG_VSTACK_FILTER 0
 %define CONFIG_W3FDIF_FILTER 0
 %define CONFIG_WAVEFORM_FILTER 0
+%define CONFIG_WEAVE_FILTER 0
 %define CONFIG_XBR_FILTER 0
 %define CONFIG_YADIF_FILTER 0
 %define CONFIG_ZMQ_FILTER 0
 %define CONFIG_ZOOMPAN_FILTER 0
 %define CONFIG_ZSCALE_FILTER 0
 %define CONFIG_ALLRGB_FILTER 0
 %define CONFIG_ALLYUV_FILTER 0
 %define CONFIG_CELLAUTO_FILTER 0
@@ -1823,76 +1857,87 @@
 %define CONFIG_MANDELBROT_FILTER 0
 %define CONFIG_MPTESTSRC_FILTER 0
 %define CONFIG_NULLSRC_FILTER 0
 %define CONFIG_RGBTESTSRC_FILTER 0
 %define CONFIG_SMPTEBARS_FILTER 0
 %define CONFIG_SMPTEHDBARS_FILTER 0
 %define CONFIG_TESTSRC_FILTER 0
 %define CONFIG_TESTSRC2_FILTER 0
+%define CONFIG_YUVTESTSRC_FILTER 0
 %define CONFIG_NULLSINK_FILTER 0
 %define CONFIG_ADRAWGRAPH_FILTER 0
 %define CONFIG_AHISTOGRAM_FILTER 0
 %define CONFIG_APHASEMETER_FILTER 0
 %define CONFIG_AVECTORSCOPE_FILTER 0
 %define CONFIG_CONCAT_FILTER 0
 %define CONFIG_SHOWCQT_FILTER 0
 %define CONFIG_SHOWFREQS_FILTER 0
 %define CONFIG_SHOWSPECTRUM_FILTER 0
 %define CONFIG_SHOWSPECTRUMPIC_FILTER 0
 %define CONFIG_SHOWVOLUME_FILTER 0
 %define CONFIG_SHOWWAVES_FILTER 0
 %define CONFIG_SHOWWAVESPIC_FILTER 0
 %define CONFIG_SPECTRUMSYNTH_FILTER 0
 %define CONFIG_AMOVIE_FILTER 0
 %define CONFIG_MOVIE_FILTER 0
+%define CONFIG_H263_CUVID_HWACCEL 0
 %define CONFIG_H263_VAAPI_HWACCEL 0
 %define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_H264_CUVID_HWACCEL 0
 %define CONFIG_H264_D3D11VA_HWACCEL 0
 %define CONFIG_H264_DXVA2_HWACCEL 0
+%define CONFIG_H264_MEDIACODEC_HWACCEL 0
 %define CONFIG_H264_MMAL_HWACCEL 0
 %define CONFIG_H264_QSV_HWACCEL 0
 %define CONFIG_H264_VAAPI_HWACCEL 0
 %define CONFIG_H264_VDA_HWACCEL 0
 %define CONFIG_H264_VDA_OLD_HWACCEL 0
 %define CONFIG_H264_VDPAU_HWACCEL 0
 %define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_HEVC_CUVID_HWACCEL 0
 %define CONFIG_HEVC_D3D11VA_HWACCEL 0
 %define CONFIG_HEVC_DXVA2_HWACCEL 0
+%define CONFIG_HEVC_MEDIACODEC_HWACCEL 0
 %define CONFIG_HEVC_QSV_HWACCEL 0
 %define CONFIG_HEVC_VAAPI_HWACCEL 0
 %define CONFIG_HEVC_VDPAU_HWACCEL 0
+%define CONFIG_MJPEG_CUVID_HWACCEL 0
+%define CONFIG_MPEG1_CUVID_HWACCEL 0
 %define CONFIG_MPEG1_XVMC_HWACCEL 0
 %define CONFIG_MPEG1_VDPAU_HWACCEL 0
 %define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
+%define CONFIG_MPEG2_CUVID_HWACCEL 0
 %define CONFIG_MPEG2_XVMC_HWACCEL 0
 %define CONFIG_MPEG2_D3D11VA_HWACCEL 0
 %define CONFIG_MPEG2_DXVA2_HWACCEL 0
 %define CONFIG_MPEG2_MMAL_HWACCEL 0
 %define CONFIG_MPEG2_QSV_HWACCEL 0
 %define CONFIG_MPEG2_VAAPI_HWACCEL 0
 %define CONFIG_MPEG2_VDPAU_HWACCEL 0
 %define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
+%define CONFIG_MPEG4_CUVID_HWACCEL 0
+%define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0
 %define CONFIG_MPEG4_MMAL_HWACCEL 0
 %define CONFIG_MPEG4_VAAPI_HWACCEL 0
 %define CONFIG_MPEG4_VDPAU_HWACCEL 0
 %define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_VC1_CUVID_HWACCEL 0
 %define CONFIG_VC1_D3D11VA_HWACCEL 0
 %define CONFIG_VC1_DXVA2_HWACCEL 0
 %define CONFIG_VC1_VAAPI_HWACCEL 0
 %define CONFIG_VC1_VDPAU_HWACCEL 0
 %define CONFIG_VC1_MMAL_HWACCEL 0
 %define CONFIG_VC1_QSV_HWACCEL 0
 %define CONFIG_VP8_CUVID_HWACCEL 0
+%define CONFIG_VP8_MEDIACODEC_HWACCEL 0
 %define CONFIG_VP9_CUVID_HWACCEL 0
 %define CONFIG_VP9_D3D11VA_HWACCEL 0
 %define CONFIG_VP9_DXVA2_HWACCEL 0
+%define CONFIG_VP9_MEDIACODEC_HWACCEL 0
 %define CONFIG_VP9_VAAPI_HWACCEL 0
 %define CONFIG_WMV3_D3D11VA_HWACCEL 0
 %define CONFIG_WMV3_DXVA2_HWACCEL 0
 %define CONFIG_WMV3_VAAPI_HWACCEL 0
 %define CONFIG_WMV3_VDPAU_HWACCEL 0
 %define CONFIG_ALSA_INDEV 0
 %define CONFIG_AVFOUNDATION_INDEV 0
 %define CONFIG_BKTR_INDEV 0
@@ -1939,16 +1984,17 @@
 %define CONFIG_DIRAC_MUXER 0
 %define CONFIG_DNXHD_MUXER 0
 %define CONFIG_DTS_MUXER 0
 %define CONFIG_DV_MUXER 0
 %define CONFIG_EAC3_MUXER 0
 %define CONFIG_F4V_MUXER 0
 %define CONFIG_FFM_MUXER 0
 %define CONFIG_FFMETADATA_MUXER 0
+%define CONFIG_FIFO_MUXER 0
 %define CONFIG_FILMSTRIP_MUXER 0
 %define CONFIG_FLAC_MUXER 0
 %define CONFIG_FLV_MUXER 0
 %define CONFIG_FRAMECRC_MUXER 0
 %define CONFIG_FRAMEHASH_MUXER 0
 %define CONFIG_FRAMEMD5_MUXER 0
 %define CONFIG_G722_MUXER 0
 %define CONFIG_G723_1_MUXER 0
@@ -1996,16 +2042,17 @@
 %define CONFIG_MPJPEG_MUXER 0
 %define CONFIG_MXF_MUXER 0
 %define CONFIG_MXF_D10_MUXER 0
 %define CONFIG_MXF_OPATOM_MUXER 0
 %define CONFIG_NULL_MUXER 0
 %define CONFIG_NUT_MUXER 0
 %define CONFIG_OGA_MUXER 0
 %define CONFIG_OGG_MUXER 0
+%define CONFIG_OGV_MUXER 0
 %define CONFIG_OMA_MUXER 0
 %define CONFIG_OPUS_MUXER 0
 %define CONFIG_PCM_ALAW_MUXER 0
 %define CONFIG_PCM_MULAW_MUXER 0
 %define CONFIG_PCM_F64BE_MUXER 0
 %define CONFIG_PCM_F64LE_MUXER 0
 %define CONFIG_PCM_F32BE_MUXER 0
 %define CONFIG_PCM_F32LE_MUXER 0
@@ -2042,16 +2089,17 @@
 %define CONFIG_SPDIF_MUXER 0
 %define CONFIG_SRT_MUXER 0
 %define CONFIG_SWF_MUXER 0
 %define CONFIG_TEE_MUXER 0
 %define CONFIG_TG2_MUXER 0
 %define CONFIG_TGP_MUXER 0
 %define CONFIG_MKVTIMESTAMP_V2_MUXER 0
 %define CONFIG_TRUEHD_MUXER 0
+%define CONFIG_TTA_MUXER 0
 %define CONFIG_UNCODEDFRAMECRC_MUXER 0
 %define CONFIG_VC1_MUXER 0
 %define CONFIG_VC1T_MUXER 0
 %define CONFIG_VOC_MUXER 0
 %define CONFIG_W64_MUXER 0
 %define CONFIG_WAV_MUXER 0
 %define CONFIG_WEBM_MUXER 0
 %define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
@@ -2065,17 +2113,17 @@
 %define CONFIG_LIBNUT_MUXER 0
 %define CONFIG_ALSA_OUTDEV 0
 %define CONFIG_CACA_OUTDEV 0
 %define CONFIG_DECKLINK_OUTDEV 0
 %define CONFIG_FBDEV_OUTDEV 0
 %define CONFIG_OPENGL_OUTDEV 0
 %define CONFIG_OSS_OUTDEV 0
 %define CONFIG_PULSE_OUTDEV 0
-%define CONFIG_SDL_OUTDEV 0
+%define CONFIG_SDL2_OUTDEV 0
 %define CONFIG_SNDIO_OUTDEV 0
 %define CONFIG_V4L2_OUTDEV 0
 %define CONFIG_XV_OUTDEV 0
 %define CONFIG_AAC_PARSER 0
 %define CONFIG_AAC_LATM_PARSER 0
 %define CONFIG_AC3_PARSER 0
 %define CONFIG_ADX_PARSER 0
 %define CONFIG_BMP_PARSER 0
@@ -2137,16 +2185,17 @@
 %define CONFIG_RTMPS_PROTOCOL 0
 %define CONFIG_RTMPT_PROTOCOL 0
 %define CONFIG_RTMPTE_PROTOCOL 0
 %define CONFIG_RTMPTS_PROTOCOL 0
 %define CONFIG_RTP_PROTOCOL 0
 %define CONFIG_SCTP_PROTOCOL 0
 %define CONFIG_SRTP_PROTOCOL 0
 %define CONFIG_SUBFILE_PROTOCOL 0
+%define CONFIG_TEE_PROTOCOL 0
 %define CONFIG_TCP_PROTOCOL 0
 %define CONFIG_TLS_GNUTLS_PROTOCOL 0
 %define CONFIG_TLS_SCHANNEL_PROTOCOL 0
 %define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0
 %define CONFIG_TLS_OPENSSL_PROTOCOL 0
 %define CONFIG_UDP_PROTOCOL 0
 %define CONFIG_UDPLITE_PROTOCOL 0
 %define CONFIG_UNIX_PROTOCOL 0
--- a/media/ffvpx/config_win32.h
+++ b/media/ffvpx/config_win32.h
@@ -192,17 +192,16 @@
 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0
 #define HAVE_CABS 0
 #define HAVE_CEXP 0
 #define HAVE_INLINE_ASM 0
 #define HAVE_SYMVER 0
 #define HAVE_YASM 1
 #define HAVE_BIGENDIAN 0
 #define HAVE_FAST_UNALIGNED 1
-#define HAVE_INCOMPATIBLE_LIBAV_ABI 0
 #define HAVE_ALSA_ASOUNDLIB_H 0
 #define HAVE_ALTIVEC_H 0
 #define HAVE_ARPA_INET_H 0
 #define HAVE_ASM_TYPES_H 0
 #define HAVE_CDIO_PARANOIA_H 0
 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0
 #define HAVE_DISPATCH_DISPATCH_H 0
 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0
@@ -295,16 +294,17 @@
 #define HAVE_GETTIMEOFDAY 0
 #define HAVE_GLOB 0
 #define HAVE_GLXGETPROCADDRESS 0
 #define HAVE_GMTIME_R 0
 #define HAVE_INET_ATON 0
 #define HAVE_ISATTY 1
 #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
 #define HAVE_KBHIT 1
+#define HAVE_LOADLIBRARY 0
 #define HAVE_LSTAT 0
 #define HAVE_LZO1X_999_COMPRESS 0
 #define HAVE_MACH_ABSOLUTE_TIME 0
 #define HAVE_MAPVIEWOFFILE 1
 #define HAVE_MKSTEMP 0
 #define HAVE_MMAP 0
 #define HAVE_MPROTECT 0
 #define HAVE_NANOSLEEP 0
@@ -368,17 +368,17 @@
 #define HAVE_LIBC_MSVCRT 1
 #define HAVE_LIBDC1394_1 0
 #define HAVE_LIBDC1394_2 0
 #define HAVE_MAKEINFO 1
 #define HAVE_MAKEINFO_HTML 0
 #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
 #define HAVE_PERL 1
 #define HAVE_POD2MAN 1
-#define HAVE_SDL 0
+#define HAVE_SDL2 0
 #define HAVE_SECTION_DATA_REL_RO 0
 #define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_DRM 0
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
 #define HAVE_WINRT 0
 #define HAVE_XLIB 0
@@ -393,24 +393,25 @@
 #define CONFIG_DEMUXERS 0
 #define CONFIG_MUXERS 0
 #define CONFIG_PROTOCOLS 0
 #define CONFIG_DOC 0
 #define CONFIG_HTMLPAGES 0
 #define CONFIG_MANPAGES 1
 #define CONFIG_PODPAGES 1
 #define CONFIG_TXTPAGES 1
+#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_AVIO_READING_EXAMPLE 1
-#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_DECODING_ENCODING_EXAMPLE 0
 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0
 #define CONFIG_EXTRACT_MVS_EXAMPLE 0
 #define CONFIG_FILTER_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0
+#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0
 #define CONFIG_METADATA_EXAMPLE 0
 #define CONFIG_MUXING_EXAMPLE 0
 #define CONFIG_QSVDEC_EXAMPLE 0
 #define CONFIG_REMUXING_EXAMPLE 0
 #define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
 #define CONFIG_SCALING_VIDEO_EXAMPLE 0
 #define CONFIG_TRANSCODE_AAC_EXAMPLE 0
 #define CONFIG_TRANSCODING_EXAMPLE 0
@@ -429,17 +430,16 @@
 #define CONFIG_LIBASS 0
 #define CONFIG_LIBBLURAY 0
 #define CONFIG_LIBBS2B 0
 #define CONFIG_LIBCACA 0
 #define CONFIG_LIBCDIO 0
 #define CONFIG_LIBCELT 0
 #define CONFIG_LIBDC1394 0
 #define CONFIG_LIBEBUR128 0
-#define CONFIG_LIBFAAC 0
 #define CONFIG_LIBFDK_AAC 0
 #define CONFIG_LIBFLITE 0
 #define CONFIG_LIBFONTCONFIG 0
 #define CONFIG_LIBFREETYPE 0
 #define CONFIG_LIBFRIBIDI 0
 #define CONFIG_LIBGME 0
 #define CONFIG_LIBGSM 0
 #define CONFIG_LIBIEC61883 0
@@ -448,16 +448,17 @@
 #define CONFIG_LIBMODPLUG 0
 #define CONFIG_LIBMP3LAME 0
 #define CONFIG_LIBNUT 0
 #define CONFIG_LIBOPENCORE_AMRNB 0
 #define CONFIG_LIBOPENCORE_AMRWB 0
 #define CONFIG_LIBOPENCV 0
 #define CONFIG_LIBOPENH264 0
 #define CONFIG_LIBOPENJPEG 0
+#define CONFIG_LIBOPENMPT 0
 #define CONFIG_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
 #define CONFIG_LIBRTMP 0
 #define CONFIG_LIBRUBBERBAND 0
 #define CONFIG_LIBSCHROEDINGER 0
 #define CONFIG_LIBSHINE 0
 #define CONFIG_LIBSMBCLIENT 0
 #define CONFIG_LIBSNAPPY 0
@@ -489,16 +490,17 @@
 #define CONFIG_MEDIACODEC 0
 #define CONFIG_NETCDF 0
 #define CONFIG_OPENAL 0
 #define CONFIG_OPENCL 0
 #define CONFIG_OPENGL 0
 #define CONFIG_OPENSSL 0
 #define CONFIG_SCHANNEL 1
 #define CONFIG_SDL 0
+#define CONFIG_SDL2 0
 #define CONFIG_SECURETRANSPORT 0
 #define CONFIG_VIDEOTOOLBOX 0
 #define CONFIG_X11GRAB 0
 #define CONFIG_XLIB 0
 #define CONFIG_ZLIB 0
 #define CONFIG_AUDIOTOOLBOX 0
 #define CONFIG_CUDA 0
 #define CONFIG_CUVID 0
@@ -548,17 +550,16 @@
 #define CONFIG_FFT 0
 #define CONFIG_LSP 0
 #define CONFIG_LZO 0
 #define CONFIG_MDCT 0
 #define CONFIG_PIXELUTILS 0
 #define CONFIG_NETWORK 0
 #define CONFIG_RDFT 0
 #define CONFIG_FONTCONFIG 0
-#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0
 #define CONFIG_MEMALIGN_HACK 0
 #define CONFIG_MEMORY_POISONING 0
 #define CONFIG_NEON_CLOBBER_TEST 0
 #define CONFIG_PIC 0
 #define CONFIG_POD2MAN 1
 #define CONFIG_RAISE_MAJOR 0
 #define CONFIG_THUMB 0
 #define CONFIG_VALGRIND_BACKTRACE 0
@@ -992,16 +993,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S24BE_DECODER 0
 #define CONFIG_PCM_S24DAUD_DECODER 0
 #define CONFIG_PCM_S24LE_DECODER 0
 #define CONFIG_PCM_S24LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S32BE_DECODER 0
 #define CONFIG_PCM_S32LE_DECODER 0
 #define CONFIG_PCM_S32LE_PLANAR_DECODER 0
+#define CONFIG_PCM_S64BE_DECODER 0
+#define CONFIG_PCM_S64LE_DECODER 0
 #define CONFIG_PCM_U8_DECODER 0
 #define CONFIG_PCM_U16BE_DECODER 0
 #define CONFIG_PCM_U16LE_DECODER 0
 #define CONFIG_PCM_U24BE_DECODER 0
 #define CONFIG_PCM_U24LE_DECODER 0
 #define CONFIG_PCM_U32BE_DECODER 0
 #define CONFIG_PCM_U32LE_DECODER 0
 #define CONFIG_PCM_ZORK_DECODER 0
@@ -1100,21 +1103,31 @@
 #define CONFIG_LIBSPEEX_DECODER 0
 #define CONFIG_LIBVORBIS_DECODER 0
 #define CONFIG_LIBVPX_VP8_DECODER 0
 #define CONFIG_LIBVPX_VP9_DECODER 0
 #define CONFIG_LIBZVBI_TELETEXT_DECODER 0
 #define CONFIG_BINTEXT_DECODER 0
 #define CONFIG_XBIN_DECODER 0
 #define CONFIG_IDF_DECODER 0
+#define CONFIG_LIBOPENH264_DECODER 0
+#define CONFIG_H263_CUVID_DECODER 0
 #define CONFIG_H264_CUVID_DECODER 0
 #define CONFIG_HEVC_CUVID_DECODER 0
+#define CONFIG_HEVC_MEDIACODEC_DECODER 0
+#define CONFIG_MJPEG_CUVID_DECODER 0
+#define CONFIG_MPEG1_CUVID_DECODER 0
+#define CONFIG_MPEG2_CUVID_DECODER 0
+#define CONFIG_MPEG4_CUVID_DECODER 0
+#define CONFIG_MPEG4_MEDIACODEC_DECODER 0
 #define CONFIG_VC1_CUVID_DECODER 0
 #define CONFIG_VP8_CUVID_DECODER 0
+#define CONFIG_VP8_MEDIACODEC_DECODER 0
 #define CONFIG_VP9_CUVID_DECODER 0
+#define CONFIG_VP9_MEDIACODEC_DECODER 0
 #define CONFIG_AA_DEMUXER 0
 #define CONFIG_AAC_DEMUXER 0
 #define CONFIG_AC3_DEMUXER 0
 #define CONFIG_ACM_DEMUXER 0
 #define CONFIG_ACT_DEMUXER 0
 #define CONFIG_ADF_DEMUXER 0
 #define CONFIG_ADP_DEMUXER 0
 #define CONFIG_ADS_DEMUXER 0
@@ -1374,16 +1387,17 @@
 #define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
 #define CONFIG_LIBGME_DEMUXER 0
 #define CONFIG_LIBMODPLUG_DEMUXER 0
 #define CONFIG_LIBNUT_DEMUXER 0
+#define CONFIG_LIBOPENMPT_DEMUXER 0
 #define CONFIG_A64MULTI_ENCODER 0
 #define CONFIG_A64MULTI5_ENCODER 0
 #define CONFIG_ALIAS_PIX_ENCODER 0
 #define CONFIG_AMV_ENCODER 0
 #define CONFIG_APNG_ENCODER 0
 #define CONFIG_ASV1_ENCODER 0
 #define CONFIG_ASV2_ENCODER 0
 #define CONFIG_AVRP_ENCODER 0
@@ -1460,22 +1474,24 @@
 #define CONFIG_AAC_ENCODER 0
 #define CONFIG_AC3_ENCODER 0
 #define CONFIG_AC3_FIXED_ENCODER 0
 #define CONFIG_ALAC_ENCODER 0
 #define CONFIG_DCA_ENCODER 0
 #define CONFIG_EAC3_ENCODER 0
 #define CONFIG_FLAC_ENCODER 0
 #define CONFIG_G723_1_ENCODER 0
+#define CONFIG_MLP_ENCODER 0
 #define CONFIG_MP2_ENCODER 0
 #define CONFIG_MP2FIXED_ENCODER 0
 #define CONFIG_NELLYMOSER_ENCODER 0
 #define CONFIG_RA_144_ENCODER 0
 #define CONFIG_SONIC_ENCODER 0
 #define CONFIG_SONIC_LS_ENCODER 0
+#define CONFIG_TRUEHD_ENCODER 0
 #define CONFIG_TTA_ENCODER 0
 #define CONFIG_VORBIS_ENCODER 0
 #define CONFIG_WAVPACK_ENCODER 0
 #define CONFIG_WMAV1_ENCODER 0
 #define CONFIG_WMAV2_ENCODER 0
 #define CONFIG_PCM_ALAW_ENCODER 0
 #define CONFIG_PCM_F32BE_ENCODER 0
 #define CONFIG_PCM_F32LE_ENCODER 0
@@ -1490,16 +1506,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S24BE_ENCODER 0
 #define CONFIG_PCM_S24DAUD_ENCODER 0
 #define CONFIG_PCM_S24LE_ENCODER 0
 #define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S32BE_ENCODER 0
 #define CONFIG_PCM_S32LE_ENCODER 0
 #define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
+#define CONFIG_PCM_S64BE_ENCODER 0
+#define CONFIG_PCM_S64LE_ENCODER 0
 #define CONFIG_PCM_U8_ENCODER 0
 #define CONFIG_PCM_U16BE_ENCODER 0
 #define CONFIG_PCM_U16LE_ENCODER 0
 #define CONFIG_PCM_U24BE_ENCODER 0
 #define CONFIG_PCM_U24LE_ENCODER 0
 #define CONFIG_PCM_U32BE_ENCODER 0
 #define CONFIG_PCM_U32LE_ENCODER 0
 #define CONFIG_ROQ_DPCM_ENCODER 0
@@ -1521,17 +1539,16 @@
 #define CONFIG_TEXT_ENCODER 0
 #define CONFIG_WEBVTT_ENCODER 0
 #define CONFIG_XSUB_ENCODER 0
 #define CONFIG_AAC_AT_ENCODER 0
 #define CONFIG_ALAC_AT_ENCODER 0
 #define CONFIG_ILBC_AT_ENCODER 0
 #define CONFIG_PCM_ALAW_AT_ENCODER 0
 #define CONFIG_PCM_MULAW_AT_ENCODER 0
-#define CONFIG_LIBFAAC_ENCODER 0
 #define CONFIG_LIBFDK_AAC_ENCODER 0
 #define CONFIG_LIBGSM_ENCODER 0
 #define CONFIG_LIBGSM_MS_ENCODER 0
 #define CONFIG_LIBILBC_ENCODER 0
 #define CONFIG_LIBMP3LAME_ENCODER 0
 #define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
@@ -1566,16 +1583,17 @@
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_HEVC_VAAPI_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MJPEG_VAAPI_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ABENCH_FILTER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_FILTER 0
+#define CONFIG_ACRUSHER_FILTER 0
 #define CONFIG_ADELAY_FILTER 0
 #define CONFIG_AECHO_FILTER 0
 #define CONFIG_AEMPHASIS_FILTER 0
 #define CONFIG_AEVAL_FILTER 0
 #define CONFIG_AFADE_FILTER 0
 #define CONFIG_AFFTFILT_FILTER 0
 #define CONFIG_AFORMAT_FILTER 0
 #define CONFIG_AGATE_FILTER 0
@@ -1597,16 +1615,17 @@
 #define CONFIG_AREVERSE_FILTER 0
 #define CONFIG_ASELECT_FILTER 0
 #define CONFIG_ASENDCMD_FILTER 0
 #define CONFIG_ASETNSAMPLES_FILTER 0
 #define CONFIG_ASETPTS_FILTER 0
 #define CONFIG_ASETRATE_FILTER 0
 #define CONFIG_ASETTB_FILTER 0
 #define CONFIG_ASHOWINFO_FILTER 0
+#define CONFIG_ASIDEDATA_FILTER 0
 #define CONFIG_ASPLIT_FILTER 0
 #define CONFIG_ASTATS_FILTER 0
 #define CONFIG_ASTREAMSELECT_FILTER 0
 #define CONFIG_ASYNCTS_FILTER 0
 #define CONFIG_ATEMPO_FILTER 0
 #define CONFIG_ATRIM_FILTER 0
 #define CONFIG_AZMQ_FILTER 0
 #define CONFIG_BANDPASS_FILTER 0
@@ -1614,16 +1633,17 @@
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
 #define CONFIG_BS2B_FILTER 0
 #define CONFIG_CHANNELMAP_FILTER 0
 #define CONFIG_CHANNELSPLIT_FILTER 0
 #define CONFIG_CHORUS_FILTER 0
 #define CONFIG_COMPAND_FILTER 0
 #define CONFIG_COMPENSATIONDELAY_FILTER 0
+#define CONFIG_CRYSTALIZER_FILTER 0
 #define CONFIG_DCSHIFT_FILTER 0
 #define CONFIG_DYNAUDNORM_FILTER 0
 #define CONFIG_EARWAX_FILTER 0
 #define CONFIG_EBUR128_FILTER 0
 #define CONFIG_EQUALIZER_FILTER 0
 #define CONFIG_EXTRASTEREO_FILTER 0
 #define CONFIG_FIREQUALIZER_FILTER 0
 #define CONFIG_FLANGER_FILTER 0
@@ -1652,20 +1672,22 @@
 #define CONFIG_AEVALSRC_FILTER 0
 #define CONFIG_ANOISESRC_FILTER 0
 #define CONFIG_ANULLSRC_FILTER 0
 #define CONFIG_FLITE_FILTER 0
 #define CONFIG_SINE_FILTER 0
 #define CONFIG_ANULLSINK_FILTER 0
 #define CONFIG_ALPHAEXTRACT_FILTER 0
 #define CONFIG_ALPHAMERGE_FILTER 0
+#define CONFIG_ASS_FILTER 0
 #define CONFIG_ATADENOISE_FILTER 0
-#define CONFIG_ASS_FILTER 0
+#define CONFIG_AVGBLUR_FILTER 0
+#define CONFIG_BBOX_FILTER 0
 #define CONFIG_BENCH_FILTER 0
-#define CONFIG_BBOX_FILTER 0
+#define CONFIG_BITPLANENOISE_FILTER 0
 #define CONFIG_BLACKDETECT_FILTER 0
 #define CONFIG_BLACKFRAME_FILTER 0
 #define CONFIG_BLEND_FILTER 0
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_BWDIF_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CIESCOPE_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
@@ -1711,47 +1733,54 @@
 #define CONFIG_FIND_RECT_FILTER 0
 #define CONFIG_FORMAT_FILTER 0
 #define CONFIG_FPS_FILTER 0
 #define CONFIG_FRAMEPACK_FILTER 0
 #define CONFIG_FRAMERATE_FILTER 0
 #define CONFIG_FRAMESTEP_FILTER 0
 #define CONFIG_FREI0R_FILTER 0
 #define CONFIG_FSPP_FILTER 0
+#define CONFIG_GBLUR_FILTER 0
 #define CONFIG_GEQ_FILTER 0
 #define CONFIG_GRADFUN_FILTER 0
 #define CONFIG_HALDCLUT_FILTER 0
 #define CONFIG_HFLIP_FILTER 0
 #define CONFIG_HISTEQ_FILTER 0
 #define CONFIG_HISTOGRAM_FILTER 0
 #define CONFIG_HQDN3D_FILTER 0
 #define CONFIG_HQX_FILTER 0
+#define CONFIG_HSTACK_FILTER 0
+#define CONFIG_HUE_FILTER 0
 #define CONFIG_HWDOWNLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_CUDA_FILTER 0
-#define CONFIG_HSTACK_FILTER 0
-#define CONFIG_HUE_FILTER 0
+#define CONFIG_HYSTERESIS_FILTER 0
 #define CONFIG_IDET_FILTER 0
 #define CONFIG_IL_FILTER 0
 #define CONFIG_INFLATE_FILTER 0
 #define CONFIG_INTERLACE_FILTER 0
 #define CONFIG_INTERLEAVE_FILTER 0
 #define CONFIG_KERNDEINT_FILTER 0
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LOOP_FILTER 0
+#define CONFIG_LUT_FILTER 0
+#define CONFIG_LUT2_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
-#define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
+#define CONFIG_MASKEDCLAMP_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_MESTIMATE_FILTER 0
 #define CONFIG_METADATA_FILTER 0
+#define CONFIG_MINTERPOLATE_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_FILTER 0
+#define CONFIG_NLMEANS_FILTER 0
 #define CONFIG_NNEDI_FILTER 0
 #define CONFIG_NOFORMAT_FILTER 0
 #define CONFIG_NOISE_FILTER 0
 #define CONFIG_NULL_FILTER 0
 #define CONFIG_OCR_FILTER 0
 #define CONFIG_OCV_FILTER 0
 #define CONFIG_OVERLAY_FILTER 0
 #define CONFIG_OWDENOISE_FILTER 0
@@ -1759,48 +1788,51 @@
 #define CONFIG_PALETTEGEN_FILTER 0
 #define CONFIG_PALETTEUSE_FILTER 0
 #define CONFIG_PERMS_FILTER 0
 #define CONFIG_PERSPECTIVE_FILTER 0
 #define CONFIG_PHASE_FILTER 0
 #define CONFIG_PIXDESCTEST_FILTER 0
 #define CONFIG_PP_FILTER 0
 #define CONFIG_PP7_FILTER 0
+#define CONFIG_PREWITT_FILTER 0
 #define CONFIG_PSNR_FILTER 0
 #define CONFIG_PULLUP_FILTER 0
 #define CONFIG_QP_FILTER 0
 #define CONFIG_RANDOM_FILTER 0
 #define CONFIG_READVITC_FILTER 0
 #define CONFIG_REALTIME_FILTER 0
 #define CONFIG_REMAP_FILTER 0
 #define CONFIG_REMOVEGRAIN_FILTER 0
 #define CONFIG_REMOVELOGO_FILTER 0
 #define CONFIG_REPEATFIELDS_FILTER 0
 #define CONFIG_REVERSE_FILTER 0
 #define CONFIG_ROTATE_FILTER 0
 #define CONFIG_SAB_FILTER 0
 #define CONFIG_SCALE_FILTER 0
-#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SCALE_NPP_FILTER 0
 #define CONFIG_SCALE_VAAPI_FILTER 0
+#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SELECT_FILTER 0
 #define CONFIG_SELECTIVECOLOR_FILTER 0
 #define CONFIG_SENDCMD_FILTER 0
 #define CONFIG_SEPARATEFIELDS_FILTER 0
 #define CONFIG_SETDAR_FILTER 0
 #define CONFIG_SETFIELD_FILTER 0
 #define CONFIG_SETPTS_FILTER 0
 #define CONFIG_SETSAR_FILTER 0
 #define CONFIG_SETTB_FILTER 0
 #define CONFIG_SHOWINFO_FILTER 0
 #define CONFIG_SHOWPALETTE_FILTER 0
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
+#define CONFIG_SIDEDATA_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_FILTER 0
+#define CONFIG_SOBEL_FILTER 0
 #define CONFIG_SPLIT_FILTER 0
 #define CONFIG_SPP_FILTER 0
 #define CONFIG_SSIM_FILTER 0
 #define CONFIG_STEREO3D_FILTER 0
 #define CONFIG_STREAMSELECT_FILTER 0
 #define CONFIG_SUBTITLES_FILTER 0
 #define CONFIG_SUPER2XSAI_FILTER 0
 #define CONFIG_SWAPRECT_FILTER 0
@@ -1809,24 +1841,26 @@
 #define CONFIG_TELECINE_FILTER 0
 #define CONFIG_THUMBNAIL_FILTER 0
 #define CONFIG_TILE_FILTER 0
 #define CONFIG_TINTERLACE_FILTER 0
 #define CONFIG_TRANSPOSE_FILTER 0
 #define CONFIG_TRIM_FILTER 0
 #define CONFIG_UNSHARP_FILTER 0
 #define CONFIG_USPP_FILTER 0
+#define CONFIG_VAGUEDENOISER_FILTER 0
 #define CONFIG_VECTORSCOPE_FILTER 0
 #define CONFIG_VFLIP_FILTER 0
 #define CONFIG_VIDSTABDETECT_FILTER 0
 #define CONFIG_VIDSTABTRANSFORM_FILTER 0
 #define CONFIG_VIGNETTE_FILTER 0
 #define CONFIG_VSTACK_FILTER 0
 #define CONFIG_W3FDIF_FILTER 0
 #define CONFIG_WAVEFORM_FILTER 0
+#define CONFIG_WEAVE_FILTER 0
 #define CONFIG_XBR_FILTER 0
 #define CONFIG_YADIF_FILTER 0
 #define CONFIG_ZMQ_FILTER 0
 #define CONFIG_ZOOMPAN_FILTER 0
 #define CONFIG_ZSCALE_FILTER 0
 #define CONFIG_ALLRGB_FILTER 0
 #define CONFIG_ALLYUV_FILTER 0
 #define CONFIG_CELLAUTO_FILTER 0
@@ -1838,76 +1872,87 @@
 #define CONFIG_MANDELBROT_FILTER 0
 #define CONFIG_MPTESTSRC_FILTER 0
 #define CONFIG_NULLSRC_FILTER 0
 #define CONFIG_RGBTESTSRC_FILTER 0
 #define CONFIG_SMPTEBARS_FILTER 0
 #define CONFIG_SMPTEHDBARS_FILTER 0
 #define CONFIG_TESTSRC_FILTER 0
 #define CONFIG_TESTSRC2_FILTER 0
+#define CONFIG_YUVTESTSRC_FILTER 0
 #define CONFIG_NULLSINK_FILTER 0
 #define CONFIG_ADRAWGRAPH_FILTER 0
 #define CONFIG_AHISTOGRAM_FILTER 0
 #define CONFIG_APHASEMETER_FILTER 0
 #define CONFIG_AVECTORSCOPE_FILTER 0
 #define CONFIG_CONCAT_FILTER 0
 #define CONFIG_SHOWCQT_FILTER 0
 #define CONFIG_SHOWFREQS_FILTER 0
 #define CONFIG_SHOWSPECTRUM_FILTER 0
 #define CONFIG_SHOWSPECTRUMPIC_FILTER 0
 #define CONFIG_SHOWVOLUME_FILTER 0
 #define CONFIG_SHOWWAVES_FILTER 0
 #define CONFIG_SHOWWAVESPIC_FILTER 0
 #define CONFIG_SPECTRUMSYNTH_FILTER 0
 #define CONFIG_AMOVIE_FILTER 0
 #define CONFIG_MOVIE_FILTER 0
+#define CONFIG_H263_CUVID_HWACCEL 0
 #define CONFIG_H263_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_CUVID_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
+#define CONFIG_H264_MEDIACODEC_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
 #define CONFIG_H264_VAAPI_HWACCEL 0
 #define CONFIG_H264_VDA_HWACCEL 0
 #define CONFIG_H264_VDA_OLD_HWACCEL 0
 #define CONFIG_H264_VDPAU_HWACCEL 0
 #define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_HEVC_CUVID_HWACCEL 0
 #define CONFIG_HEVC_D3D11VA_HWACCEL 0
 #define CONFIG_HEVC_DXVA2_HWACCEL 0
+#define CONFIG_HEVC_MEDIACODEC_HWACCEL 0
 #define CONFIG_HEVC_QSV_HWACCEL 0
 #define CONFIG_HEVC_VAAPI_HWACCEL 0
 #define CONFIG_HEVC_VDPAU_HWACCEL 0
+#define CONFIG_MJPEG_CUVID_HWACCEL 0
+#define CONFIG_MPEG1_CUVID_HWACCEL 0
 #define CONFIG_MPEG1_XVMC_HWACCEL 0
 #define CONFIG_MPEG1_VDPAU_HWACCEL 0
 #define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG2_CUVID_HWACCEL 0
 #define CONFIG_MPEG2_XVMC_HWACCEL 0
 #define CONFIG_MPEG2_D3D11VA_HWACCEL 0
 #define CONFIG_MPEG2_DXVA2_HWACCEL 0
 #define CONFIG_MPEG2_MMAL_HWACCEL 0
 #define CONFIG_MPEG2_QSV_HWACCEL 0
 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
 #define CONFIG_MPEG2_VDPAU_HWACCEL 0
 #define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG4_CUVID_HWACCEL 0
+#define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0
 #define CONFIG_MPEG4_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_VC1_CUVID_HWACCEL 0
 #define CONFIG_VC1_D3D11VA_HWACCEL 0
 #define CONFIG_VC1_DXVA2_HWACCEL 0
 #define CONFIG_VC1_VAAPI_HWACCEL 0
 #define CONFIG_VC1_VDPAU_HWACCEL 0
 #define CONFIG_VC1_MMAL_HWACCEL 0
 #define CONFIG_VC1_QSV_HWACCEL 0
 #define CONFIG_VP8_CUVID_HWACCEL 0
+#define CONFIG_VP8_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_CUVID_HWACCEL 0
 #define CONFIG_VP9_D3D11VA_HWACCEL 0
 #define CONFIG_VP9_DXVA2_HWACCEL 0
+#define CONFIG_VP9_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_D3D11VA_HWACCEL 0
 #define CONFIG_WMV3_DXVA2_HWACCEL 0
 #define CONFIG_WMV3_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_VDPAU_HWACCEL 0
 #define CONFIG_ALSA_INDEV 0
 #define CONFIG_AVFOUNDATION_INDEV 0
 #define CONFIG_BKTR_INDEV 0
@@ -1954,16 +1999,17 @@
 #define CONFIG_DIRAC_MUXER 0
 #define CONFIG_DNXHD_MUXER 0
 #define CONFIG_DTS_MUXER 0
 #define CONFIG_DV_MUXER 0
 #define CONFIG_EAC3_MUXER 0
 #define CONFIG_F4V_MUXER 0
 #define CONFIG_FFM_MUXER 0
 #define CONFIG_FFMETADATA_MUXER 0
+#define CONFIG_FIFO_MUXER 0
 #define CONFIG_FILMSTRIP_MUXER 0
 #define CONFIG_FLAC_MUXER 0
 #define CONFIG_FLV_MUXER 0
 #define CONFIG_FRAMECRC_MUXER 0
 #define CONFIG_FRAMEHASH_MUXER 0
 #define CONFIG_FRAMEMD5_MUXER 0
 #define CONFIG_G722_MUXER 0
 #define CONFIG_G723_1_MUXER 0
@@ -2011,16 +2057,17 @@
 #define CONFIG_MPJPEG_MUXER 0
 #define CONFIG_MXF_MUXER 0
 #define CONFIG_MXF_D10_MUXER 0
 #define CONFIG_MXF_OPATOM_MUXER 0
 #define CONFIG_NULL_MUXER 0
 #define CONFIG_NUT_MUXER 0
 #define CONFIG_OGA_MUXER 0
 #define CONFIG_OGG_MUXER 0
+#define CONFIG_OGV_MUXER 0
 #define CONFIG_OMA_MUXER 0
 #define CONFIG_OPUS_MUXER 0
 #define CONFIG_PCM_ALAW_MUXER 0
 #define CONFIG_PCM_MULAW_MUXER 0
 #define CONFIG_PCM_F64BE_MUXER 0
 #define CONFIG_PCM_F64LE_MUXER 0
 #define CONFIG_PCM_F32BE_MUXER 0
 #define CONFIG_PCM_F32LE_MUXER 0
@@ -2057,16 +2104,17 @@
 #define CONFIG_SPDIF_MUXER 0
 #define CONFIG_SRT_MUXER 0
 #define CONFIG_SWF_MUXER 0
 #define CONFIG_TEE_MUXER 0
 #define CONFIG_TG2_MUXER 0
 #define CONFIG_TGP_MUXER 0
 #define CONFIG_MKVTIMESTAMP_V2_MUXER 0
 #define CONFIG_TRUEHD_MUXER 0
+#define CONFIG_TTA_MUXER 0
 #define CONFIG_UNCODEDFRAMECRC_MUXER 0
 #define CONFIG_VC1_MUXER 0
 #define CONFIG_VC1T_MUXER 0
 #define CONFIG_VOC_MUXER 0
 #define CONFIG_W64_MUXER 0
 #define CONFIG_WAV_MUXER 0
 #define CONFIG_WEBM_MUXER 0
 #define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
@@ -2080,17 +2128,17 @@
 #define CONFIG_LIBNUT_MUXER 0
 #define CONFIG_ALSA_OUTDEV 0
 #define CONFIG_CACA_OUTDEV 0
 #define CONFIG_DECKLINK_OUTDEV 0
 #define CONFIG_FBDEV_OUTDEV 0
 #define CONFIG_OPENGL_OUTDEV 0
 #define CONFIG_OSS_OUTDEV 0
 #define CONFIG_PULSE_OUTDEV 0
-#define CONFIG_SDL_OUTDEV 0
+#define CONFIG_SDL2_OUTDEV 0
 #define CONFIG_SNDIO_OUTDEV 0
 #define CONFIG_V4L2_OUTDEV 0
 #define CONFIG_XV_OUTDEV 0
 #define CONFIG_AAC_PARSER 0
 #define CONFIG_AAC_LATM_PARSER 0
 #define CONFIG_AC3_PARSER 0
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
@@ -2152,16 +2200,17 @@
 #define CONFIG_RTMPS_PROTOCOL 0
 #define CONFIG_RTMPT_PROTOCOL 0
 #define CONFIG_RTMPTE_PROTOCOL 0
 #define CONFIG_RTMPTS_PROTOCOL 0
 #define CONFIG_RTP_PROTOCOL 0
 #define CONFIG_SCTP_PROTOCOL 0
 #define CONFIG_SRTP_PROTOCOL 0
 #define CONFIG_SUBFILE_PROTOCOL 0
+#define CONFIG_TEE_PROTOCOL 0
 #define CONFIG_TCP_PROTOCOL 0
 #define CONFIG_TLS_GNUTLS_PROTOCOL 0
 #define CONFIG_TLS_SCHANNEL_PROTOCOL 0
 #define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0
 #define CONFIG_TLS_OPENSSL_PROTOCOL 0
 #define CONFIG_UDP_PROTOCOL 0
 #define CONFIG_UDPLITE_PROTOCOL 0
 #define CONFIG_UNIX_PROTOCOL 0
--- a/media/ffvpx/config_win64.asm
+++ b/media/ffvpx/config_win64.asm
@@ -176,17 +176,16 @@
 %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0
 %define HAVE_CABS 0
 %define HAVE_CEXP 0
 %define HAVE_INLINE_ASM 0
 %define HAVE_SYMVER 0
 %define HAVE_YASM 1
 %define HAVE_BIGENDIAN 0
 %define HAVE_FAST_UNALIGNED 1
-%define HAVE_INCOMPATIBLE_LIBAV_ABI 0
 %define HAVE_ALSA_ASOUNDLIB_H 0
 %define HAVE_ALTIVEC_H 0
 %define HAVE_ARPA_INET_H 0
 %define HAVE_ASM_TYPES_H 0
 %define HAVE_CDIO_PARANOIA_H 0
 %define HAVE_CDIO_PARANOIA_PARANOIA_H 0
 %define HAVE_DISPATCH_DISPATCH_H 0
 %define HAVE_DEV_BKTR_IOCTL_BT848_H 0
@@ -279,16 +278,17 @@
 %define HAVE_GETTIMEOFDAY 0
 %define HAVE_GLOB 0
 %define HAVE_GLXGETPROCADDRESS 0
 %define HAVE_GMTIME_R 0
 %define HAVE_INET_ATON 0
 %define HAVE_ISATTY 1
 %define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
 %define HAVE_KBHIT 1
+%define HAVE_LOADLIBRARY 0
 %define HAVE_LSTAT 0
 %define HAVE_LZO1X_999_COMPRESS 0
 %define HAVE_MACH_ABSOLUTE_TIME 0
 %define HAVE_MAPVIEWOFFILE 1
 %define HAVE_MKSTEMP 0
 %define HAVE_MMAP 0
 %define HAVE_MPROTECT 0
 %define HAVE_NANOSLEEP 0
@@ -353,17 +353,17 @@
 %define HAVE_LIBC_MSVCRT 1
 %define HAVE_LIBDC1394_1 0
 %define HAVE_LIBDC1394_2 0
 %define HAVE_MAKEINFO 1
 %define HAVE_MAKEINFO_HTML 0
 %define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
 %define HAVE_PERL 1
 %define HAVE_POD2MAN 1
-%define HAVE_SDL 0
+%define HAVE_SDL2 0
 %define HAVE_SECTION_DATA_REL_RO 0
 %define HAVE_TEXI2HTML 0
 %define HAVE_THREADS 1
 %define HAVE_VAAPI_DRM 0
 %define HAVE_VAAPI_X11 0
 %define HAVE_VDPAU_X11 0
 %define HAVE_WINRT 0
 %define HAVE_XLIB 0
@@ -378,24 +378,25 @@
 %define CONFIG_DEMUXERS 0
 %define CONFIG_MUXERS 0
 %define CONFIG_PROTOCOLS 0
 %define CONFIG_DOC 0
 %define CONFIG_HTMLPAGES 0
 %define CONFIG_MANPAGES 1
 %define CONFIG_PODPAGES 1
 %define CONFIG_TXTPAGES 1
+%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 %define CONFIG_AVIO_READING_EXAMPLE 1
-%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 %define CONFIG_DECODING_ENCODING_EXAMPLE 0
 %define CONFIG_DEMUXING_DECODING_EXAMPLE 0
 %define CONFIG_EXTRACT_MVS_EXAMPLE 0
 %define CONFIG_FILTER_AUDIO_EXAMPLE 0
 %define CONFIG_FILTERING_AUDIO_EXAMPLE 0
 %define CONFIG_FILTERING_VIDEO_EXAMPLE 0
+%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0
 %define CONFIG_METADATA_EXAMPLE 0
 %define CONFIG_MUXING_EXAMPLE 0
 %define CONFIG_QSVDEC_EXAMPLE 0
 %define CONFIG_REMUXING_EXAMPLE 0
 %define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
 %define CONFIG_SCALING_VIDEO_EXAMPLE 0
 %define CONFIG_TRANSCODE_AAC_EXAMPLE 0
 %define CONFIG_TRANSCODING_EXAMPLE 0
@@ -414,17 +415,16 @@
 %define CONFIG_LIBASS 0
 %define CONFIG_LIBBLURAY 0
 %define CONFIG_LIBBS2B 0
 %define CONFIG_LIBCACA 0
 %define CONFIG_LIBCDIO 0
 %define CONFIG_LIBCELT 0
 %define CONFIG_LIBDC1394 0
 %define CONFIG_LIBEBUR128 0
-%define CONFIG_LIBFAAC 0
 %define CONFIG_LIBFDK_AAC 0
 %define CONFIG_LIBFLITE 0
 %define CONFIG_LIBFONTCONFIG 0
 %define CONFIG_LIBFREETYPE 0
 %define CONFIG_LIBFRIBIDI 0
 %define CONFIG_LIBGME 0
 %define CONFIG_LIBGSM 0
 %define CONFIG_LIBIEC61883 0
@@ -433,16 +433,17 @@
 %define CONFIG_LIBMODPLUG 0
 %define CONFIG_LIBMP3LAME 0
 %define CONFIG_LIBNUT 0
 %define CONFIG_LIBOPENCORE_AMRNB 0
 %define CONFIG_LIBOPENCORE_AMRWB 0
 %define CONFIG_LIBOPENCV 0
 %define CONFIG_LIBOPENH264 0
 %define CONFIG_LIBOPENJPEG 0
+%define CONFIG_LIBOPENMPT 0
 %define CONFIG_LIBOPUS 0
 %define CONFIG_LIBPULSE 0
 %define CONFIG_LIBRTMP 0
 %define CONFIG_LIBRUBBERBAND 0
 %define CONFIG_LIBSCHROEDINGER 0
 %define CONFIG_LIBSHINE 0
 %define CONFIG_LIBSMBCLIENT 0
 %define CONFIG_LIBSNAPPY 0
@@ -474,16 +475,17 @@
 %define CONFIG_MEDIACODEC 0
 %define CONFIG_NETCDF 0
 %define CONFIG_OPENAL 0
 %define CONFIG_OPENCL 0
 %define CONFIG_OPENGL 0
 %define CONFIG_OPENSSL 0
 %define CONFIG_SCHANNEL 1
 %define CONFIG_SDL 0
+%define CONFIG_SDL2 0
 %define CONFIG_SECURETRANSPORT 0
 %define CONFIG_VIDEOTOOLBOX 0
 %define CONFIG_X11GRAB 0
 %define CONFIG_XLIB 0
 %define CONFIG_ZLIB 0
 %define CONFIG_AUDIOTOOLBOX 0
 %define CONFIG_CUDA 0
 %define CONFIG_CUVID 0
@@ -533,17 +535,16 @@
 %define CONFIG_FFT 0
 %define CONFIG_LSP 0
 %define CONFIG_LZO 0
 %define CONFIG_MDCT 0
 %define CONFIG_PIXELUTILS 0
 %define CONFIG_NETWORK 0
 %define CONFIG_RDFT 0
 %define CONFIG_FONTCONFIG 0
-%define CONFIG_INCOMPATIBLE_LIBAV_ABI 0
 %define CONFIG_MEMALIGN_HACK 0
 %define CONFIG_MEMORY_POISONING 0
 %define CONFIG_NEON_CLOBBER_TEST 0
 %define CONFIG_PIC 1
 %define CONFIG_POD2MAN 1
 %define CONFIG_RAISE_MAJOR 0
 %define CONFIG_THUMB 0
 %define CONFIG_VALGRIND_BACKTRACE 0
@@ -977,16 +978,18 @@
 %define CONFIG_PCM_S16LE_PLANAR_DECODER 0
 %define CONFIG_PCM_S24BE_DECODER 0
 %define CONFIG_PCM_S24DAUD_DECODER 0
 %define CONFIG_PCM_S24LE_DECODER 0
 %define CONFIG_PCM_S24LE_PLANAR_DECODER 0
 %define CONFIG_PCM_S32BE_DECODER 0
 %define CONFIG_PCM_S32LE_DECODER 0
 %define CONFIG_PCM_S32LE_PLANAR_DECODER 0
+%define CONFIG_PCM_S64BE_DECODER 0
+%define CONFIG_PCM_S64LE_DECODER 0
 %define CONFIG_PCM_U8_DECODER 0
 %define CONFIG_PCM_U16BE_DECODER 0
 %define CONFIG_PCM_U16LE_DECODER 0
 %define CONFIG_PCM_U24BE_DECODER 0
 %define CONFIG_PCM_U24LE_DECODER 0
 %define CONFIG_PCM_U32BE_DECODER 0
 %define CONFIG_PCM_U32LE_DECODER 0
 %define CONFIG_PCM_ZORK_DECODER 0
@@ -1085,21 +1088,31 @@
 %define CONFIG_LIBSPEEX_DECODER 0
 %define CONFIG_LIBVORBIS_DECODER 0
 %define CONFIG_LIBVPX_VP8_DECODER 0
 %define CONFIG_LIBVPX_VP9_DECODER 0
 %define CONFIG_LIBZVBI_TELETEXT_DECODER 0
 %define CONFIG_BINTEXT_DECODER 0
 %define CONFIG_XBIN_DECODER 0
 %define CONFIG_IDF_DECODER 0
+%define CONFIG_LIBOPENH264_DECODER 0
+%define CONFIG_H263_CUVID_DECODER 0
 %define CONFIG_H264_CUVID_DECODER 0
 %define CONFIG_HEVC_CUVID_DECODER 0
+%define CONFIG_HEVC_MEDIACODEC_DECODER 0
+%define CONFIG_MJPEG_CUVID_DECODER 0
+%define CONFIG_MPEG1_CUVID_DECODER 0
+%define CONFIG_MPEG2_CUVID_DECODER 0
+%define CONFIG_MPEG4_CUVID_DECODER 0
+%define CONFIG_MPEG4_MEDIACODEC_DECODER 0
 %define CONFIG_VC1_CUVID_DECODER 0
 %define CONFIG_VP8_CUVID_DECODER 0
+%define CONFIG_VP8_MEDIACODEC_DECODER 0
 %define CONFIG_VP9_CUVID_DECODER 0
+%define CONFIG_VP9_MEDIACODEC_DECODER 0
 %define CONFIG_AA_DEMUXER 0
 %define CONFIG_AAC_DEMUXER 0
 %define CONFIG_AC3_DEMUXER 0
 %define CONFIG_ACM_DEMUXER 0
 %define CONFIG_ACT_DEMUXER 0
 %define CONFIG_ADF_DEMUXER 0
 %define CONFIG_ADP_DEMUXER 0
 %define CONFIG_ADS_DEMUXER 0
@@ -1359,16 +1372,17 @@
 %define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
 %define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
 %define CONFIG_LIBGME_DEMUXER 0
 %define CONFIG_LIBMODPLUG_DEMUXER 0
 %define CONFIG_LIBNUT_DEMUXER 0
+%define CONFIG_LIBOPENMPT_DEMUXER 0
 %define CONFIG_A64MULTI_ENCODER 0
 %define CONFIG_A64MULTI5_ENCODER 0
 %define CONFIG_ALIAS_PIX_ENCODER 0
 %define CONFIG_AMV_ENCODER 0
 %define CONFIG_APNG_ENCODER 0
 %define CONFIG_ASV1_ENCODER 0
 %define CONFIG_ASV2_ENCODER 0
 %define CONFIG_AVRP_ENCODER 0
@@ -1445,22 +1459,24 @@
 %define CONFIG_AAC_ENCODER 0
 %define CONFIG_AC3_ENCODER 0
 %define CONFIG_AC3_FIXED_ENCODER 0
 %define CONFIG_ALAC_ENCODER 0
 %define CONFIG_DCA_ENCODER 0
 %define CONFIG_EAC3_ENCODER 0
 %define CONFIG_FLAC_ENCODER 0
 %define CONFIG_G723_1_ENCODER 0
+%define CONFIG_MLP_ENCODER 0
 %define CONFIG_MP2_ENCODER 0
 %define CONFIG_MP2FIXED_ENCODER 0
 %define CONFIG_NELLYMOSER_ENCODER 0
 %define CONFIG_RA_144_ENCODER 0
 %define CONFIG_SONIC_ENCODER 0
 %define CONFIG_SONIC_LS_ENCODER 0
+%define CONFIG_TRUEHD_ENCODER 0
 %define CONFIG_TTA_ENCODER 0
 %define CONFIG_VORBIS_ENCODER 0
 %define CONFIG_WAVPACK_ENCODER 0
 %define CONFIG_WMAV1_ENCODER 0
 %define CONFIG_WMAV2_ENCODER 0
 %define CONFIG_PCM_ALAW_ENCODER 0
 %define CONFIG_PCM_F32BE_ENCODER 0
 %define CONFIG_PCM_F32LE_ENCODER 0
@@ -1475,16 +1491,18 @@
 %define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
 %define CONFIG_PCM_S24BE_ENCODER 0
 %define CONFIG_PCM_S24DAUD_ENCODER 0
 %define CONFIG_PCM_S24LE_ENCODER 0
 %define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
 %define CONFIG_PCM_S32BE_ENCODER 0
 %define CONFIG_PCM_S32LE_ENCODER 0
 %define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
+%define CONFIG_PCM_S64BE_ENCODER 0
+%define CONFIG_PCM_S64LE_ENCODER 0
 %define CONFIG_PCM_U8_ENCODER 0
 %define CONFIG_PCM_U16BE_ENCODER 0
 %define CONFIG_PCM_U16LE_ENCODER 0
 %define CONFIG_PCM_U24BE_ENCODER 0
 %define CONFIG_PCM_U24LE_ENCODER 0
 %define CONFIG_PCM_U32BE_ENCODER 0
 %define CONFIG_PCM_U32LE_ENCODER 0
 %define CONFIG_ROQ_DPCM_ENCODER 0
@@ -1506,17 +1524,16 @@
 %define CONFIG_TEXT_ENCODER 0
 %define CONFIG_WEBVTT_ENCODER 0
 %define CONFIG_XSUB_ENCODER 0
 %define CONFIG_AAC_AT_ENCODER 0
 %define CONFIG_ALAC_AT_ENCODER 0
 %define CONFIG_ILBC_AT_ENCODER 0
 %define CONFIG_PCM_ALAW_AT_ENCODER 0
 %define CONFIG_PCM_MULAW_AT_ENCODER 0
-%define CONFIG_LIBFAAC_ENCODER 0
 %define CONFIG_LIBFDK_AAC_ENCODER 0
 %define CONFIG_LIBGSM_ENCODER 0
 %define CONFIG_LIBGSM_MS_ENCODER 0
 %define CONFIG_LIBILBC_ENCODER 0
 %define CONFIG_LIBMP3LAME_ENCODER 0
 %define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
 %define CONFIG_LIBOPENJPEG_ENCODER 0
 %define CONFIG_LIBOPUS_ENCODER 0
@@ -1551,16 +1568,17 @@
 %define CONFIG_HEVC_QSV_ENCODER 0
 %define CONFIG_HEVC_VAAPI_ENCODER 0
 %define CONFIG_LIBKVAZAAR_ENCODER 0
 %define CONFIG_MJPEG_VAAPI_ENCODER 0
 %define CONFIG_MPEG2_QSV_ENCODER 0
 %define CONFIG_ABENCH_FILTER 0
 %define CONFIG_ACOMPRESSOR_FILTER 0
 %define CONFIG_ACROSSFADE_FILTER 0
+%define CONFIG_ACRUSHER_FILTER 0
 %define CONFIG_ADELAY_FILTER 0
 %define CONFIG_AECHO_FILTER 0
 %define CONFIG_AEMPHASIS_FILTER 0
 %define CONFIG_AEVAL_FILTER 0
 %define CONFIG_AFADE_FILTER 0
 %define CONFIG_AFFTFILT_FILTER 0
 %define CONFIG_AFORMAT_FILTER 0
 %define CONFIG_AGATE_FILTER 0
@@ -1582,16 +1600,17 @@
 %define CONFIG_AREVERSE_FILTER 0
 %define CONFIG_ASELECT_FILTER 0
 %define CONFIG_ASENDCMD_FILTER 0
 %define CONFIG_ASETNSAMPLES_FILTER 0
 %define CONFIG_ASETPTS_FILTER 0
 %define CONFIG_ASETRATE_FILTER 0
 %define CONFIG_ASETTB_FILTER 0
 %define CONFIG_ASHOWINFO_FILTER 0
+%define CONFIG_ASIDEDATA_FILTER 0
 %define CONFIG_ASPLIT_FILTER 0
 %define CONFIG_ASTATS_FILTER 0
 %define CONFIG_ASTREAMSELECT_FILTER 0
 %define CONFIG_ASYNCTS_FILTER 0
 %define CONFIG_ATEMPO_FILTER 0
 %define CONFIG_ATRIM_FILTER 0
 %define CONFIG_AZMQ_FILTER 0
 %define CONFIG_BANDPASS_FILTER 0
@@ -1599,16 +1618,17 @@
 %define CONFIG_BASS_FILTER 0
 %define CONFIG_BIQUAD_FILTER 0
 %define CONFIG_BS2B_FILTER 0
 %define CONFIG_CHANNELMAP_FILTER 0
 %define CONFIG_CHANNELSPLIT_FILTER 0
 %define CONFIG_CHORUS_FILTER 0
 %define CONFIG_COMPAND_FILTER 0
 %define CONFIG_COMPENSATIONDELAY_FILTER 0
+%define CONFIG_CRYSTALIZER_FILTER 0
 %define CONFIG_DCSHIFT_FILTER 0
 %define CONFIG_DYNAUDNORM_FILTER 0
 %define CONFIG_EARWAX_FILTER 0
 %define CONFIG_EBUR128_FILTER 0
 %define CONFIG_EQUALIZER_FILTER 0
 %define CONFIG_EXTRASTEREO_FILTER 0
 %define CONFIG_FIREQUALIZER_FILTER 0
 %define CONFIG_FLANGER_FILTER 0
@@ -1637,20 +1657,22 @@
 %define CONFIG_AEVALSRC_FILTER 0
 %define CONFIG_ANOISESRC_FILTER 0
 %define CONFIG_ANULLSRC_FILTER 0
 %define CONFIG_FLITE_FILTER 0
 %define CONFIG_SINE_FILTER 0
 %define CONFIG_ANULLSINK_FILTER 0
 %define CONFIG_ALPHAEXTRACT_FILTER 0
 %define CONFIG_ALPHAMERGE_FILTER 0
+%define CONFIG_ASS_FILTER 0
 %define CONFIG_ATADENOISE_FILTER 0
-%define CONFIG_ASS_FILTER 0
+%define CONFIG_AVGBLUR_FILTER 0
+%define CONFIG_BBOX_FILTER 0
 %define CONFIG_BENCH_FILTER 0
-%define CONFIG_BBOX_FILTER 0
+%define CONFIG_BITPLANENOISE_FILTER 0
 %define CONFIG_BLACKDETECT_FILTER 0
 %define CONFIG_BLACKFRAME_FILTER 0
 %define CONFIG_BLEND_FILTER 0
 %define CONFIG_BOXBLUR_FILTER 0
 %define CONFIG_BWDIF_FILTER 0
 %define CONFIG_CHROMAKEY_FILTER 0
 %define CONFIG_CIESCOPE_FILTER 0
 %define CONFIG_CODECVIEW_FILTER 0
@@ -1696,47 +1718,54 @@
 %define CONFIG_FIND_RECT_FILTER 0
 %define CONFIG_FORMAT_FILTER 0
 %define CONFIG_FPS_FILTER 0
 %define CONFIG_FRAMEPACK_FILTER 0
 %define CONFIG_FRAMERATE_FILTER 0
 %define CONFIG_FRAMESTEP_FILTER 0
 %define CONFIG_FREI0R_FILTER 0
 %define CONFIG_FSPP_FILTER 0
+%define CONFIG_GBLUR_FILTER 0
 %define CONFIG_GEQ_FILTER 0
 %define CONFIG_GRADFUN_FILTER 0
 %define CONFIG_HALDCLUT_FILTER 0
 %define CONFIG_HFLIP_FILTER 0
 %define CONFIG_HISTEQ_FILTER 0
 %define CONFIG_HISTOGRAM_FILTER 0
 %define CONFIG_HQDN3D_FILTER 0
 %define CONFIG_HQX_FILTER 0
+%define CONFIG_HSTACK_FILTER 0
+%define CONFIG_HUE_FILTER 0
 %define CONFIG_HWDOWNLOAD_FILTER 0
 %define CONFIG_HWUPLOAD_FILTER 0
 %define CONFIG_HWUPLOAD_CUDA_FILTER 0
-%define CONFIG_HSTACK_FILTER 0
-%define CONFIG_HUE_FILTER 0
+%define CONFIG_HYSTERESIS_FILTER 0
 %define CONFIG_IDET_FILTER 0
 %define CONFIG_IL_FILTER 0
 %define CONFIG_INFLATE_FILTER 0
 %define CONFIG_INTERLACE_FILTER 0
 %define CONFIG_INTERLEAVE_FILTER 0
 %define CONFIG_KERNDEINT_FILTER 0
 %define CONFIG_LENSCORRECTION_FILTER 0
 %define CONFIG_LOOP_FILTER 0
+%define CONFIG_LUT_FILTER 0
+%define CONFIG_LUT2_FILTER 0
 %define CONFIG_LUT3D_FILTER 0
-%define CONFIG_LUT_FILTER 0
 %define CONFIG_LUTRGB_FILTER 0
 %define CONFIG_LUTYUV_FILTER 0
+%define CONFIG_MASKEDCLAMP_FILTER 0
 %define CONFIG_MASKEDMERGE_FILTER 0
 %define CONFIG_MCDEINT_FILTER 0
 %define CONFIG_MERGEPLANES_FILTER 0
+%define CONFIG_MESTIMATE_FILTER 0
 %define CONFIG_METADATA_FILTER 0
+%define CONFIG_MINTERPOLATE_FILTER 0
 %define CONFIG_MPDECIMATE_FILTER 0
 %define CONFIG_NEGATE_FILTER 0
+%define CONFIG_NLMEANS_FILTER 0
 %define CONFIG_NNEDI_FILTER 0
 %define CONFIG_NOFORMAT_FILTER 0
 %define CONFIG_NOISE_FILTER 0
 %define CONFIG_NULL_FILTER 0
 %define CONFIG_OCR_FILTER 0
 %define CONFIG_OCV_FILTER 0
 %define CONFIG_OVERLAY_FILTER 0
 %define CONFIG_OWDENOISE_FILTER 0
@@ -1744,48 +1773,51 @@
 %define CONFIG_PALETTEGEN_FILTER 0
 %define CONFIG_PALETTEUSE_FILTER 0
 %define CONFIG_PERMS_FILTER 0
 %define CONFIG_PERSPECTIVE_FILTER 0
 %define CONFIG_PHASE_FILTER 0
 %define CONFIG_PIXDESCTEST_FILTER 0
 %define CONFIG_PP_FILTER 0
 %define CONFIG_PP7_FILTER 0
+%define CONFIG_PREWITT_FILTER 0
 %define CONFIG_PSNR_FILTER 0
 %define CONFIG_PULLUP_FILTER 0
 %define CONFIG_QP_FILTER 0
 %define CONFIG_RANDOM_FILTER 0
 %define CONFIG_READVITC_FILTER 0
 %define CONFIG_REALTIME_FILTER 0
 %define CONFIG_REMAP_FILTER 0
 %define CONFIG_REMOVEGRAIN_FILTER 0
 %define CONFIG_REMOVELOGO_FILTER 0
 %define CONFIG_REPEATFIELDS_FILTER 0
 %define CONFIG_REVERSE_FILTER 0
 %define CONFIG_ROTATE_FILTER 0
 %define CONFIG_SAB_FILTER 0
 %define CONFIG_SCALE_FILTER 0
-%define CONFIG_SCALE2REF_FILTER 0
 %define CONFIG_SCALE_NPP_FILTER 0
 %define CONFIG_SCALE_VAAPI_FILTER 0
+%define CONFIG_SCALE2REF_FILTER 0
 %define CONFIG_SELECT_FILTER 0
 %define CONFIG_SELECTIVECOLOR_FILTER 0
 %define CONFIG_SENDCMD_FILTER 0
 %define CONFIG_SEPARATEFIELDS_FILTER 0
 %define CONFIG_SETDAR_FILTER 0
 %define CONFIG_SETFIELD_FILTER 0
 %define CONFIG_SETPTS_FILTER 0
 %define CONFIG_SETSAR_FILTER 0
 %define CONFIG_SETTB_FILTER 0
 %define CONFIG_SHOWINFO_FILTER 0
 %define CONFIG_SHOWPALETTE_FILTER 0
 %define CONFIG_SHUFFLEFRAMES_FILTER 0
 %define CONFIG_SHUFFLEPLANES_FILTER 0
+%define CONFIG_SIDEDATA_FILTER 0
 %define CONFIG_SIGNALSTATS_FILTER 0
 %define CONFIG_SMARTBLUR_FILTER 0
+%define CONFIG_SOBEL_FILTER 0
 %define CONFIG_SPLIT_FILTER 0
 %define CONFIG_SPP_FILTER 0
 %define CONFIG_SSIM_FILTER 0
 %define CONFIG_STEREO3D_FILTER 0
 %define CONFIG_STREAMSELECT_FILTER 0
 %define CONFIG_SUBTITLES_FILTER 0
 %define CONFIG_SUPER2XSAI_FILTER 0
 %define CONFIG_SWAPRECT_FILTER 0
@@ -1794,24 +1826,26 @@
 %define CONFIG_TELECINE_FILTER 0
 %define CONFIG_THUMBNAIL_FILTER 0
 %define CONFIG_TILE_FILTER 0
 %define CONFIG_TINTERLACE_FILTER 0
 %define CONFIG_TRANSPOSE_FILTER 0
 %define CONFIG_TRIM_FILTER 0
 %define CONFIG_UNSHARP_FILTER 0
 %define CONFIG_USPP_FILTER 0
+%define CONFIG_VAGUEDENOISER_FILTER 0
 %define CONFIG_VECTORSCOPE_FILTER 0
 %define CONFIG_VFLIP_FILTER 0
 %define CONFIG_VIDSTABDETECT_FILTER 0
 %define CONFIG_VIDSTABTRANSFORM_FILTER 0
 %define CONFIG_VIGNETTE_FILTER 0
 %define CONFIG_VSTACK_FILTER 0
 %define CONFIG_W3FDIF_FILTER 0
 %define CONFIG_WAVEFORM_FILTER 0
+%define CONFIG_WEAVE_FILTER 0
 %define CONFIG_XBR_FILTER 0
 %define CONFIG_YADIF_FILTER 0
 %define CONFIG_ZMQ_FILTER 0
 %define CONFIG_ZOOMPAN_FILTER 0
 %define CONFIG_ZSCALE_FILTER 0
 %define CONFIG_ALLRGB_FILTER 0
 %define CONFIG_ALLYUV_FILTER 0
 %define CONFIG_CELLAUTO_FILTER 0
@@ -1823,76 +1857,87 @@
 %define CONFIG_MANDELBROT_FILTER 0
 %define CONFIG_MPTESTSRC_FILTER 0
 %define CONFIG_NULLSRC_FILTER 0
 %define CONFIG_RGBTESTSRC_FILTER 0
 %define CONFIG_SMPTEBARS_FILTER 0
 %define CONFIG_SMPTEHDBARS_FILTER 0
 %define CONFIG_TESTSRC_FILTER 0
 %define CONFIG_TESTSRC2_FILTER 0
+%define CONFIG_YUVTESTSRC_FILTER 0
 %define CONFIG_NULLSINK_FILTER 0
 %define CONFIG_ADRAWGRAPH_FILTER 0
 %define CONFIG_AHISTOGRAM_FILTER 0
 %define CONFIG_APHASEMETER_FILTER 0
 %define CONFIG_AVECTORSCOPE_FILTER 0
 %define CONFIG_CONCAT_FILTER 0
 %define CONFIG_SHOWCQT_FILTER 0
 %define CONFIG_SHOWFREQS_FILTER 0
 %define CONFIG_SHOWSPECTRUM_FILTER 0
 %define CONFIG_SHOWSPECTRUMPIC_FILTER 0
 %define CONFIG_SHOWVOLUME_FILTER 0
 %define CONFIG_SHOWWAVES_FILTER 0
 %define CONFIG_SHOWWAVESPIC_FILTER 0
 %define CONFIG_SPECTRUMSYNTH_FILTER 0
 %define CONFIG_AMOVIE_FILTER 0
 %define CONFIG_MOVIE_FILTER 0
+%define CONFIG_H263_CUVID_HWACCEL 0
 %define CONFIG_H263_VAAPI_HWACCEL 0
 %define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_H264_CUVID_HWACCEL 0
 %define CONFIG_H264_D3D11VA_HWACCEL 0
 %define CONFIG_H264_DXVA2_HWACCEL 0
+%define CONFIG_H264_MEDIACODEC_HWACCEL 0
 %define CONFIG_H264_MMAL_HWACCEL 0
 %define CONFIG_H264_QSV_HWACCEL 0
 %define CONFIG_H264_VAAPI_HWACCEL 0
 %define CONFIG_H264_VDA_HWACCEL 0
 %define CONFIG_H264_VDA_OLD_HWACCEL 0
 %define CONFIG_H264_VDPAU_HWACCEL 0
 %define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_HEVC_CUVID_HWACCEL 0
 %define CONFIG_HEVC_D3D11VA_HWACCEL 0
 %define CONFIG_HEVC_DXVA2_HWACCEL 0
+%define CONFIG_HEVC_MEDIACODEC_HWACCEL 0
 %define CONFIG_HEVC_QSV_HWACCEL 0
 %define CONFIG_HEVC_VAAPI_HWACCEL 0
 %define CONFIG_HEVC_VDPAU_HWACCEL 0
+%define CONFIG_MJPEG_CUVID_HWACCEL 0
+%define CONFIG_MPEG1_CUVID_HWACCEL 0
 %define CONFIG_MPEG1_XVMC_HWACCEL 0
 %define CONFIG_MPEG1_VDPAU_HWACCEL 0
 %define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
+%define CONFIG_MPEG2_CUVID_HWACCEL 0
 %define CONFIG_MPEG2_XVMC_HWACCEL 0
 %define CONFIG_MPEG2_D3D11VA_HWACCEL 0
 %define CONFIG_MPEG2_DXVA2_HWACCEL 0
 %define CONFIG_MPEG2_MMAL_HWACCEL 0
 %define CONFIG_MPEG2_QSV_HWACCEL 0
 %define CONFIG_MPEG2_VAAPI_HWACCEL 0
 %define CONFIG_MPEG2_VDPAU_HWACCEL 0
 %define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
+%define CONFIG_MPEG4_CUVID_HWACCEL 0
+%define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0
 %define CONFIG_MPEG4_MMAL_HWACCEL 0
 %define CONFIG_MPEG4_VAAPI_HWACCEL 0
 %define CONFIG_MPEG4_VDPAU_HWACCEL 0
 %define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_VC1_CUVID_HWACCEL 0
 %define CONFIG_VC1_D3D11VA_HWACCEL 0
 %define CONFIG_VC1_DXVA2_HWACCEL 0
 %define CONFIG_VC1_VAAPI_HWACCEL 0
 %define CONFIG_VC1_VDPAU_HWACCEL 0
 %define CONFIG_VC1_MMAL_HWACCEL 0
 %define CONFIG_VC1_QSV_HWACCEL 0
 %define CONFIG_VP8_CUVID_HWACCEL 0
+%define CONFIG_VP8_MEDIACODEC_HWACCEL 0
 %define CONFIG_VP9_CUVID_HWACCEL 0
 %define CONFIG_VP9_D3D11VA_HWACCEL 0
 %define CONFIG_VP9_DXVA2_HWACCEL 0
+%define CONFIG_VP9_MEDIACODEC_HWACCEL 0
 %define CONFIG_VP9_VAAPI_HWACCEL 0
 %define CONFIG_WMV3_D3D11VA_HWACCEL 0
 %define CONFIG_WMV3_DXVA2_HWACCEL 0
 %define CONFIG_WMV3_VAAPI_HWACCEL 0
 %define CONFIG_WMV3_VDPAU_HWACCEL 0
 %define CONFIG_ALSA_INDEV 0
 %define CONFIG_AVFOUNDATION_INDEV 0
 %define CONFIG_BKTR_INDEV 0
@@ -1939,16 +1984,17 @@
 %define CONFIG_DIRAC_MUXER 0
 %define CONFIG_DNXHD_MUXER 0
 %define CONFIG_DTS_MUXER 0
 %define CONFIG_DV_MUXER 0
 %define CONFIG_EAC3_MUXER 0
 %define CONFIG_F4V_MUXER 0
 %define CONFIG_FFM_MUXER 0
 %define CONFIG_FFMETADATA_MUXER 0
+%define CONFIG_FIFO_MUXER 0
 %define CONFIG_FILMSTRIP_MUXER 0
 %define CONFIG_FLAC_MUXER 0
 %define CONFIG_FLV_MUXER 0
 %define CONFIG_FRAMECRC_MUXER 0
 %define CONFIG_FRAMEHASH_MUXER 0
 %define CONFIG_FRAMEMD5_MUXER 0
 %define CONFIG_G722_MUXER 0
 %define CONFIG_G723_1_MUXER 0
@@ -1996,16 +2042,17 @@
 %define CONFIG_MPJPEG_MUXER 0
 %define CONFIG_MXF_MUXER 0
 %define CONFIG_MXF_D10_MUXER 0
 %define CONFIG_MXF_OPATOM_MUXER 0
 %define CONFIG_NULL_MUXER 0
 %define CONFIG_NUT_MUXER 0
 %define CONFIG_OGA_MUXER 0
 %define CONFIG_OGG_MUXER 0
+%define CONFIG_OGV_MUXER 0
 %define CONFIG_OMA_MUXER 0
 %define CONFIG_OPUS_MUXER 0
 %define CONFIG_PCM_ALAW_MUXER 0
 %define CONFIG_PCM_MULAW_MUXER 0
 %define CONFIG_PCM_F64BE_MUXER 0
 %define CONFIG_PCM_F64LE_MUXER 0
 %define CONFIG_PCM_F32BE_MUXER 0
 %define CONFIG_PCM_F32LE_MUXER 0
@@ -2042,16 +2089,17 @@
 %define CONFIG_SPDIF_MUXER 0
 %define CONFIG_SRT_MUXER 0
 %define CONFIG_SWF_MUXER 0
 %define CONFIG_TEE_MUXER 0
 %define CONFIG_TG2_MUXER 0
 %define CONFIG_TGP_MUXER 0
 %define CONFIG_MKVTIMESTAMP_V2_MUXER 0
 %define CONFIG_TRUEHD_MUXER 0
+%define CONFIG_TTA_MUXER 0
 %define CONFIG_UNCODEDFRAMECRC_MUXER 0
 %define CONFIG_VC1_MUXER 0
 %define CONFIG_VC1T_MUXER 0
 %define CONFIG_VOC_MUXER 0
 %define CONFIG_W64_MUXER 0
 %define CONFIG_WAV_MUXER 0
 %define CONFIG_WEBM_MUXER 0
 %define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
@@ -2065,17 +2113,17 @@
 %define CONFIG_LIBNUT_MUXER 0
 %define CONFIG_ALSA_OUTDEV 0
 %define CONFIG_CACA_OUTDEV 0
 %define CONFIG_DECKLINK_OUTDEV 0
 %define CONFIG_FBDEV_OUTDEV 0
 %define CONFIG_OPENGL_OUTDEV 0
 %define CONFIG_OSS_OUTDEV 0
 %define CONFIG_PULSE_OUTDEV 0
-%define CONFIG_SDL_OUTDEV 0
+%define CONFIG_SDL2_OUTDEV 0
 %define CONFIG_SNDIO_OUTDEV 0
 %define CONFIG_V4L2_OUTDEV 0
 %define CONFIG_XV_OUTDEV 0
 %define CONFIG_AAC_PARSER 0
 %define CONFIG_AAC_LATM_PARSER 0
 %define CONFIG_AC3_PARSER 0
 %define CONFIG_ADX_PARSER 0
 %define CONFIG_BMP_PARSER 0
@@ -2137,16 +2185,17 @@
 %define CONFIG_RTMPS_PROTOCOL 0
 %define CONFIG_RTMPT_PROTOCOL 0
 %define CONFIG_RTMPTE_PROTOCOL 0
 %define CONFIG_RTMPTS_PROTOCOL 0
 %define CONFIG_RTP_PROTOCOL 0
 %define CONFIG_SCTP_PROTOCOL 0
 %define CONFIG_SRTP_PROTOCOL 0
 %define CONFIG_SUBFILE_PROTOCOL 0
+%define CONFIG_TEE_PROTOCOL 0
 %define CONFIG_TCP_PROTOCOL 0
 %define CONFIG_TLS_GNUTLS_PROTOCOL 0
 %define CONFIG_TLS_SCHANNEL_PROTOCOL 0
 %define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0
 %define CONFIG_TLS_OPENSSL_PROTOCOL 0
 %define CONFIG_UDP_PROTOCOL 0
 %define CONFIG_UDPLITE_PROTOCOL 0
 %define CONFIG_UNIX_PROTOCOL 0
--- a/media/ffvpx/config_win64.h
+++ b/media/ffvpx/config_win64.h
@@ -4,17 +4,17 @@
 #define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-asm --enable-yasm --toolchain=msvc"
 #define FFMPEG_LICENSE "LGPL version 2.1 or later"
 #define CONFIG_THIS_YEAR 2016
 #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
 #define AVCONV_DATADIR "/usr/local/share/ffmpeg"
 #define CC_IDENT "Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64"
 #define av_restrict __restrict
 #define EXTERN_PREFIX ""
-#define EXTERN_ASM 
+#define EXTERN_ASM
 #define BUILDSUF ""
 #define SLIBSUF ".dll"
 #define HAVE_MMX2 HAVE_MMXEXT
 #define SWS_MAX_FILTER_SIZE 256
 #define ARCH_AARCH64 0
 #define ARCH_ALPHA 0
 #define ARCH_ARM 0
 #define ARCH_AVR32 0
@@ -192,17 +192,16 @@
 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0
 #define HAVE_CABS 0
 #define HAVE_CEXP 0
 #define HAVE_INLINE_ASM 0
 #define HAVE_SYMVER 0
 #define HAVE_YASM 1
 #define HAVE_BIGENDIAN 0
 #define HAVE_FAST_UNALIGNED 1
-#define HAVE_INCOMPATIBLE_LIBAV_ABI 0
 #define HAVE_ALSA_ASOUNDLIB_H 0
 #define HAVE_ALTIVEC_H 0
 #define HAVE_ARPA_INET_H 0
 #define HAVE_ASM_TYPES_H 0
 #define HAVE_CDIO_PARANOIA_H 0
 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0
 #define HAVE_DISPATCH_DISPATCH_H 0
 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0
@@ -295,16 +294,17 @@
 #define HAVE_GETTIMEOFDAY 0
 #define HAVE_GLOB 0
 #define HAVE_GLXGETPROCADDRESS 0
 #define HAVE_GMTIME_R 0
 #define HAVE_INET_ATON 0
 #define HAVE_ISATTY 1
 #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
 #define HAVE_KBHIT 1
+#define HAVE_LOADLIBRARY 0
 #define HAVE_LSTAT 0
 #define HAVE_LZO1X_999_COMPRESS 0
 #define HAVE_MACH_ABSOLUTE_TIME 0
 #define HAVE_MAPVIEWOFFILE 1
 #define HAVE_MKSTEMP 0
 #define HAVE_MMAP 0
 #define HAVE_MPROTECT 0
 #define HAVE_NANOSLEEP 0
@@ -368,17 +368,17 @@
 #define HAVE_LIBC_MSVCRT 1
 #define HAVE_LIBDC1394_1 0
 #define HAVE_LIBDC1394_2 0
 #define HAVE_MAKEINFO 1
 #define HAVE_MAKEINFO_HTML 0
 #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
 #define HAVE_PERL 1
 #define HAVE_POD2MAN 1
-#define HAVE_SDL 0
+#define HAVE_SDL2 0
 #define HAVE_SECTION_DATA_REL_RO 0
 #define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_DRM 0
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
 #define HAVE_WINRT 0
 #define HAVE_XLIB 0
@@ -393,24 +393,25 @@
 #define CONFIG_DEMUXERS 0
 #define CONFIG_MUXERS 0
 #define CONFIG_PROTOCOLS 0
 #define CONFIG_DOC 0
 #define CONFIG_HTMLPAGES 0
 #define CONFIG_MANPAGES 1
 #define CONFIG_PODPAGES 1
 #define CONFIG_TXTPAGES 1
+#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_AVIO_READING_EXAMPLE 1
-#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1
 #define CONFIG_DECODING_ENCODING_EXAMPLE 0
 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0
 #define CONFIG_EXTRACT_MVS_EXAMPLE 0
 #define CONFIG_FILTER_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0
 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0
+#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0
 #define CONFIG_METADATA_EXAMPLE 0
 #define CONFIG_MUXING_EXAMPLE 0
 #define CONFIG_QSVDEC_EXAMPLE 0
 #define CONFIG_REMUXING_EXAMPLE 0
 #define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
 #define CONFIG_SCALING_VIDEO_EXAMPLE 0
 #define CONFIG_TRANSCODE_AAC_EXAMPLE 0
 #define CONFIG_TRANSCODING_EXAMPLE 0
@@ -429,17 +430,16 @@
 #define CONFIG_LIBASS 0
 #define CONFIG_LIBBLURAY 0
 #define CONFIG_LIBBS2B 0
 #define CONFIG_LIBCACA 0
 #define CONFIG_LIBCDIO 0
 #define CONFIG_LIBCELT 0
 #define CONFIG_LIBDC1394 0
 #define CONFIG_LIBEBUR128 0
-#define CONFIG_LIBFAAC 0
 #define CONFIG_LIBFDK_AAC 0
 #define CONFIG_LIBFLITE 0
 #define CONFIG_LIBFONTCONFIG 0
 #define CONFIG_LIBFREETYPE 0
 #define CONFIG_LIBFRIBIDI 0
 #define CONFIG_LIBGME 0
 #define CONFIG_LIBGSM 0
 #define CONFIG_LIBIEC61883 0
@@ -448,16 +448,17 @@
 #define CONFIG_LIBMODPLUG 0
 #define CONFIG_LIBMP3LAME 0
 #define CONFIG_LIBNUT 0
 #define CONFIG_LIBOPENCORE_AMRNB 0
 #define CONFIG_LIBOPENCORE_AMRWB 0
 #define CONFIG_LIBOPENCV 0
 #define CONFIG_LIBOPENH264 0
 #define CONFIG_LIBOPENJPEG 0
+#define CONFIG_LIBOPENMPT 0
 #define CONFIG_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
 #define CONFIG_LIBRTMP 0
 #define CONFIG_LIBRUBBERBAND 0
 #define CONFIG_LIBSCHROEDINGER 0
 #define CONFIG_LIBSHINE 0
 #define CONFIG_LIBSMBCLIENT 0
 #define CONFIG_LIBSNAPPY 0
@@ -489,16 +490,17 @@
 #define CONFIG_MEDIACODEC 0
 #define CONFIG_NETCDF 0
 #define CONFIG_OPENAL 0
 #define CONFIG_OPENCL 0
 #define CONFIG_OPENGL 0
 #define CONFIG_OPENSSL 0
 #define CONFIG_SCHANNEL 1
 #define CONFIG_SDL 0
+#define CONFIG_SDL2 0
 #define CONFIG_SECURETRANSPORT 0
 #define CONFIG_VIDEOTOOLBOX 0
 #define CONFIG_X11GRAB 0
 #define CONFIG_XLIB 0
 #define CONFIG_ZLIB 0
 #define CONFIG_AUDIOTOOLBOX 0
 #define CONFIG_CUDA 0
 #define CONFIG_CUVID 0
@@ -548,17 +550,16 @@
 #define CONFIG_FFT 0
 #define CONFIG_LSP 0
 #define CONFIG_LZO 0
 #define CONFIG_MDCT 0
 #define CONFIG_PIXELUTILS 0
 #define CONFIG_NETWORK 0
 #define CONFIG_RDFT 0
 #define CONFIG_FONTCONFIG 0
-#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0
 #define CONFIG_MEMALIGN_HACK 0
 #define CONFIG_MEMORY_POISONING 0
 #define CONFIG_NEON_CLOBBER_TEST 0
 #define CONFIG_PIC 1
 #define CONFIG_POD2MAN 1
 #define CONFIG_RAISE_MAJOR 0
 #define CONFIG_THUMB 0
 #define CONFIG_VALGRIND_BACKTRACE 0
@@ -992,16 +993,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S24BE_DECODER 0
 #define CONFIG_PCM_S24DAUD_DECODER 0
 #define CONFIG_PCM_S24LE_DECODER 0
 #define CONFIG_PCM_S24LE_PLANAR_DECODER 0
 #define CONFIG_PCM_S32BE_DECODER 0
 #define CONFIG_PCM_S32LE_DECODER 0
 #define CONFIG_PCM_S32LE_PLANAR_DECODER 0
+#define CONFIG_PCM_S64BE_DECODER 0
+#define CONFIG_PCM_S64LE_DECODER 0
 #define CONFIG_PCM_U8_DECODER 0
 #define CONFIG_PCM_U16BE_DECODER 0
 #define CONFIG_PCM_U16LE_DECODER 0
 #define CONFIG_PCM_U24BE_DECODER 0
 #define CONFIG_PCM_U24LE_DECODER 0
 #define CONFIG_PCM_U32BE_DECODER 0
 #define CONFIG_PCM_U32LE_DECODER 0
 #define CONFIG_PCM_ZORK_DECODER 0
@@ -1100,21 +1103,31 @@
 #define CONFIG_LIBSPEEX_DECODER 0
 #define CONFIG_LIBVORBIS_DECODER 0
 #define CONFIG_LIBVPX_VP8_DECODER 0
 #define CONFIG_LIBVPX_VP9_DECODER 0
 #define CONFIG_LIBZVBI_TELETEXT_DECODER 0
 #define CONFIG_BINTEXT_DECODER 0
 #define CONFIG_XBIN_DECODER 0
 #define CONFIG_IDF_DECODER 0
+#define CONFIG_LIBOPENH264_DECODER 0
+#define CONFIG_H263_CUVID_DECODER 0
 #define CONFIG_H264_CUVID_DECODER 0
 #define CONFIG_HEVC_CUVID_DECODER 0
+#define CONFIG_HEVC_MEDIACODEC_DECODER 0
+#define CONFIG_MJPEG_CUVID_DECODER 0
+#define CONFIG_MPEG1_CUVID_DECODER 0
+#define CONFIG_MPEG2_CUVID_DECODER 0
+#define CONFIG_MPEG4_CUVID_DECODER 0
+#define CONFIG_MPEG4_MEDIACODEC_DECODER 0
 #define CONFIG_VC1_CUVID_DECODER 0
 #define CONFIG_VP8_CUVID_DECODER 0
+#define CONFIG_VP8_MEDIACODEC_DECODER 0
 #define CONFIG_VP9_CUVID_DECODER 0
+#define CONFIG_VP9_MEDIACODEC_DECODER 0
 #define CONFIG_AA_DEMUXER 0
 #define CONFIG_AAC_DEMUXER 0
 #define CONFIG_AC3_DEMUXER 0
 #define CONFIG_ACM_DEMUXER 0
 #define CONFIG_ACT_DEMUXER 0
 #define CONFIG_ADF_DEMUXER 0
 #define CONFIG_ADP_DEMUXER 0
 #define CONFIG_ADS_DEMUXER 0
@@ -1374,16 +1387,17 @@
 #define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
 #define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
 #define CONFIG_LIBGME_DEMUXER 0
 #define CONFIG_LIBMODPLUG_DEMUXER 0
 #define CONFIG_LIBNUT_DEMUXER 0
+#define CONFIG_LIBOPENMPT_DEMUXER 0
 #define CONFIG_A64MULTI_ENCODER 0
 #define CONFIG_A64MULTI5_ENCODER 0
 #define CONFIG_ALIAS_PIX_ENCODER 0
 #define CONFIG_AMV_ENCODER 0
 #define CONFIG_APNG_ENCODER 0
 #define CONFIG_ASV1_ENCODER 0
 #define CONFIG_ASV2_ENCODER 0
 #define CONFIG_AVRP_ENCODER 0
@@ -1460,22 +1474,24 @@
 #define CONFIG_AAC_ENCODER 0
 #define CONFIG_AC3_ENCODER 0
 #define CONFIG_AC3_FIXED_ENCODER 0
 #define CONFIG_ALAC_ENCODER 0
 #define CONFIG_DCA_ENCODER 0
 #define CONFIG_EAC3_ENCODER 0
 #define CONFIG_FLAC_ENCODER 0
 #define CONFIG_G723_1_ENCODER 0
+#define CONFIG_MLP_ENCODER 0
 #define CONFIG_MP2_ENCODER 0
 #define CONFIG_MP2FIXED_ENCODER 0
 #define CONFIG_NELLYMOSER_ENCODER 0
 #define CONFIG_RA_144_ENCODER 0
 #define CONFIG_SONIC_ENCODER 0
 #define CONFIG_SONIC_LS_ENCODER 0
+#define CONFIG_TRUEHD_ENCODER 0
 #define CONFIG_TTA_ENCODER 0
 #define CONFIG_VORBIS_ENCODER 0
 #define CONFIG_WAVPACK_ENCODER 0
 #define CONFIG_WMAV1_ENCODER 0
 #define CONFIG_WMAV2_ENCODER 0
 #define CONFIG_PCM_ALAW_ENCODER 0
 #define CONFIG_PCM_F32BE_ENCODER 0
 #define CONFIG_PCM_F32LE_ENCODER 0
@@ -1490,16 +1506,18 @@
 #define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S24BE_ENCODER 0
 #define CONFIG_PCM_S24DAUD_ENCODER 0
 #define CONFIG_PCM_S24LE_ENCODER 0
 #define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
 #define CONFIG_PCM_S32BE_ENCODER 0
 #define CONFIG_PCM_S32LE_ENCODER 0
 #define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
+#define CONFIG_PCM_S64BE_ENCODER 0
+#define CONFIG_PCM_S64LE_ENCODER 0
 #define CONFIG_PCM_U8_ENCODER 0
 #define CONFIG_PCM_U16BE_ENCODER 0
 #define CONFIG_PCM_U16LE_ENCODER 0
 #define CONFIG_PCM_U24BE_ENCODER 0
 #define CONFIG_PCM_U24LE_ENCODER 0
 #define CONFIG_PCM_U32BE_ENCODER 0
 #define CONFIG_PCM_U32LE_ENCODER 0
 #define CONFIG_ROQ_DPCM_ENCODER 0
@@ -1521,17 +1539,16 @@
 #define CONFIG_TEXT_ENCODER 0
 #define CONFIG_WEBVTT_ENCODER 0
 #define CONFIG_XSUB_ENCODER 0
 #define CONFIG_AAC_AT_ENCODER 0
 #define CONFIG_ALAC_AT_ENCODER 0
 #define CONFIG_ILBC_AT_ENCODER 0
 #define CONFIG_PCM_ALAW_AT_ENCODER 0
 #define CONFIG_PCM_MULAW_AT_ENCODER 0
-#define CONFIG_LIBFAAC_ENCODER 0
 #define CONFIG_LIBFDK_AAC_ENCODER 0
 #define CONFIG_LIBGSM_ENCODER 0
 #define CONFIG_LIBGSM_MS_ENCODER 0
 #define CONFIG_LIBILBC_ENCODER 0
 #define CONFIG_LIBMP3LAME_ENCODER 0
 #define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
@@ -1566,16 +1583,17 @@
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_HEVC_VAAPI_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MJPEG_VAAPI_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ABENCH_FILTER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_FILTER 0
+#define CONFIG_ACRUSHER_FILTER 0
 #define CONFIG_ADELAY_FILTER 0
 #define CONFIG_AECHO_FILTER 0
 #define CONFIG_AEMPHASIS_FILTER 0
 #define CONFIG_AEVAL_FILTER 0
 #define CONFIG_AFADE_FILTER 0
 #define CONFIG_AFFTFILT_FILTER 0
 #define CONFIG_AFORMAT_FILTER 0
 #define CONFIG_AGATE_FILTER 0
@@ -1597,16 +1615,17 @@
 #define CONFIG_AREVERSE_FILTER 0
 #define CONFIG_ASELECT_FILTER 0
 #define CONFIG_ASENDCMD_FILTER 0
 #define CONFIG_ASETNSAMPLES_FILTER 0
 #define CONFIG_ASETPTS_FILTER 0
 #define CONFIG_ASETRATE_FILTER 0
 #define CONFIG_ASETTB_FILTER 0
 #define CONFIG_ASHOWINFO_FILTER 0
+#define CONFIG_ASIDEDATA_FILTER 0
 #define CONFIG_ASPLIT_FILTER 0
 #define CONFIG_ASTATS_FILTER 0
 #define CONFIG_ASTREAMSELECT_FILTER 0
 #define CONFIG_ASYNCTS_FILTER 0
 #define CONFIG_ATEMPO_FILTER 0
 #define CONFIG_ATRIM_FILTER 0
 #define CONFIG_AZMQ_FILTER 0
 #define CONFIG_BANDPASS_FILTER 0
@@ -1614,16 +1633,17 @@
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
 #define CONFIG_BS2B_FILTER 0
 #define CONFIG_CHANNELMAP_FILTER 0
 #define CONFIG_CHANNELSPLIT_FILTER 0
 #define CONFIG_CHORUS_FILTER 0
 #define CONFIG_COMPAND_FILTER 0
 #define CONFIG_COMPENSATIONDELAY_FILTER 0
+#define CONFIG_CRYSTALIZER_FILTER 0
 #define CONFIG_DCSHIFT_FILTER 0
 #define CONFIG_DYNAUDNORM_FILTER 0
 #define CONFIG_EARWAX_FILTER 0
 #define CONFIG_EBUR128_FILTER 0
 #define CONFIG_EQUALIZER_FILTER 0
 #define CONFIG_EXTRASTEREO_FILTER 0
 #define CONFIG_FIREQUALIZER_FILTER 0
 #define CONFIG_FLANGER_FILTER 0
@@ -1652,20 +1672,22 @@
 #define CONFIG_AEVALSRC_FILTER 0
 #define CONFIG_ANOISESRC_FILTER 0
 #define CONFIG_ANULLSRC_FILTER 0
 #define CONFIG_FLITE_FILTER 0
 #define CONFIG_SINE_FILTER 0
 #define CONFIG_ANULLSINK_FILTER 0
 #define CONFIG_ALPHAEXTRACT_FILTER 0
 #define CONFIG_ALPHAMERGE_FILTER 0
+#define CONFIG_ASS_FILTER 0
 #define CONFIG_ATADENOISE_FILTER 0
-#define CONFIG_ASS_FILTER 0
+#define CONFIG_AVGBLUR_FILTER 0
+#define CONFIG_BBOX_FILTER 0
 #define CONFIG_BENCH_FILTER 0
-#define CONFIG_BBOX_FILTER 0
+#define CONFIG_BITPLANENOISE_FILTER 0
 #define CONFIG_BLACKDETECT_FILTER 0
 #define CONFIG_BLACKFRAME_FILTER 0
 #define CONFIG_BLEND_FILTER 0
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_BWDIF_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CIESCOPE_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
@@ -1711,47 +1733,54 @@
 #define CONFIG_FIND_RECT_FILTER 0
 #define CONFIG_FORMAT_FILTER 0
 #define CONFIG_FPS_FILTER 0
 #define CONFIG_FRAMEPACK_FILTER 0
 #define CONFIG_FRAMERATE_FILTER 0
 #define CONFIG_FRAMESTEP_FILTER 0
 #define CONFIG_FREI0R_FILTER 0
 #define CONFIG_FSPP_FILTER 0
+#define CONFIG_GBLUR_FILTER 0
 #define CONFIG_GEQ_FILTER 0
 #define CONFIG_GRADFUN_FILTER 0
 #define CONFIG_HALDCLUT_FILTER 0
 #define CONFIG_HFLIP_FILTER 0
 #define CONFIG_HISTEQ_FILTER 0
 #define CONFIG_HISTOGRAM_FILTER 0
 #define CONFIG_HQDN3D_FILTER 0
 #define CONFIG_HQX_FILTER 0
+#define CONFIG_HSTACK_FILTER 0
+#define CONFIG_HUE_FILTER 0
 #define CONFIG_HWDOWNLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_FILTER 0
 #define CONFIG_HWUPLOAD_CUDA_FILTER 0
-#define CONFIG_HSTACK_FILTER 0
-#define CONFIG_HUE_FILTER 0
+#define CONFIG_HYSTERESIS_FILTER 0
 #define CONFIG_IDET_FILTER 0
 #define CONFIG_IL_FILTER 0
 #define CONFIG_INFLATE_FILTER 0
 #define CONFIG_INTERLACE_FILTER 0
 #define CONFIG_INTERLEAVE_FILTER 0
 #define CONFIG_KERNDEINT_FILTER 0
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LOOP_FILTER 0
+#define CONFIG_LUT_FILTER 0
+#define CONFIG_LUT2_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
-#define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
+#define CONFIG_MASKEDCLAMP_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_MESTIMATE_FILTER 0
 #define CONFIG_METADATA_FILTER 0
+#define CONFIG_MINTERPOLATE_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_FILTER 0
+#define CONFIG_NLMEANS_FILTER 0
 #define CONFIG_NNEDI_FILTER 0
 #define CONFIG_NOFORMAT_FILTER 0
 #define CONFIG_NOISE_FILTER 0
 #define CONFIG_NULL_FILTER 0
 #define CONFIG_OCR_FILTER 0
 #define CONFIG_OCV_FILTER 0
 #define CONFIG_OVERLAY_FILTER 0
 #define CONFIG_OWDENOISE_FILTER 0
@@ -1759,48 +1788,51 @@
 #define CONFIG_PALETTEGEN_FILTER 0
 #define CONFIG_PALETTEUSE_FILTER 0
 #define CONFIG_PERMS_FILTER 0
 #define CONFIG_PERSPECTIVE_FILTER 0
 #define CONFIG_PHASE_FILTER 0
 #define CONFIG_PIXDESCTEST_FILTER 0
 #define CONFIG_PP_FILTER 0
 #define CONFIG_PP7_FILTER 0
+#define CONFIG_PREWITT_FILTER 0
 #define CONFIG_PSNR_FILTER 0
 #define CONFIG_PULLUP_FILTER 0
 #define CONFIG_QP_FILTER 0
 #define CONFIG_RANDOM_FILTER 0
 #define CONFIG_READVITC_FILTER 0
 #define CONFIG_REALTIME_FILTER 0
 #define CONFIG_REMAP_FILTER 0
 #define CONFIG_REMOVEGRAIN_FILTER 0
 #define CONFIG_REMOVELOGO_FILTER 0
 #define CONFIG_REPEATFIELDS_FILTER 0
 #define CONFIG_REVERSE_FILTER 0
 #define CONFIG_ROTATE_FILTER 0
 #define CONFIG_SAB_FILTER 0
 #define CONFIG_SCALE_FILTER 0
-#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SCALE_NPP_FILTER 0
 #define CONFIG_SCALE_VAAPI_FILTER 0
+#define CONFIG_SCALE2REF_FILTER 0
 #define CONFIG_SELECT_FILTER 0
 #define CONFIG_SELECTIVECOLOR_FILTER 0
 #define CONFIG_SENDCMD_FILTER 0
 #define CONFIG_SEPARATEFIELDS_FILTER 0
 #define CONFIG_SETDAR_FILTER 0
 #define CONFIG_SETFIELD_FILTER 0
 #define CONFIG_SETPTS_FILTER 0
 #define CONFIG_SETSAR_FILTER 0
 #define CONFIG_SETTB_FILTER 0
 #define CONFIG_SHOWINFO_FILTER 0
 #define CONFIG_SHOWPALETTE_FILTER 0
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
+#define CONFIG_SIDEDATA_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_FILTER 0
+#define CONFIG_SOBEL_FILTER 0
 #define CONFIG_SPLIT_FILTER 0
 #define CONFIG_SPP_FILTER 0
 #define CONFIG_SSIM_FILTER 0
 #define CONFIG_STEREO3D_FILTER 0
 #define CONFIG_STREAMSELECT_FILTER 0
 #define CONFIG_SUBTITLES_FILTER 0
 #define CONFIG_SUPER2XSAI_FILTER 0
 #define CONFIG_SWAPRECT_FILTER 0
@@ -1809,24 +1841,26 @@
 #define CONFIG_TELECINE_FILTER 0
 #define CONFIG_THUMBNAIL_FILTER 0
 #define CONFIG_TILE_FILTER 0
 #define CONFIG_TINTERLACE_FILTER 0
 #define CONFIG_TRANSPOSE_FILTER 0
 #define CONFIG_TRIM_FILTER 0
 #define CONFIG_UNSHARP_FILTER 0
 #define CONFIG_USPP_FILTER 0
+#define CONFIG_VAGUEDENOISER_FILTER 0
 #define CONFIG_VECTORSCOPE_FILTER 0
 #define CONFIG_VFLIP_FILTER 0
 #define CONFIG_VIDSTABDETECT_FILTER 0
 #define CONFIG_VIDSTABTRANSFORM_FILTER 0
 #define CONFIG_VIGNETTE_FILTER 0
 #define CONFIG_VSTACK_FILTER 0
 #define CONFIG_W3FDIF_FILTER 0
 #define CONFIG_WAVEFORM_FILTER 0
+#define CONFIG_WEAVE_FILTER 0
 #define CONFIG_XBR_FILTER 0
 #define CONFIG_YADIF_FILTER 0
 #define CONFIG_ZMQ_FILTER 0
 #define CONFIG_ZOOMPAN_FILTER 0
 #define CONFIG_ZSCALE_FILTER 0
 #define CONFIG_ALLRGB_FILTER 0
 #define CONFIG_ALLYUV_FILTER 0
 #define CONFIG_CELLAUTO_FILTER 0
@@ -1838,76 +1872,87 @@
 #define CONFIG_MANDELBROT_FILTER 0
 #define CONFIG_MPTESTSRC_FILTER 0
 #define CONFIG_NULLSRC_FILTER 0
 #define CONFIG_RGBTESTSRC_FILTER 0
 #define CONFIG_SMPTEBARS_FILTER 0
 #define CONFIG_SMPTEHDBARS_FILTER 0
 #define CONFIG_TESTSRC_FILTER 0
 #define CONFIG_TESTSRC2_FILTER 0
+#define CONFIG_YUVTESTSRC_FILTER 0
 #define CONFIG_NULLSINK_FILTER 0
 #define CONFIG_ADRAWGRAPH_FILTER 0
 #define CONFIG_AHISTOGRAM_FILTER 0
 #define CONFIG_APHASEMETER_FILTER 0
 #define CONFIG_AVECTORSCOPE_FILTER 0
 #define CONFIG_CONCAT_FILTER 0
 #define CONFIG_SHOWCQT_FILTER 0
 #define CONFIG_SHOWFREQS_FILTER 0
 #define CONFIG_SHOWSPECTRUM_FILTER 0
 #define CONFIG_SHOWSPECTRUMPIC_FILTER 0
 #define CONFIG_SHOWVOLUME_FILTER 0
 #define CONFIG_SHOWWAVES_FILTER 0
 #define CONFIG_SHOWWAVESPIC_FILTER 0
 #define CONFIG_SPECTRUMSYNTH_FILTER 0
 #define CONFIG_AMOVIE_FILTER 0
 #define CONFIG_MOVIE_FILTER 0
+#define CONFIG_H263_CUVID_HWACCEL 0
 #define CONFIG_H263_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_CUVID_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
+#define CONFIG_H264_MEDIACODEC_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
 #define CONFIG_H264_VAAPI_HWACCEL 0
 #define CONFIG_H264_VDA_HWACCEL 0
 #define CONFIG_H264_VDA_OLD_HWACCEL 0
 #define CONFIG_H264_VDPAU_HWACCEL 0
 #define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_HEVC_CUVID_HWACCEL 0
 #define CONFIG_HEVC_D3D11VA_HWACCEL 0
 #define CONFIG_HEVC_DXVA2_HWACCEL 0
+#define CONFIG_HEVC_MEDIACODEC_HWACCEL 0
 #define CONFIG_HEVC_QSV_HWACCEL 0
 #define CONFIG_HEVC_VAAPI_HWACCEL 0
 #define CONFIG_HEVC_VDPAU_HWACCEL 0
+#define CONFIG_MJPEG_CUVID_HWACCEL 0
+#define CONFIG_MPEG1_CUVID_HWACCEL 0
 #define CONFIG_MPEG1_XVMC_HWACCEL 0
 #define CONFIG_MPEG1_VDPAU_HWACCEL 0
 #define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG2_CUVID_HWACCEL 0
 #define CONFIG_MPEG2_XVMC_HWACCEL 0
 #define CONFIG_MPEG2_D3D11VA_HWACCEL 0
 #define CONFIG_MPEG2_DXVA2_HWACCEL 0
 #define CONFIG_MPEG2_MMAL_HWACCEL 0
 #define CONFIG_MPEG2_QSV_HWACCEL 0
 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
 #define CONFIG_MPEG2_VDPAU_HWACCEL 0
 #define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
+#define CONFIG_MPEG4_CUVID_HWACCEL 0
+#define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0
 #define CONFIG_MPEG4_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_VC1_CUVID_HWACCEL 0
 #define CONFIG_VC1_D3D11VA_HWACCEL 0
 #define CONFIG_VC1_DXVA2_HWACCEL 0
 #define CONFIG_VC1_VAAPI_HWACCEL 0
 #define CONFIG_VC1_VDPAU_HWACCEL 0
 #define CONFIG_VC1_MMAL_HWACCEL 0
 #define CONFIG_VC1_QSV_HWACCEL 0
 #define CONFIG_VP8_CUVID_HWACCEL 0
+#define CONFIG_VP8_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_CUVID_HWACCEL 0
 #define CONFIG_VP9_D3D11VA_HWACCEL 0
 #define CONFIG_VP9_DXVA2_HWACCEL 0
+#define CONFIG_VP9_MEDIACODEC_HWACCEL 0
 #define CONFIG_VP9_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_D3D11VA_HWACCEL 0
 #define CONFIG_WMV3_DXVA2_HWACCEL 0
 #define CONFIG_WMV3_VAAPI_HWACCEL 0
 #define CONFIG_WMV3_VDPAU_HWACCEL 0
 #define CONFIG_ALSA_INDEV 0
 #define CONFIG_AVFOUNDATION_INDEV 0
 #define CONFIG_BKTR_INDEV 0
@@ -1954,16 +1999,17 @@
 #define CONFIG_DIRAC_MUXER 0
 #define CONFIG_DNXHD_MUXER 0
 #define CONFIG_DTS_MUXER 0
 #define CONFIG_DV_MUXER 0
 #define CONFIG_EAC3_MUXER 0
 #define CONFIG_F4V_MUXER 0
 #define CONFIG_FFM_MUXER 0
 #define CONFIG_FFMETADATA_MUXER 0
+#define CONFIG_FIFO_MUXER 0
 #define CONFIG_FILMSTRIP_MUXER 0
 #define CONFIG_FLAC_MUXER 0
 #define CONFIG_FLV_MUXER 0
 #define CONFIG_FRAMECRC_MUXER 0
 #define CONFIG_FRAMEHASH_MUXER 0
 #define CONFIG_FRAMEMD5_MUXER 0
 #define CONFIG_G722_MUXER 0
 #define CONFIG_G723_1_MUXER 0
@@ -2011,16 +2057,17 @@
 #define CONFIG_MPJPEG_MUXER 0
 #define CONFIG_MXF_MUXER 0
 #define CONFIG_MXF_D10_MUXER 0
 #define CONFIG_MXF_OPATOM_MUXER 0
 #define CONFIG_NULL_MUXER 0
 #define CONFIG_NUT_MUXER 0
 #define CONFIG_OGA_MUXER 0
 #define CONFIG_OGG_MUXER 0
+#define CONFIG_OGV_MUXER 0
 #define CONFIG_OMA_MUXER 0
 #define CONFIG_OPUS_MUXER 0
 #define CONFIG_PCM_ALAW_MUXER 0
 #define CONFIG_PCM_MULAW_MUXER 0
 #define CONFIG_PCM_F64BE_MUXER 0
 #define CONFIG_PCM_F64LE_MUXER 0
 #define CONFIG_PCM_F32BE_MUXER 0
 #define CONFIG_PCM_F32LE_MUXER 0
@@ -2057,16 +2104,17 @@
 #define CONFIG_SPDIF_MUXER 0
 #define CONFIG_SRT_MUXER 0
 #define CONFIG_SWF_MUXER 0
 #define CONFIG_TEE_MUXER 0
 #define CONFIG_TG2_MUXER 0
 #define CONFIG_TGP_MUXER 0
 #define CONFIG_MKVTIMESTAMP_V2_MUXER 0
 #define CONFIG_TRUEHD_MUXER 0
+#define CONFIG_TTA_MUXER 0
 #define CONFIG_UNCODEDFRAMECRC_MUXER 0
 #define CONFIG_VC1_MUXER 0
 #define CONFIG_VC1T_MUXER 0
 #define CONFIG_VOC_MUXER 0
 #define CONFIG_W64_MUXER 0
 #define CONFIG_WAV_MUXER 0
 #define CONFIG_WEBM_MUXER 0
 #define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
@@ -2080,17 +2128,17 @@
 #define CONFIG_LIBNUT_MUXER 0
 #define CONFIG_ALSA_OUTDEV 0
 #define CONFIG_CACA_OUTDEV 0
 #define CONFIG_DECKLINK_OUTDEV 0
 #define CONFIG_FBDEV_OUTDEV 0
 #define CONFIG_OPENGL_OUTDEV 0
 #define CONFIG_OSS_OUTDEV 0
 #define CONFIG_PULSE_OUTDEV 0
-#define CONFIG_SDL_OUTDEV 0
+#define CONFIG_SDL2_OUTDEV 0
 #define CONFIG_SNDIO_OUTDEV 0
 #define CONFIG_V4L2_OUTDEV 0
 #define CONFIG_XV_OUTDEV 0
 #define CONFIG_AAC_PARSER 0
 #define CONFIG_AAC_LATM_PARSER 0
 #define CONFIG_AC3_PARSER 0
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
@@ -2152,16 +2200,17 @@
 #define CONFIG_RTMPS_PROTOCOL 0
 #define CONFIG_RTMPT_PROTOCOL 0
 #define CONFIG_RTMPTE_PROTOCOL 0
 #define CONFIG_RTMPTS_PROTOCOL 0
 #define CONFIG_RTP_PROTOCOL 0
 #define CONFIG_SCTP_PROTOCOL 0
 #define CONFIG_SRTP_PROTOCOL 0
 #define CONFIG_SUBFILE_PROTOCOL 0
+#define CONFIG_TEE_PROTOCOL 0
 #define CONFIG_TCP_PROTOCOL 0
 #define CONFIG_TLS_GNUTLS_PROTOCOL 0
 #define CONFIG_TLS_SCHANNEL_PROTOCOL 0
 #define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0
 #define CONFIG_TLS_OPENSSL_PROTOCOL 0
 #define CONFIG_UDP_PROTOCOL 0
 #define CONFIG_UDPLITE_PROTOCOL 0
 #define CONFIG_UNIX_PROTOCOL 0
--- a/media/ffvpx/libavcodec/allcodecs.c
+++ b/media/ffvpx/libavcodec/allcodecs.c
@@ -62,60 +62,70 @@ void avcodec_register_all(void)
 {
     static int initialized;
 
     if (initialized)
         return;
     initialized = 1;
 
     /* hardware accelerators */
+    REGISTER_HWACCEL(H263_CUVID,        h263_cuvid);
     REGISTER_HWACCEL(H263_VAAPI,        h263_vaapi);
     REGISTER_HWACCEL(H263_VIDEOTOOLBOX, h263_videotoolbox);
     REGISTER_HWACCEL(H264_CUVID,        h264_cuvid);
     REGISTER_HWACCEL(H264_D3D11VA,      h264_d3d11va);
     REGISTER_HWACCEL(H264_DXVA2,        h264_dxva2);
+    REGISTER_HWACCEL(H264_MEDIACODEC,   h264_mediacodec);
     REGISTER_HWACCEL(H264_MMAL,         h264_mmal);
     REGISTER_HWACCEL(H264_QSV,          h264_qsv);
     REGISTER_HWACCEL(H264_VAAPI,        h264_vaapi);
     REGISTER_HWACCEL(H264_VDA,          h264_vda);
     REGISTER_HWACCEL(H264_VDA_OLD,      h264_vda_old);
     REGISTER_HWACCEL(H264_VDPAU,        h264_vdpau);
     REGISTER_HWACCEL(H264_VIDEOTOOLBOX, h264_videotoolbox);
     REGISTER_HWACCEL(HEVC_CUVID,        hevc_cuvid);
     REGISTER_HWACCEL(HEVC_D3D11VA,      hevc_d3d11va);
     REGISTER_HWACCEL(HEVC_DXVA2,        hevc_dxva2);
+    REGISTER_HWACCEL(HEVC_MEDIACODEC,   hevc_mediacodec);
     REGISTER_HWACCEL(HEVC_QSV,          hevc_qsv);
     REGISTER_HWACCEL(HEVC_VAAPI,        hevc_vaapi);
     REGISTER_HWACCEL(HEVC_VDPAU,        hevc_vdpau);
+    REGISTER_HWACCEL(MJPEG_CUVID,       mjpeg_cuvid);
+    REGISTER_HWACCEL(MPEG1_CUVID,       mpeg1_cuvid);
     REGISTER_HWACCEL(MPEG1_XVMC,        mpeg1_xvmc);
     REGISTER_HWACCEL(MPEG1_VDPAU,       mpeg1_vdpau);
     REGISTER_HWACCEL(MPEG1_VIDEOTOOLBOX, mpeg1_videotoolbox);
+    REGISTER_HWACCEL(MPEG2_CUVID,       mpeg2_cuvid);
     REGISTER_HWACCEL(MPEG2_XVMC,        mpeg2_xvmc);
     REGISTER_HWACCEL(MPEG2_D3D11VA,     mpeg2_d3d11va);
     REGISTER_HWACCEL(MPEG2_DXVA2,       mpeg2_dxva2);
     REGISTER_HWACCEL(MPEG2_MMAL,        mpeg2_mmal);
     REGISTER_HWACCEL(MPEG2_QSV,         mpeg2_qsv);
     REGISTER_HWACCEL(MPEG2_VAAPI,       mpeg2_vaapi);
     REGISTER_HWACCEL(MPEG2_VDPAU,       mpeg2_vdpau);
     REGISTER_HWACCEL(MPEG2_VIDEOTOOLBOX, mpeg2_videotoolbox);
+    REGISTER_HWACCEL(MPEG4_CUVID,       mpeg4_cuvid);
+    REGISTER_HWACCEL(MPEG4_MEDIACODEC,  mpeg4_mediacodec);
     REGISTER_HWACCEL(MPEG4_MMAL,        mpeg4_mmal);
     REGISTER_HWACCEL(MPEG4_VAAPI,       mpeg4_vaapi);
     REGISTER_HWACCEL(MPEG4_VDPAU,       mpeg4_vdpau);
     REGISTER_HWACCEL(MPEG4_VIDEOTOOLBOX, mpeg4_videotoolbox);
     REGISTER_HWACCEL(VC1_CUVID,         vc1_cuvid);
     REGISTER_HWACCEL(VC1_D3D11VA,       vc1_d3d11va);
     REGISTER_HWACCEL(VC1_DXVA2,         vc1_dxva2);
     REGISTER_HWACCEL(VC1_VAAPI,         vc1_vaapi);
     REGISTER_HWACCEL(VC1_VDPAU,         vc1_vdpau);
     REGISTER_HWACCEL(VC1_MMAL,          vc1_mmal);
     REGISTER_HWACCEL(VC1_QSV,           vc1_qsv);
     REGISTER_HWACCEL(VP8_CUVID,         vp8_cuvid);
+    REGISTER_HWACCEL(VP8_MEDIACODEC,    vp8_mediacodec);
     REGISTER_HWACCEL(VP9_CUVID,         vp9_cuvid);
     REGISTER_HWACCEL(VP9_D3D11VA,       vp9_d3d11va);
     REGISTER_HWACCEL(VP9_DXVA2,         vp9_dxva2);
+    REGISTER_HWACCEL(VP9_MEDIACODEC,    vp9_mediacodec);
     REGISTER_HWACCEL(VP9_VAAPI,         vp9_vaapi);
     REGISTER_HWACCEL(WMV3_D3D11VA,      wmv3_d3d11va);
     REGISTER_HWACCEL(WMV3_DXVA2,        wmv3_dxva2);
     REGISTER_HWACCEL(WMV3_VAAPI,        wmv3_vaapi);
     REGISTER_HWACCEL(WMV3_VDPAU,        wmv3_vdpau);
 
     /* video codecs */
     REGISTER_ENCODER(A64MULTI,          a64multi);
@@ -413,17 +423,17 @@ void avcodec_register_all(void)
     REGISTER_DECODER(GSM,               gsm);
     REGISTER_DECODER(GSM_MS,            gsm_ms);
     REGISTER_DECODER(IAC,               iac);
     REGISTER_DECODER(IMC,               imc);
     REGISTER_DECODER(INTERPLAY_ACM,     interplay_acm);
     REGISTER_DECODER(MACE3,             mace3);
     REGISTER_DECODER(MACE6,             mace6);
     REGISTER_DECODER(METASOUND,         metasound);
-    REGISTER_DECODER(MLP,               mlp);
+    REGISTER_ENCDEC (MLP,               mlp);
     REGISTER_DECODER(MP1,               mp1);
     REGISTER_DECODER(MP1FLOAT,          mp1float);
     REGISTER_ENCDEC (MP2,               mp2);
     REGISTER_DECODER(MP2FLOAT,          mp2float);
     REGISTER_ENCODER(MP2FIXED,          mp2fixed);
     REGISTER_DECODER(MP3,               mp3);
     REGISTER_DECODER(MP3FLOAT,          mp3float);
     REGISTER_DECODER(MP3ADU,            mp3adu);
@@ -442,17 +452,17 @@ void avcodec_register_all(void)
     REGISTER_DECODER(RA_288,            ra_288);
     REGISTER_DECODER(RALF,              ralf);
     REGISTER_DECODER(SHORTEN,           shorten);
     REGISTER_DECODER(SIPR,              sipr);
     REGISTER_DECODER(SMACKAUD,          smackaud);
     REGISTER_ENCDEC (SONIC,             sonic);
     REGISTER_ENCODER(SONIC_LS,          sonic_ls);
     REGISTER_DECODER(TAK,               tak);
-    REGISTER_DECODER(TRUEHD,            truehd);
+    REGISTER_ENCDEC (TRUEHD,            truehd);
     REGISTER_DECODER(TRUESPEECH,        truespeech);
     REGISTER_ENCDEC (TTA,               tta);
     REGISTER_DECODER(TWINVQ,            twinvq);
     REGISTER_DECODER(VMDAUDIO,          vmdaudio);
     REGISTER_ENCDEC (VORBIS,            vorbis);
     REGISTER_ENCDEC (WAVPACK,           wavpack);
     REGISTER_DECODER(WMALOSSLESS,       wmalossless);
     REGISTER_DECODER(WMAPRO,            wmapro);
@@ -481,16 +491,18 @@ void avcodec_register_all(void)
     REGISTER_ENCDEC (PCM_S16LE_PLANAR,  pcm_s16le_planar);
     REGISTER_ENCDEC (PCM_S24BE,         pcm_s24be);
     REGISTER_ENCDEC (PCM_S24DAUD,       pcm_s24daud);
     REGISTER_ENCDEC (PCM_S24LE,         pcm_s24le);
     REGISTER_ENCDEC (PCM_S24LE_PLANAR,  pcm_s24le_planar);
     REGISTER_ENCDEC (PCM_S32BE,         pcm_s32be);
     REGISTER_ENCDEC (PCM_S32LE,         pcm_s32le);
     REGISTER_ENCDEC (PCM_S32LE_PLANAR,  pcm_s32le_planar);
+    REGISTER_ENCDEC (PCM_S64BE,         pcm_s64be);
+    REGISTER_ENCDEC (PCM_S64LE,         pcm_s64le);
     REGISTER_ENCDEC (PCM_U8,            pcm_u8);
     REGISTER_ENCDEC (PCM_U16BE,         pcm_u16be);
     REGISTER_ENCDEC (PCM_U16LE,         pcm_u16le);
     REGISTER_ENCDEC (PCM_U24BE,         pcm_u24be);
     REGISTER_ENCDEC (PCM_U24LE,         pcm_u24le);
     REGISTER_ENCDEC (PCM_U32BE,         pcm_u32be);
     REGISTER_ENCDEC (PCM_U32LE,         pcm_u32le);
     REGISTER_DECODER(PCM_ZORK,          pcm_zork);
@@ -580,17 +592,16 @@ void avcodec_register_all(void)
     REGISTER_DECODER(MP1_AT,            mp1_at);
     REGISTER_DECODER(MP2_AT,            mp2_at);
     REGISTER_DECODER(MP3_AT,            mp3_at);
     REGISTER_ENCDEC (PCM_ALAW_AT,       pcm_alaw_at);
     REGISTER_ENCDEC (PCM_MULAW_AT,      pcm_mulaw_at);
     REGISTER_DECODER(QDMC_AT,           qdmc_at);
     REGISTER_DECODER(QDM2_AT,           qdm2_at);
     REGISTER_DECODER(LIBCELT,           libcelt);
-    REGISTER_ENCODER(LIBFAAC,           libfaac);
     REGISTER_ENCDEC (LIBFDK_AAC,        libfdk_aac);
     REGISTER_ENCDEC (LIBGSM,            libgsm);
     REGISTER_ENCDEC (LIBGSM_MS,         libgsm_ms);
     REGISTER_ENCDEC (LIBILBC,           libilbc);
     REGISTER_ENCODER(LIBMP3LAME,        libmp3lame);
     REGISTER_ENCDEC (LIBOPENCORE_AMRNB, libopencore_amrnb);
     REGISTER_DECODER(LIBOPENCORE_AMRWB, libopencore_amrwb);
     REGISTER_ENCDEC (LIBOPENJPEG,       libopenjpeg);
@@ -617,38 +628,47 @@ void avcodec_register_all(void)
 
     /* text */
     REGISTER_DECODER(BINTEXT,           bintext);
     REGISTER_DECODER(XBIN,              xbin);
     REGISTER_DECODER(IDF,               idf);
 
     /* external libraries, that shouldn't be used by default if one of the
      * above is available */
-    REGISTER_ENCODER(LIBOPENH264,       libopenh264);
+    REGISTER_ENCDEC (LIBOPENH264,       libopenh264);
+    REGISTER_DECODER(H263_CUVID,        h263_cuvid);
     REGISTER_DECODER(H264_CUVID,        h264_cuvid);
     REGISTER_ENCODER(H264_NVENC,        h264_nvenc);
     REGISTER_ENCODER(H264_OMX,          h264_omx);
     REGISTER_ENCODER(H264_QSV,          h264_qsv);
     REGISTER_ENCODER(H264_VAAPI,        h264_vaapi);
     REGISTER_ENCODER(H264_VIDEOTOOLBOX, h264_videotoolbox);
 #if FF_API_NVENC_OLD_NAME
     REGISTER_ENCODER(NVENC,             nvenc);
     REGISTER_ENCODER(NVENC_H264,        nvenc_h264);
     REGISTER_ENCODER(NVENC_HEVC,        nvenc_hevc);
 #endif
     REGISTER_DECODER(HEVC_CUVID,        hevc_cuvid);
+    REGISTER_DECODER(HEVC_MEDIACODEC,   hevc_mediacodec);
     REGISTER_ENCODER(HEVC_NVENC,        hevc_nvenc);
     REGISTER_ENCODER(HEVC_QSV,          hevc_qsv);
     REGISTER_ENCODER(HEVC_VAAPI,        hevc_vaapi);
     REGISTER_ENCODER(LIBKVAZAAR,        libkvazaar);
+    REGISTER_DECODER(MJPEG_CUVID,       mjpeg_cuvid);
     REGISTER_ENCODER(MJPEG_VAAPI,       mjpeg_vaapi);
+    REGISTER_DECODER(MPEG1_CUVID,       mpeg1_cuvid);
+    REGISTER_DECODER(MPEG2_CUVID,       mpeg2_cuvid);
     REGISTER_ENCODER(MPEG2_QSV,         mpeg2_qsv);
+    REGISTER_DECODER(MPEG4_CUVID,       mpeg4_cuvid);
+    REGISTER_DECODER(MPEG4_MEDIACODEC,  mpeg4_mediacodec);
     REGISTER_DECODER(VC1_CUVID,         vc1_cuvid);
     REGISTER_DECODER(VP8_CUVID,         vp8_cuvid);
+    REGISTER_DECODER(VP8_MEDIACODEC,    vp8_mediacodec);
     REGISTER_DECODER(VP9_CUVID,         vp9_cuvid);
+    REGISTER_DECODER(VP9_MEDIACODEC,    vp9_mediacodec);
 
     /* parsers */
     REGISTER_PARSER(AAC,                aac);
     REGISTER_PARSER(AAC_LATM,           aac_latm);
     REGISTER_PARSER(AC3,                ac3);
     REGISTER_PARSER(ADX,                adx);
     REGISTER_PARSER(BMP,                bmp);
     REGISTER_PARSER(CAVSVIDEO,          cavsvideo);
--- a/media/ffvpx/libavcodec/avcodec.h
+++ b/media/ffvpx/libavcodec/avcodec.h
@@ -38,17 +38,19 @@
 #include "libavutil/frame.h"
 #include "libavutil/log.h"
 #include "libavutil/pixfmt.h"
 #include "libavutil/rational.h"
 
 #include "version.h"
 
 /**
- * @defgroup libavc Encoding/Decoding Library
+ * @defgroup libavc libavcodec
+ * Encoding/Decoding Library
+ *
  * @{
  *
  * @defgroup lavc_decoding Decoding
  * @{
  * @}
  *
  * @defgroup lavc_encoding Encoding
  * @{
@@ -438,19 +440,19 @@ enum AVCodecID {
     AV_CODEC_ID_PCM_F64LE,
     AV_CODEC_ID_PCM_BLURAY,
     AV_CODEC_ID_PCM_LXF,
     AV_CODEC_ID_S302M,
     AV_CODEC_ID_PCM_S8_PLANAR,
     AV_CODEC_ID_PCM_S24LE_PLANAR,
     AV_CODEC_ID_PCM_S32LE_PLANAR,
     AV_CODEC_ID_PCM_S16BE_PLANAR,
-    /* new PCM "codecs" should be added right below this line starting with
-     * an explicit value of for example 0x10800
-     */
+
+    AV_CODEC_ID_PCM_S64LE = 0x10800,
+    AV_CODEC_ID_PCM_S64BE,
 
     /* various ADPCM codecs */
     AV_CODEC_ID_ADPCM_IMA_QT = 0x11000,
     AV_CODEC_ID_ADPCM_IMA_WAV,
     AV_CODEC_ID_ADPCM_IMA_DK3,
     AV_CODEC_ID_ADPCM_IMA_DK4,
     AV_CODEC_ID_ADPCM_IMA_WS,
     AV_CODEC_ID_ADPCM_IMA_SMJPEG,
@@ -624,16 +626,17 @@ enum AVCodecID {
     AV_CODEC_ID_PJS,
     AV_CODEC_ID_ASS,
     AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
 
     /* other specific kind of codecs (generally used for attachments) */
     AV_CODEC_ID_FIRST_UNKNOWN = 0x18000,           ///< A dummy ID pointing at the start of various fake codecs.
     AV_CODEC_ID_TTF = 0x18000,
 
+    AV_CODEC_ID_SCTE_35, ///< Contain timestamp estimated through PCR of program stream.
     AV_CODEC_ID_BINTEXT    = 0x18800,
     AV_CODEC_ID_XBIN,
     AV_CODEC_ID_IDF,
     AV_CODEC_ID_OTF,
     AV_CODEC_ID_SMPTE_KLV,
     AV_CODEC_ID_DVD_NAV,
     AV_CODEC_ID_TIMED_ID3,
     AV_CODEC_ID_BIN_DATA,
@@ -1029,16 +1032,26 @@ typedef struct RcOverride{
  * Codec supports avctx->thread_count == 0 (auto).
  */
 #define AV_CODEC_CAP_AUTO_THREADS        (1 << 15)
 /**
  * Audio encoder supports receiving a different number of samples in each call.
  */
 #define AV_CODEC_CAP_VARIABLE_FRAME_SIZE (1 << 16)
 /**
+ * Decoder is not a preferred choice for probing.
+ * This indicates that the decoder is not a good choice for probing.
+ * It could for example be an expensive to spin up hardware decoder,
+ * or it could simply not provide a lot of useful information about
+ * the stream.
+ * A decoder marked with this flag should only be used as last resort
+ * choice for probing.
+ */
+#define AV_CODEC_CAP_AVOID_PROBING       (1 << 17)
+/**
  * Codec is intra only.
  */
 #define AV_CODEC_CAP_INTRA_ONLY       0x40000000
 /**
  * Codec is lossless.
  */
 #define AV_CODEC_CAP_LOSSLESS         0x80000000
 
@@ -1343,16 +1356,24 @@ typedef struct AVCPBProperties {
 /**
  * @defgroup lavc_packet AVPacket
  *
  * Types and functions for working with AVPacket.
  * @{
  */
 enum AVPacketSideDataType {
     AV_PKT_DATA_PALETTE,
+
+    /**
+     * The AV_PKT_DATA_NEW_EXTRADATA is used to notify the codec or the format
+     * that the extradata buffer was changed and the receiving side should
+     * act upon it appropriately. The new extradata is embedded in the side
+     * data buffer and should be immediately used for processing the current
+     * frame or packet.
+     */
     AV_PKT_DATA_NEW_EXTRADATA,
 
     /**
      * An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows:
      * @code
      * u32le param_flags
      * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT)
      *     s32le channel_count
@@ -1606,16 +1627,22 @@ typedef struct AVPacket {
      * duration field was still an int.
      */
     attribute_deprecated
     int64_t convergence_duration;
 #endif
 } AVPacket;
 #define AV_PKT_FLAG_KEY     0x0001 ///< The packet contains a keyframe
 #define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted
+/**
+ * Flag is used to discard packets which are required to maintain valid
+ * decoder state but are not required for output and should be dropped
+ * after decoding.
+ **/
+#define AV_PKT_FLAG_DISCARD   0x0004
 
 enum AVSideDataParamChangeFlags {
     AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT  = 0x0001,
     AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = 0x0002,
     AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE    = 0x0004,
     AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS     = 0x0008,
 };
 /**
@@ -2078,32 +2105,33 @@ typedef struct AVCodecContext {
      */
     int mb_cmp;
     /**
      * interlaced DCT comparison function
      * - encoding: Set by user.
      * - decoding: unused
      */
     int ildct_cmp;
-#define FF_CMP_SAD    0
-#define FF_CMP_SSE    1
-#define FF_CMP_SATD   2
-#define FF_CMP_DCT    3
-#define FF_CMP_PSNR   4
-#define FF_CMP_BIT    5
-#define FF_CMP_RD     6
-#define FF_CMP_ZERO   7
-#define FF_CMP_VSAD   8
-#define FF_CMP_VSSE   9
-#define FF_CMP_NSSE   10
-#define FF_CMP_W53    11
-#define FF_CMP_W97    12
-#define FF_CMP_DCTMAX 13
-#define FF_CMP_DCT264 14
-#define FF_CMP_CHROMA 256
+#define FF_CMP_SAD          0
+#define FF_CMP_SSE          1
+#define FF_CMP_SATD         2
+#define FF_CMP_DCT          3
+#define FF_CMP_PSNR         4
+#define FF_CMP_BIT          5
+#define FF_CMP_RD           6
+#define FF_CMP_ZERO         7
+#define FF_CMP_VSAD         8
+#define FF_CMP_VSSE         9
+#define FF_CMP_NSSE         10
+#define FF_CMP_W53          11
+#define FF_CMP_W97          12
+#define FF_CMP_DCTMAX       13
+#define FF_CMP_DCT264       14
+#define FF_CMP_MEDIAN_SAD   15
+#define FF_CMP_CHROMA       256
 
     /**
      * ME diamond size & shape
      * - encoding: Set by user.
      * - decoding: unused
      */
     int dia_size;
 
@@ -2845,16 +2873,17 @@ typedef struct AVCodecContext {
 #define FF_BUG_STD_QPEL         128
 #define FF_BUG_QPEL_CHROMA2     256
 #define FF_BUG_DIRECT_BLOCKSIZE 512
 #define FF_BUG_EDGE             1024
 #define FF_BUG_HPEL_CHROMA      2048
 #define FF_BUG_DC_CLIP          4096
 #define FF_BUG_MS               8192 ///< Work around various bugs in Microsoft's broken decoders.
 #define FF_BUG_TRUNCATED       16384
+#define FF_BUG_IEDGE           32768
 
     /**
      * strictly follow the standard (MPEG-4, ...).
      * - encoding: Set by user.
      * - decoding: Set by user.
      * Setting this to STRICT or higher means the encoder and decoder will
      * generally do stupid things, whereas setting it to unofficial or lower
      * will mean the encoder might produce output that is not supported by all
@@ -3160,16 +3189,23 @@ typedef struct AVCodecContext {
 #define FF_PROFILE_AAC_LTP  3
 #define FF_PROFILE_AAC_HE   4
 #define FF_PROFILE_AAC_HE_V2 28
 #define FF_PROFILE_AAC_LD   22
 #define FF_PROFILE_AAC_ELD  38
 #define FF_PROFILE_MPEG2_AAC_LOW 128
 #define FF_PROFILE_MPEG2_AAC_HE  131
 
+#define FF_PROFILE_DNXHD         0
+#define FF_PROFILE_DNXHR_LB      1
+#define FF_PROFILE_DNXHR_SQ      2
+#define FF_PROFILE_DNXHR_HQ      3
+#define FF_PROFILE_DNXHR_HQX     4
+#define FF_PROFILE_DNXHR_444     5
+
 #define FF_PROFILE_DTS         20
 #define FF_PROFILE_DTS_ES      30
 #define FF_PROFILE_DTS_96_24   40
 #define FF_PROFILE_DTS_HD_HRA  50
 #define FF_PROFILE_DTS_HD_MA   60
 #define FF_PROFILE_DTS_EXPRESS 70
 
 #define FF_PROFILE_MPEG2_422    0
@@ -3184,18 +3220,20 @@ typedef struct AVCodecContext {
 
 #define FF_PROFILE_H264_BASELINE             66
 #define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED)
 #define FF_PROFILE_H264_MAIN                 77
 #define FF_PROFILE_H264_EXTENDED             88
 #define FF_PROFILE_H264_HIGH                 100
 #define FF_PROFILE_H264_HIGH_10              110
 #define FF_PROFILE_H264_HIGH_10_INTRA        (110|FF_PROFILE_H264_INTRA)
+#define FF_PROFILE_H264_MULTIVIEW_HIGH       118
 #define FF_PROFILE_H264_HIGH_422             122
 #define FF_PROFILE_H264_HIGH_422_INTRA       (122|FF_PROFILE_H264_INTRA)
+#define FF_PROFILE_H264_STEREO_HIGH          128
 #define FF_PROFILE_H264_HIGH_444             144
 #define FF_PROFILE_H264_HIGH_444_PREDICTIVE  244
 #define FF_PROFILE_H264_HIGH_444_INTRA       (244|FF_PROFILE_H264_INTRA)
 #define FF_PROFILE_H264_CAVLC_444            44
 
 #define FF_PROFILE_VC1_SIMPLE   0
 #define FF_PROFILE_VC1_MAIN     1
 #define FF_PROFILE_VC1_COMPLEX  2
@@ -3477,39 +3515,60 @@ typedef struct AVCodecContext {
      *
      * - decoding: unused
      * - encoding: may be set by libavcodec after avcodec_open2().
      */
     AVPacketSideData *coded_side_data;
     int            nb_coded_side_data;
 
     /**
-     * Encoding only.
+     * A reference to the AVHWFramesContext describing the input (for encoding)
+     * or output (decoding) frames. The reference is set by the caller and
+     * afterwards owned (and freed) by libavcodec.
+     *
+     * - decoding: This field should be set by the caller from the get_format()
+     *             callback. The previous reference (if any) will always be
+     *             unreffed by libavcodec before the get_format() call.
      *
-     * For hardware encoders configured to use a hwaccel pixel format, this
-     * field should be set by the caller to a reference to the AVHWFramesContext
-     * describing input frames. AVHWFramesContext.format must be equal to
-     * AVCodecContext.pix_fmt.
+     *             If the default get_buffer2() is used with a hwaccel pixel
+     *             format, then this AVHWFramesContext will be used for
+     *             allocating the frame buffers.
      *
-     * This field should be set before avcodec_open2() is called and is
-     * afterwards owned and managed by libavcodec.
+     * - encoding: For hardware encoders configured to use a hwaccel pixel
+     *             format, this field should be set by the caller to a reference
+     *             to the AVHWFramesContext describing input frames.
+     *             AVHWFramesContext.format must be equal to
+     *             AVCodecContext.pix_fmt.
+     *
+     *             This field should be set before avcodec_open2() is called.
      */
     AVBufferRef *hw_frames_ctx;
 
     /**
      * Control the form of AVSubtitle.rects[N]->ass
      * - decoding: set by user
      * - encoding: unused
      */
     int sub_text_format;
 #define FF_SUB_TEXT_FMT_ASS              0
 #if FF_API_ASS_TIMING
 #define FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS 1
 #endif
 
+    /**
+     * Audio only. The amount of padding (in samples) appended by the encoder to
+     * the end of the audio. I.e. this number of decoded samples must be
+     * discarded by the caller from the end of the stream to get the original
+     * audio without any trailing padding.
+     *
+     * - decoding: unused
+     * - encoding: unused
+     */
+    int trailing_padding;
+
 } AVCodecContext;
 
 AVRational av_codec_get_pkt_timebase         (const AVCodecContext *avctx);
 void       av_codec_set_pkt_timebase         (AVCodecContext *avctx, AVRational val);
 
 const AVCodecDescriptor *av_codec_get_codec_descriptor(const AVCodecContext *avctx);
 void                     av_codec_set_codec_descriptor(AVCodecContext *avctx, const AVCodecDescriptor *desc);
 
@@ -5110,17 +5169,20 @@ AVCodecParserContext *av_parser_init(int
 /**
  * Parse a packet.
  *
  * @param s             parser context.
  * @param avctx         codec context.
  * @param poutbuf       set to pointer to parsed buffer or NULL if not yet finished.
  * @param poutbuf_size  set to size of parsed buffer or zero if not yet finished.
  * @param buf           input buffer.
- * @param buf_size      input length, to signal EOF, this should be 0 (so that the last frame can be output).
+ * @param buf_size      buffer size in bytes without the padding. I.e. the full buffer
+                        size is assumed to be buf_size + AV_INPUT_BUFFER_PADDING_SIZE.
+                        To signal EOF, this should be 0 (so that the last frame
+                        can be output).
  * @param pts           input presentation timestamp.
  * @param dts           input decoding timestamp.
  * @param pos           input byte position in stream.
  * @return the number of bytes of the input bitstream used.
  *
  * Example:
  * @code
  *   while(in_len){
@@ -5500,25 +5562,18 @@ enum AVPixelFormat avcodec_find_best_pix
 
 /**
  * @deprecated see av_find_best_pix_fmt_of_2()
  */
 enum AVPixelFormat avcodec_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
                                             enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
 
 attribute_deprecated
-#if AV_HAVE_INCOMPATIBLE_LIBAV_ABI
-enum AVPixelFormat avcodec_find_best_pix_fmt2(const enum AVPixelFormat *pix_fmt_list,
-                                              enum AVPixelFormat src_pix_fmt,
-                                              int has_alpha, int *loss_ptr);
-#else
 enum AVPixelFormat avcodec_find_best_pix_fmt2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
                                             enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
-#endif
-
 
 enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum AVPixelFormat * fmt);
 
 /**
  * @}
  */
 
 #if FF_API_SET_DIMENSIONS
@@ -5876,17 +5931,18 @@ int av_bsf_init(AVBSFContext *ctx);
 
 /**
  * Submit a packet for filtering.
  *
  * After sending each packet, the filter must be completely drained by calling
  * av_bsf_receive_packet() repeatedly until it returns AVERROR(EAGAIN) or
  * AVERROR_EOF.
  *
- * @param pkt the packet to filter. The bitstream filter will take ownership of
+ * @param pkt the packet to filter. pkt must contain some payload (i.e data or
+ * side data must be present in pkt). The bitstream filter will take ownership of
  * the packet and reset the contents of pkt. pkt is not touched if an error occurs.
  * This parameter may be NULL, which signals the end of the stream (i.e. no more
  * packets will be sent). That will cause the filter to output any packets it
  * may have buffered internally.
  *
  * @return 0 on success, a negative AVERROR on error.
  */
 int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt);
@@ -5926,16 +5982,101 @@ void av_bsf_free(AVBSFContext **ctx);
 /**
  * Get the AVClass for AVBSFContext. It can be used in combination with
  * AV_OPT_SEARCH_FAKE_OBJ for examining options.
  *
  * @see av_opt_find().
  */
 const AVClass *av_bsf_get_class(void);
 
+/**
+ * Structure for chain/list of bitstream filters.
+ * Empty list can be allocated by av_bsf_list_alloc().
+ */
+typedef struct AVBSFList AVBSFList;
+
+/**
+ * Allocate empty list of bitstream filters.
+ * The list must be later freed by av_bsf_list_free()
+ * or finalized by av_bsf_list_finalize().
+ *
+ * @return Pointer to @ref AVBSFList on success, NULL in case of failure
+ */
+AVBSFList *av_bsf_list_alloc(void);
+
+/**
+ * Free list of bitstream filters.
+ *
+ * @param lst Pointer to pointer returned by av_bsf_list_alloc()
+ */
+void av_bsf_list_free(AVBSFList **lst);
+
+/**
+ * Append bitstream filter to the list of bitstream filters.
+ *
+ * @param lst List to append to
+ * @param bsf Filter context to be appended
+ *
+ * @return >=0 on success, negative AVERROR in case of failure
+ */
+int av_bsf_list_append(AVBSFList *lst, AVBSFContext *bsf);
+
+/**
+ * Construct new bitstream filter context given it's name and options
+ * and append it to the list of bitstream filters.
+ *
+ * @param lst      List to append to
+ * @param bsf_name Name of the bitstream filter
+ * @param options  Options for the bitstream filter, can be set to NULL
+ *
+ * @return >=0 on success, negative AVERROR in case of failure
+ */
+int av_bsf_list_append2(AVBSFList *lst, const char * bsf_name, AVDictionary **options);
+/**
+ * Finalize list of bitstream filters.
+ *
+ * This function will transform @ref AVBSFList to single @ref AVBSFContext,
+ * so the whole chain of bitstream filters can be treated as single filter
+ * freshly allocated by av_bsf_alloc().
+ * If the call is successful, @ref AVBSFList structure is freed and lst
+ * will be set to NULL. In case of failure, caller is responsible for
+ * freeing the structure by av_bsf_list_free()
+ *
+ * @param      lst Filter list structure to be transformed
+ * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure
+ *                 representing the chain of bitstream filters
+ *
+ * @return >=0 on success, negative AVERROR in case of failure
+ */
+int av_bsf_list_finalize(AVBSFList **lst, AVBSFContext **bsf);
+
+/**
+ * Parse string describing list of bitstream filters and create single
+ * @ref AVBSFContext describing the whole chain of bitstream filters.
+ * Resulting @ref AVBSFContext can be treated as any other @ref AVBSFContext freshly
+ * allocated by av_bsf_alloc().
+ *
+ * @param      str String describing chain of bitstream filters in format
+ *                 `bsf1[=opt1=val1:opt2=val2][,bsf2]`
+ * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure
+ *                 representing the chain of bitstream filters
+ *
+ * @return >=0 on success, negative AVERROR in case of failure
+ */
+int av_bsf_list_parse_str(const char *str, AVBSFContext **bsf);
+
+/**
+ * Get null/pass-through bitstream filter.
+ *
+ * @param[out] bsf Pointer to be set to new instance of pass-through bitstream filter
+ *
+ * @return
+ */
+int av_bsf_get_null_filter(AVBSFContext **bsf);
+
 /* memory */
 
 /**
  * Same behaviour av_fast_malloc but the buffer has additional
  * AV_INPUT_BUFFER_PADDING_SIZE at the end which will always be 0.
  *
  * In addition the whole buffer will initially and after resizes
  * be 0-initialized so that no uninitialized data will ever appear.
--- a/media/ffvpx/libavcodec/avpacket.c
+++ b/media/ffvpx/libavcodec/avpacket.c
@@ -134,17 +134,18 @@ int av_grow_packet(AVPacket *pkt, int gr
                 return ret;
             }
             pkt->data = pkt->buf->data + data_offset;
         }
     } else {
         pkt->buf = av_buffer_alloc(new_size);
         if (!pkt->buf)
             return AVERROR(ENOMEM);
-        memcpy(pkt->buf->data, pkt->data, pkt->size);
+        if (pkt->size > 0)
+            memcpy(pkt->buf->data, pkt->data, pkt->size);
         pkt->data = pkt->buf->data;
     }
     pkt->size += grow_by;
     memset(pkt->data + pkt->size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
 
     return 0;
 }
 
@@ -193,28 +194,31 @@ do {                                    
         dst = data;                                                     \
     } while (0)
 
 /* Makes duplicates of data, side_data, but does not copy any other fields */
 static int copy_packet_data(AVPacket *pkt, const AVPacket *src, int dup)
 {
     pkt->data      = NULL;
     pkt->side_data = NULL;
+    pkt->side_data_elems = 0;
     if (pkt->buf) {
         AVBufferRef *ref = av_buffer_ref(src->buf);
         if (!ref)
             return AVERROR(ENOMEM);
         pkt->buf  = ref;
         pkt->data = ref->data;
     } else {
         DUP_DATA(pkt->data, src->data, pkt->size, 1, ALLOC_BUF);
     }
-    if (pkt->side_data_elems && dup)
+    if (src->side_data_elems && dup) {
         pkt->side_data = src->side_data;
-    if (pkt->side_data_elems && !dup) {
+        pkt->side_data_elems = src->side_data_elems;
+    }
+    if (src->side_data_elems && !dup) {
         return av_copy_packet_side_data(pkt, src);
     }
     return 0;
 
 failed_alloc:
     av_packet_unref(pkt);
     return AVERROR(ENOMEM);
 }
@@ -286,26 +290,27 @@ void av_free_packet(AVPacket *pkt)
     }
 }
 FF_ENABLE_DEPRECATION_WARNINGS
 #endif
 
 int av_packet_add_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
                             uint8_t *data, size_t size)
 {
+    AVPacketSideData *tmp;
     int elems = pkt->side_data_elems;
 
     if ((unsigned)elems + 1 > INT_MAX / sizeof(*pkt->side_data))
         return AVERROR(ERANGE);
 
-    pkt->side_data = av_realloc(pkt->side_data,
-                                (elems + 1) * sizeof(*pkt->side_data));
-    if (!pkt->side_data)
+    tmp = av_realloc(pkt->side_data, (elems + 1) * sizeof(*tmp));
+    if (!tmp)
         return AVERROR(ENOMEM);
 
+    pkt->side_data = tmp;
     pkt->side_data[elems].data = data;
     pkt->side_data[elems].size = size;
     pkt->side_data[elems].type = type;
     pkt->side_data_elems++;
 
     return 0;
 }
 
@@ -576,17 +581,18 @@ int av_packet_ref(AVPacket *dst, const A
     ret = av_packet_copy_props(dst, src);
     if (ret < 0)
         return ret;
 
     if (!src->buf) {
         ret = packet_alloc(&dst->buf, src->size);
         if (ret < 0)
             goto fail;
-        memcpy(dst->buf->data, src->data, src->size);
+        if (src->size)
+            memcpy(dst->buf->data, src->data, src->size);
 
         dst->data = dst->buf->data;
     } else {
         dst->buf = av_buffer_ref(src->buf);
         if (!dst->buf) {
             ret = AVERROR(ENOMEM);
             goto fail;
         }
--- a/media/ffvpx/libavcodec/bsf.h
+++ b/media/ffvpx/libavcodec/bsf.h
@@ -23,11 +23,22 @@
 
 /**
  * Called by the bitstream filters to get the next packet for filtering.
  * The filter is responsible for either freeing the packet or passing it to the
  * caller.
  */
 int ff_bsf_get_packet(AVBSFContext *ctx, AVPacket **pkt);
 
+/**
+ * Called by bitstream filters to get packet for filtering.
+ * The reference to packet is moved to provided packet structure.
+ *
+ * @param ctx pointer to AVBSFContext of filter
+ * @param pkt pointer to packet to move reference to
+ *
+ * @return 0>= on success, negative AVERROR in case of failure
+ */
+int ff_bsf_get_packet_ref(AVBSFContext *ctx, AVPacket *pkt);
+
 const AVClass *ff_bsf_child_class_next(const AVClass *prev);
 
 #endif /* AVCODEC_BSF_H */
--- a/media/ffvpx/libavcodec/dummy_funcs.c
+++ b/media/ffvpx/libavcodec/dummy_funcs.c
@@ -57,16 +57,27 @@ AVHWAccel ff_vc1_mmal_hwaccel;
 AVHWAccel ff_vp9_d3d11va_hwaccel;
 AVHWAccel ff_vp9_dxva2_hwaccel;
 AVHWAccel ff_vp9_vaapi_hwaccel;
 AVHWAccel ff_vp9_cuvid_hwaccel;
 AVHWAccel ff_vp8_cuvid_hwaccel;
 AVHWAccel ff_vc1_cuvid_hwaccel;
 AVHWAccel ff_hevc_cuvid_hwaccel;
 AVHWAccel ff_h264_cuvid_hwaccel;
+/* Added by FFmpeg 3.2 */
+AVHWAccel ff_h263_cuvid_hwaccel;
+AVHWAccel ff_mjpeg_cuvid_hwaccel;
+AVHWAccel ff_mpeg1_cuvid_hwaccel;
+AVHWAccel ff_mpeg2_cuvid_hwaccel;
+AVHWAccel ff_mpeg4_cuvid_hwaccel;
+AVHWAccel ff_h264_mediacodec_hwaccel;
+AVHWAccel ff_hevc_mediacodec_hwaccel;
+AVHWAccel ff_mpeg4_mediacodec_hwaccel;
+AVHWAccel ff_vp8_mediacodec_hwaccel;
+AVHWAccel ff_vp9_mediacodec_hwaccel;
 
 AVCodec ff_a64multi_encoder;
 AVCodec ff_a64multi5_encoder;
 AVCodec ff_aasc_decoder;
 AVCodec ff_aic_decoder;
 AVCodec ff_alias_pix_encoder;
 AVCodec ff_alias_pix_decoder;
 AVCodec ff_amv_encoder;
@@ -708,16 +719,33 @@ AVCodec ff_adpcm_mtaf_decoder;
 AVCodec ff_adpcm_ima_dat4_decoder;
 AVCodec ff_dst_decoder;
 AVCodec ff_ylc_decoder;
 AVCodec ff_truemotion2rt_decoder;
 AVCodec ff_sheervideo_decoder;
 AVCodec ff_magicyuv_decoder;
 AVCodec ff_m101_decoder;
 AVCodec ff_h264_mediacodec_decoder;
+/* Added by FFmpeg 3.2 */
+AVCodec ff_vp9_mediacodec_decoder;
+AVCodec ff_vp8_mediacodec_decoder;
+AVCodec ff_mpeg4_mediacodec_decoder;
+AVCodec ff_mpeg4_cuvid_decoder;
+AVCodec ff_mpeg2_cuvid_decoder;
+AVCodec ff_mpeg1_cuvid_decoder;
+AVCodec ff_mjpeg_cuvid_decoder;
+AVCodec ff_hevc_mediacodec_decoder;
+AVCodec ff_h263_cuvid_decoder;
+AVCodec ff_libopenh264_decoder;
+AVCodec ff_pcm_s64le_decoder;
+AVCodec ff_pcm_s64le_encoder;
+AVCodec ff_pcm_s64be_decoder;
+AVCodec ff_pcm_s64be_encoder;
+AVCodec ff_truehd_encoder;
+AVCodec ff_mlp_encoder;
 
 AVCodecParser ff_aac_parser;
 AVCodecParser ff_aac_latm_parser;
 AVCodecParser ff_ac3_parser;
 AVCodecParser ff_adx_parser;
 AVCodecParser ff_bmp_parser;
 AVCodecParser ff_cavsvideo_parser;
 AVCodecParser ff_cook_parser;
--- a/media/ffvpx/libavcodec/h264dsp.h
+++ b/media/ffvpx/libavcodec/h264dsp.h
@@ -23,21 +23,22 @@
  * H.264 DSP functions.
  * @author Michael Niedermayer <michaelni@gmx.at>
  */
 
 #ifndef AVCODEC_H264DSP_H
 #define AVCODEC_H264DSP_H
 
 #include <stdint.h>
+#include <stddef.h>
 
-typedef void (*h264_weight_func)(uint8_t *block, int stride, int height,
+typedef void (*h264_weight_func)(uint8_t *block, ptrdiff_t stride, int height,
                                  int log2_denom, int weight, int offset);
 typedef void (*h264_biweight_func)(uint8_t *dst, uint8_t *src,
-                                   int stride, int height, int log2_denom,
+                                   ptrdiff_t stride, int height, int log2_denom,
                                    int weightd, int weights, int offset);
 
 /**
  * Context for storing H.264 DSP functions
  */
 typedef struct H264DSPContext {
     /* weighted MC */
     h264_weight_func weight_h264_pixels_tab[4];
--- a/media/ffvpx/libavcodec/imgconvert.c
+++ b/media/ffvpx/libavcodec/imgconvert.c
@@ -52,29 +52,21 @@ int avcodec_get_pix_fmt_loss(enum AVPixe
 }
 
 enum AVPixelFormat avcodec_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
                                             enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr)
 {
     return av_find_best_pix_fmt_of_2(dst_pix_fmt1, dst_pix_fmt2, src_pix_fmt, has_alpha, loss_ptr);
 }
 
-#if AV_HAVE_INCOMPATIBLE_LIBAV_ABI
-enum AVPixelFormat avcodec_find_best_pix_fmt2(const enum AVPixelFormat *pix_fmt_list,
-                                            enum AVPixelFormat src_pix_fmt,
-                                            int has_alpha, int *loss_ptr){
-    return avcodec_find_best_pix_fmt_of_list(pix_fmt_list, src_pix_fmt, has_alpha, loss_ptr);
-}
-#else
 enum AVPixelFormat avcodec_find_best_pix_fmt2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
                                             enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr)
 {
     return avcodec_find_best_pix_fmt_of_2(dst_pix_fmt1, dst_pix_fmt2, src_pix_fmt, has_alpha, loss_ptr);
 }
-#endif
 
 enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(const enum AVPixelFormat *pix_fmt_list,
                                             enum AVPixelFormat src_pix_fmt,
                                             int has_alpha, int *loss_ptr){
     int i;
 
     enum AVPixelFormat best = AV_PIX_FMT_NONE;
 
--- a/media/ffvpx/libavcodec/internal.h
+++ b/media/ffvpx/libavcodec/internal.h
@@ -168,16 +168,17 @@ typedef struct AVCodecInternal {
 
     /**
      * buffers for using new encode/decode API through legacy API
      */
     AVPacket *buffer_pkt;
     int buffer_pkt_valid; // encoding: packet without data can be valid
     AVFrame *buffer_frame;
     int draining_done;
+    int showed_multi_packet_warning;
 } AVCodecInternal;
 
 struct AVCodecDefault {
     const uint8_t *key;
     const uint8_t *value;
 };
 
 extern const uint8_t ff_log2_run[41];
--- a/media/ffvpx/libavcodec/me_cmp.h
+++ b/media/ffvpx/libavcodec/me_cmp.h
@@ -71,16 +71,17 @@ typedef struct MECmpContext {
     me_cmp_func me_pre_cmp[6];
     me_cmp_func me_cmp[6];
     me_cmp_func me_sub_cmp[6];
     me_cmp_func mb_cmp[6];
     me_cmp_func ildct_cmp[6]; // only width 16 used
     me_cmp_func frame_skip_cmp[6]; // only width 8 used
 
     me_cmp_func pix_abs[2][4];
+    me_cmp_func median_sad[2];
 } MECmpContext;
 
 void ff_me_cmp_init_static(void);
 
 int ff_check_alignment(void);
 
 void ff_me_cmp_init(MECmpContext *c, AVCodecContext *avctx);
 void ff_me_cmp_init_alpha(MECmpContext *c, AVCodecContext *avctx);
--- a/media/ffvpx/libavcodec/mpegvideo.h
+++ b/media/ffvpx/libavcodec/mpegvideo.h
@@ -589,17 +589,18 @@ enum rc_strategy {
 { "bit",    "Number of bits needed for the block", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_BIT }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
 { "rd",     "Rate distortion optimal, slow", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_RD }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
 { "zero",   "Zero", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_ZERO }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
 { "vsad",   "Sum of absolute vertical differences", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_VSAD }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
 { "vsse",   "Sum of squared vertical differences", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_VSSE }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
 { "nsse",   "Noise preserving sum of squared differences", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_NSSE }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
 { "dct264", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_DCT264 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
 { "dctmax", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
-{ "chroma", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_CHROMA }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }
+{ "chroma", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_CHROMA }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
+{ "msad",   "Sum of absolute differences, median predicted", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_MEDIAN_SAD }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }
 
 #ifndef FF_MPV_OFFSET
 #define FF_MPV_OFFSET(x) offsetof(MpegEncContext, x)
 #endif
 #define FF_MPV_OPT_FLAGS (AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM)
 #define FF_MPV_COMMON_OPTS \
 FF_MPV_OPT_CMP_FUNC, \
 { "mpv_flags",      "Flags common for all mpegvideo-based encoders.", FF_MPV_OFFSET(mpv_flags), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "mpv_flags" },\
--- a/media/ffvpx/libavcodec/parser.c
+++ b/media/ffvpx/libavcodec/parser.c
@@ -177,16 +177,21 @@ int av_parser_parse2(AVCodecParserContex
         s->last_dts        = s->dts;
         s->last_pos        = s->pos;
         ff_fetch_timestamp(s, 0, 0, 0);
     }
     /* WARNING: the returned index can be negative */
     index = s->parser->parser_parse(s, avctx, (const uint8_t **) poutbuf,
                                     poutbuf_size, buf, buf_size);
     av_assert0(index > -0x20000000); // The API does not allow returning AVERROR codes
+#define FILL(name) if(s->name > 0 && avctx->name <= 0) avctx->name = s->name
+    if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) {
+        FILL(field_order);
+    }
+
     /* update the file pointer */
     if (*poutbuf_size) {
         /* fill the data for the current frame */
         s->frame_offset = s->next_frame_offset;
 
         /* offset of the next frame */
         s->next_frame_offset = s->cur_offset + index;
         s->fetch_timestamp   = 1;
--- a/media/ffvpx/libavcodec/raw.c
+++ b/media/ffvpx/libavcodec/raw.c
@@ -26,16 +26,17 @@
 
 #include "avcodec.h"
 #include "raw.h"
 #include "libavutil/common.h"
 
 const PixelFormatTag ff_raw_pix_fmt_tags[] = {
     { AV_PIX_FMT_YUV420P, MKTAG('I', '4', '2', '0') }, /* Planar formats */
     { AV_PIX_FMT_YUV420P, MKTAG('I', 'Y', 'U', 'V') },
+    { AV_PIX_FMT_YUV420P, MKTAG('y', 'v', '1', '2') },
     { AV_PIX_FMT_YUV420P, MKTAG('Y', 'V', '1', '2') },
     { AV_PIX_FMT_YUV410P, MKTAG('Y', 'U', 'V', '9') },
     { AV_PIX_FMT_YUV410P, MKTAG('Y', 'V', 'U', '9') },
     { AV_PIX_FMT_YUV411P, MKTAG('Y', '4', '1', 'B') },
     { AV_PIX_FMT_YUV422P, MKTAG('Y', '4', '2', 'B') },
     { AV_PIX_FMT_YUV422P, MKTAG('P', '4', '2', '2') },
     { AV_PIX_FMT_YUV422P, MKTAG('Y', 'V', '1', '6') },
     /* yuvjXXX formats are deprecated hacks specific to libav*,
@@ -182,16 +183,24 @@ const PixelFormatTag ff_raw_pix_fmt_tags
     { AV_PIX_FMT_GBRP10BE,     MKTAG(10 , 00 , '3', 'G') },
     { AV_PIX_FMT_GBRP12LE,     MKTAG('G', '3', 00 , 12 ) },
     { AV_PIX_FMT_GBRP12BE,     MKTAG(12 , 00 , '3', 'G') },
     { AV_PIX_FMT_GBRP14LE,     MKTAG('G', '3', 00 , 14 ) },
     { AV_PIX_FMT_GBRP14BE,     MKTAG(14 , 00 , '3', 'G') },
     { AV_PIX_FMT_GBRP16LE,     MKTAG('G', '3', 00 , 16 ) },
     { AV_PIX_FMT_GBRP16BE,     MKTAG(16 , 00 , '3', 'G') },
 
+    { AV_PIX_FMT_GBRAP,        MKTAG('G', '4', 00 ,  8 ) },
+    { AV_PIX_FMT_GBRAP10LE,    MKTAG('G', '4', 00 , 10 ) },
+    { AV_PIX_FMT_GBRAP10BE,    MKTAG(10 , 00 , '4', 'G') },
+    { AV_PIX_FMT_GBRAP12LE,    MKTAG('G', '4', 00 , 12 ) },
+    { AV_PIX_FMT_GBRAP12BE,    MKTAG(12 , 00 , '4', 'G') },
+    { AV_PIX_FMT_GBRAP16LE,    MKTAG('G', '4', 00 , 16 ) },
+    { AV_PIX_FMT_GBRAP16BE,    MKTAG(16 , 00 , '4', 'G') },
+
     { AV_PIX_FMT_XYZ12LE,      MKTAG('X', 'Y', 'Z' , 36 ) },
     { AV_PIX_FMT_XYZ12BE,      MKTAG(36 , 'Z' , 'Y', 'X') },
 
     { AV_PIX_FMT_BAYER_BGGR8,    MKTAG(0xBA, 'B', 'G', 8   ) },
     { AV_PIX_FMT_BAYER_BGGR16LE, MKTAG(0xBA, 'B', 'G', 16  ) },
     { AV_PIX_FMT_BAYER_BGGR16BE, MKTAG(16  , 'G', 'B', 0xBA) },
     { AV_PIX_FMT_BAYER_RGGB8,    MKTAG(0xBA, 'R', 'G', 8   ) },
     { AV_PIX_FMT_BAYER_RGGB16LE, MKTAG(0xBA, 'R', 'G', 16  ) },
@@ -219,16 +228,17 @@ const PixelFormatTag ff_raw_pix_fmt_tags
     { AV_PIX_FMT_BGR24,   MKTAG('2', '4', 'B', 'G') },
     { AV_PIX_FMT_BGR24,   MKTAG('b', 'x', 'b', 'g') },
     { AV_PIX_FMT_BGRA,    MKTAG('B', 'G', 'R', 'A') },
     { AV_PIX_FMT_RGBA,    MKTAG('R', 'G', 'B', 'A') },
     { AV_PIX_FMT_RGB24,   MKTAG('b', 'x', 'r', 'g') },
     { AV_PIX_FMT_ABGR,    MKTAG('A', 'B', 'G', 'R') },
     { AV_PIX_FMT_GRAY16BE,MKTAG('b', '1', '6', 'g') },
     { AV_PIX_FMT_RGB48BE, MKTAG('b', '4', '8', 'r') },
+    { AV_PIX_FMT_RGBA64BE,MKTAG('b', '6', '4', 'a') },
 
     /* vlc */
     { AV_PIX_FMT_YUV410P,     MKTAG('I', '4', '1', '0') },
     { AV_PIX_FMT_YUV411P,     MKTAG('I', '4', '1', '1') },
     { AV_PIX_FMT_YUV422P,     MKTAG('I', '4', '2', '2') },
     { AV_PIX_FMT_YUV440P,     MKTAG('I', '4', '4', '0') },
     { AV_PIX_FMT_YUV444P,     MKTAG('I', '4', '4', '4') },
     { AV_PIX_FMT_YUVJ420P,    MKTAG('J', '4', '2', '0') },
--- a/media/ffvpx/libavcodec/utils.c
+++ b/media/ffvpx/libavcodec/utils.c
@@ -719,16 +719,19 @@ void ff_color_frame(AVFrame *frame, cons
         }
     }
 }
 
 int avcodec_default_get_buffer2(AVCodecContext *avctx, AVFrame *frame, int flags)
 {
     int ret;
 
+    if (avctx->hw_frames_ctx)
+        return av_hwframe_get_buffer(avctx->hw_frames_ctx, frame, 0);
+
     if ((ret = update_frame_pool(avctx, frame)) < 0)
         return ret;
 
     switch (avctx->codec_type) {
     case AVMEDIA_TYPE_VIDEO:
         return video_get_buffer(avctx, frame);
     case AVMEDIA_TYPE_AUDIO:
         return audio_get_buffer(avctx, frame);
@@ -760,17 +763,22 @@ int ff_init_buffer_info(AVCodecContext *
         { AV_PKT_DATA_REPLAYGAIN ,                AV_FRAME_DATA_REPLAYGAIN },
         { AV_PKT_DATA_DISPLAYMATRIX,              AV_FRAME_DATA_DISPLAYMATRIX },
         { AV_PKT_DATA_STEREO3D,                   AV_FRAME_DATA_STEREO3D },
         { AV_PKT_DATA_AUDIO_SERVICE_TYPE,         AV_FRAME_DATA_AUDIO_SERVICE_TYPE },
         { AV_PKT_DATA_MASTERING_DISPLAY_METADATA, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA },
     };
 
     if (pkt) {
+        frame->pts = pkt->pts;
+#if FF_API_PKT_PTS
+FF_DISABLE_DEPRECATION_WARNINGS
         frame->pkt_pts = pkt->pts;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
         av_frame_set_pkt_pos     (frame, pkt->pos);
         av_frame_set_pkt_duration(frame, pkt->duration);
         av_frame_set_pkt_size    (frame, pkt->size);
 
         for (i = 0; i < FF_ARRAY_ELEMS(sd); i++) {
             int size;
             uint8_t *packet_sd = av_packet_get_side_data(pkt, sd[i].packet, &size);
             if (packet_sd) {
@@ -779,18 +787,29 @@ int ff_init_buffer_info(AVCodecContext *
                                                                    size);
                 if (!frame_sd)
                     return AVERROR(ENOMEM);
 
                 memcpy(frame_sd->data, packet_sd, size);
             }
         }
         add_metadata_from_side_data(pkt, frame);
+
+        if (pkt->flags & AV_PKT_FLAG_DISCARD) {
+            frame->flags |= AV_FRAME_FLAG_DISCARD;
+        } else {
+            frame->flags = (frame->flags & ~AV_FRAME_FLAG_DISCARD);
+        }
     } else {
+        frame->pts = AV_NOPTS_VALUE;
+#if FF_API_PKT_PTS
+FF_DISABLE_DEPRECATION_WARNINGS
         frame->pkt_pts = AV_NOPTS_VALUE;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
         av_frame_set_pkt_pos     (frame, -1);
         av_frame_set_pkt_duration(frame, 0);
         av_frame_set_pkt_size    (frame, -1);
     }
     frame->reordered_opaque = avctx->reordered_opaque;
 
     if (frame->color_primaries == AVCOL_PRI_UNSPECIFIED)
         frame->color_primaries = avctx->color_primaries;
@@ -986,28 +1005,30 @@ int avcodec_default_execute(AVCodecConte
 {
     int i;
 
     for (i = 0; i < count; i++) {
         int r = func(c, (char *)arg + i * size);
         if (ret)
             ret[i] = r;
     }
+    emms_c();
     return 0;
 }
 
 int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int jobnr, int threadnr), void *arg, int *ret, int count)
 {
     int i;
 
     for (i = 0; i < count; i++) {
         int r = func(c, arg, i, 0);
         if (ret)
             ret[i] = r;
     }
+    emms_c();
     return 0;
 }
 
 enum AVPixelFormat avpriv_find_pix_fmt(const PixelFormatTag *tags,
                                        unsigned int fourcc)
 {
     while (tags->pix_fmt >= 0) {
         if (tags->fourcc == fourcc)
@@ -1108,31 +1129,43 @@ int ff_get_format(AVCodecContext *avctx,
     memcpy(choices, fmt, (n + 1) * sizeof(*choices));
 
     for (;;) {
         if (avctx->hwaccel && avctx->hwaccel->uninit)
             avctx->hwaccel->uninit(avctx);
         av_freep(&avctx->internal->hwaccel_priv_data);
         avctx->hwaccel = NULL;
 
+        av_buffer_unref(&avctx->hw_frames_ctx);
+
         ret = avctx->get_format(avctx, choices);
 
         desc = av_pix_fmt_desc_get(ret);
         if (!desc) {
             ret = AV_PIX_FMT_NONE;
             break;
         }
 
         if (!(desc->flags & AV_PIX_FMT_FLAG_HWACCEL))
             break;
 #if FF_API_CAP_VDPAU
         if (avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU)
             break;
 #endif
 
+        if (avctx->hw_frames_ctx) {
+            AVHWFramesContext *hw_frames_ctx = (AVHWFramesContext*)avctx->hw_frames_ctx->data;
+            if (hw_frames_ctx->format != ret) {
+                av_log(avctx, AV_LOG_ERROR, "Format returned from get_buffer() "
+                       "does not match the format of provided AVHWFramesContext\n");
+                ret = AV_PIX_FMT_NONE;
+                break;
+            }
+        }
+
         if (!setup_hwaccel(avctx, ret, desc->name))
             break;
 
         /* Remove failed hwaccel from choices */
         for (n = 0; choices[n] != ret; n++)
             av_assert0(choices[n] != AV_PIX_FMT_NONE);
 
         do
@@ -1384,20 +1417,19 @@ int attribute_align_arg avcodec_open2(AV
         if (ret < 0) {
             goto free_and_end;
         }
     }
     if (!HAVE_THREADS && !(codec->capabilities & AV_CODEC_CAP_AUTO_THREADS))
         avctx->thread_count = 1;
 
     if (avctx->codec->max_lowres < avctx->lowres || avctx->lowres < 0) {
-        av_log(avctx, AV_LOG_ERROR, "The maximum value for lowres supported by the decoder is %d\n",
+        av_log(avctx, AV_LOG_WARNING, "The maximum value for lowres supported by the decoder is %d\n",
                avctx->codec->max_lowres);
-        ret = AVERROR(EINVAL);
-        goto free_and_end;
+        avctx->lowres = avctx->codec->max_lowres;
     }
 
 #if FF_API_VISMV
     if (avctx->debug_mv)
         av_log(avctx, AV_LOG_WARNING, "The 'vismv' option is deprecated, "
                "see the codecview filter instead.\n");
 #endif
 
@@ -1957,16 +1989,18 @@ int attribute_align_arg avcodec_encode_v
     if (frame && (frame->width == 0 || frame->height == 0))
         av_log(avctx, AV_LOG_WARNING, "AVFrame.width or height is not set\n");
 
     av_assert0(avctx->codec->encode2);
 
     ret = avctx->codec->encode2(avctx, avpkt, frame, got_packet_ptr);
     av_assert0(ret <= 0);
 
+    emms_c();
+
     if (avpkt->data && avpkt->data == avctx->internal->byte_buffer) {
         needs_realloc = 0;
         if (user_pkt.data) {
             if (user_pkt.size >= avpkt->size) {
                 memcpy(user_pkt.data, avpkt->data, avpkt->size);
             } else {
                 av_log(avctx, AV_LOG_ERROR, "Provided packet is too small, needs to be %d\n", avpkt->size);
                 avpkt->size = user_pkt.size;
@@ -1994,17 +2028,16 @@ int attribute_align_arg avcodec_encode_v
         }
 
         avctx->frame_number++;
     }
 
     if (ret < 0 || !*got_packet_ptr)
         av_packet_unref(avpkt);
 
-    emms_c();
     return ret;
 }
 
 int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size,
                             const AVSubtitle *sub)
 {
     int ret;
     if (sub->start_display_time) {
@@ -2018,17 +2051,17 @@ int avcodec_encode_subtitle(AVCodecConte
 }
 
 /**
  * Attempt to guess proper monotonic timestamps for decoded video frames
  * which might have incorrect times. Input timestamps may wrap around, in
  * which case the output will as well.
  *
  * @param pts the pts field of the decoded AVPacket, as passed through
- * AVFrame.pkt_pts
+ * AVFrame.pts
  * @param dts the dts field of the decoded AVPacket
  * @return one of the input values, may be AV_NOPTS_VALUE
  */
 static int64_t guess_correct_pts(AVCodecContext *ctx,
                                  int64_t reordered_pts, int64_t dts)
 {
     int64_t pts = AV_NOPTS_VALUE;
 
@@ -2243,28 +2276,30 @@ fail:
         emms_c(); //needed to avoid an emms_c() call before every return;
 
         avctx->internal->pkt = NULL;
         if (did_split) {
             av_packet_free_side_data(&tmp);
             if(ret == tmp.size)
                 ret = avpkt->size;
         }
-
+        if (picture->flags & AV_FRAME_FLAG_DISCARD) {
+            *got_picture_ptr = 0;
+        }
         if (*got_picture_ptr) {
             if (!avctx->refcounted_frames) {
                 int err = unrefcount_frame(avci, picture);
                 if (err < 0)
                     return err;
             }
 
             avctx->frame_number++;
             av_frame_set_best_effort_timestamp(picture,
                                                guess_correct_pts(avctx,
-                                                                 picture->pkt_pts,
+                                                                 picture->pts,
                                                                  picture->pkt_dts));
         } else
             av_frame_unref(picture);
     } else
         ret = 0;
 
     /* many decoders assign whole AVFrames, thus overwriting extended_data;
      * make sure it's set correctly */
@@ -2327,17 +2362,17 @@ int attribute_align_arg avcodec_decode_a
             ret = avctx->codec->decode(avctx, frame, got_frame_ptr, &tmp);
             av_assert0(ret <= tmp.size);
             frame->pkt_dts = avpkt->dts;
         }
         if (ret >= 0 && *got_frame_ptr) {
             avctx->frame_number++;
             av_frame_set_best_effort_timestamp(frame,
                                                guess_correct_pts(avctx,
-                                                                 frame->pkt_pts,
+                                                                 frame->pts,
                                                                  frame->pkt_dts));
             if (frame->format == AV_SAMPLE_FMT_NONE)
                 frame->format = avctx->sample_fmt;
             if (!frame->channel_layout)
                 frame->channel_layout = avctx->channel_layout;
             if (!av_frame_get_channels(frame))
                 av_frame_set_channels(frame, avctx->channels);
             if (!frame->sample_rate)
@@ -2348,32 +2383,45 @@ int attribute_align_arg avcodec_decode_a
         if(side && side_size>=10) {
             avctx->internal->skip_samples = AV_RL32(side);
             discard_padding = AV_RL32(side + 4);
             av_log(avctx, AV_LOG_DEBUG, "skip %d / discard %d samples due to side data\n",
                    avctx->internal->skip_samples, (int)discard_padding);
             skip_reason = AV_RL8(side + 8);
             discard_reason = AV_RL8(side + 9);
         }
+
+        if ((frame->flags & AV_FRAME_FLAG_DISCARD) && *got_frame_ptr &&
+            !(avctx->flags2 & AV_CODEC_FLAG2_SKIP_MANUAL)) {
+            avctx->internal->skip_samples -= frame->nb_samples;
+            *got_frame_ptr = 0;
+        }
+
         if (avctx->internal->skip_samples > 0 && *got_frame_ptr &&
             !(avctx->flags2 & AV_CODEC_FLAG2_SKIP_MANUAL)) {
             if(frame->nb_samples <= avctx->internal->skip_samples){
                 *got_frame_ptr = 0;
                 avctx->internal->skip_samples -= frame->nb_samples;
                 av_log(avctx, AV_LOG_DEBUG, "skip whole frame, skip left: %d\n",
                        avctx->internal->skip_samples);
             } else {
                 av_samples_copy(frame->extended_data, frame->extended_data, 0, avctx->internal->skip_samples,
                                 frame->nb_samples - avctx->internal->skip_samples, avctx->channels, frame->format);
                 if(avctx->pkt_timebase.num && avctx->sample_rate) {
                     int64_t diff_ts = av_rescale_q(avctx->internal->skip_samples,
                                                    (AVRational){1, avctx->sample_rate},
                                                    avctx->pkt_timebase);
+                    if(frame->pts!=AV_NOPTS_VALUE)
+                        frame->pts += diff_ts;
+#if FF_API_PKT_PTS
+FF_DISABLE_DEPRECATION_WARNINGS
                     if(frame->pkt_pts!=AV_NOPTS_VALUE)
                         frame->pkt_pts += diff_ts;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
                     if(frame->pkt_dts!=AV_NOPTS_VALUE)
                         frame->pkt_dts += diff_ts;
                     if (av_frame_get_pkt_duration(frame) >= diff_ts)
                         av_frame_set_pkt_duration(frame, av_frame_get_pkt_duration(frame) - diff_ts);
                 } else {
                     av_log(avctx, AV_LOG_WARNING, "Could not update timestamps for skipped samples.\n");
                 }
                 av_log(avctx, AV_LOG_DEBUG, "skip %d/%d samples\n",
@@ -2427,16 +2475,22 @@ fail:
                     return err;
             }
         } else
             av_frame_unref(frame);
     }
 
     av_assert0(ret <= avpkt->size);
 
+    if (!avci->showed_multi_packet_warning &&
+        ret >= 0 && ret != avpkt->size && !(avctx->codec->capabilities & AV_CODEC_CAP_SUBFRAMES)) {
+            av_log(avctx, AV_LOG_WARNING, "Multiple frames in a packet.\n");
+        avci->showed_multi_packet_warning = 1;
+    }
+
     return ret;
 }
 
 #define UTF8_MAX_BYTES 4 /* 5 and 6 bytes sequences should not be used */
 static int recode_subtitle(AVCodecContext *avctx,
                            AVPacket *outpkt, const AVPacket *inpkt)
 {
 #if CONFIG_ICONV
@@ -2779,16 +2833,19 @@ int attribute_align_arg avcodec_send_pac
     int ret;
 
     if (!avcodec_is_open(avctx) || !av_codec_is_decoder(avctx->codec))
         return AVERROR(EINVAL);
 
     if (avctx->internal->draining)
         return AVERROR_EOF;
 
+    if (avpkt && !avpkt->size && avpkt->data)
+        return AVERROR(EINVAL);
+
     if (!avpkt || !avpkt->size) {
         avctx->internal->draining = 1;
         avpkt = NULL;
 
         if (!(avctx->codec->capabilities & AV_CODEC_CAP_DELAY))
             return 0;
     }
 
@@ -2827,17 +2884,24 @@ int attribute_align_arg avcodec_receive_
     av_frame_unref(frame);
 
     if (!avcodec_is_open(avctx) || !av_codec_is_decoder(avctx->codec))
         return AVERROR(EINVAL);
 
     if (avctx->codec->receive_frame) {
         if (avctx->internal->draining && !(avctx->codec->capabilities & AV_CODEC_CAP_DELAY))
             return AVERROR_EOF;
-        return avctx->codec->receive_frame(avctx, frame);
+        ret = avctx->codec->receive_frame(avctx, frame);
+        if (ret >= 0) {
+            if (av_frame_get_best_effort_timestamp(frame) == AV_NOPTS_VALUE) {
+                av_frame_set_best_effort_timestamp(frame,
+                    guess_correct_pts(avctx, frame->pts, frame->pkt_dts));
+            }
+        }
+        return ret;
     }
 
     // Emulation via old API.
 
     if (!avctx->internal->buffer_frame->buf[0]) {
         if (!avctx->internal->buffer_pkt->size && !avctx->internal->draining)
             return AVERROR(EAGAIN);
 
@@ -3185,17 +3249,31 @@ void avcodec_string(char *buf, int buf_s
                                 av_color_space_name(enc->colorspace),
                                 av_color_primaries_name(enc->color_primaries),
                                 av_color_transfer_name(enc->color_trc));
                 } else
                     av_strlcatf(detail, sizeof(detail), "%s, ",
                                 av_get_colorspace_name(enc->colorspace));
             }
 
-            if (av_log_get_level() >= AV_LOG_DEBUG &&
+            if (enc->field_order != AV_FIELD_UNKNOWN) {
+                const char *field_order = "progressive";
+                if (enc->field_order == AV_FIELD_TT)
+                    field_order = "top first";
+                else if (enc->field_order == AV_FIELD_BB)
+                    field_order = "bottom first";
+                else if (enc->field_order == AV_FIELD_TB)
+                    field_order = "top coded first (swapped)";
+                else if (enc->field_order == AV_FIELD_BT)
+                    field_order = "bottom coded first (swapped)";
+
+                av_strlcatf(detail, sizeof(detail), "%s, ", field_order);
+            }
+
+            if (av_log_get_level() >= AV_LOG_VERBOSE &&
                 enc->chroma_sample_location != AVCHROMA_LOC_UNSPECIFIED)
                 av_strlcatf(detail, sizeof(detail), "%s, ",
                             av_chroma_location_name(enc->chroma_sample_location));
 
             if (strlen(detail) > 1) {
                 detail[strlen(detail) - 2] = 0;
                 av_strlcatf(buf, buf_size, "%s)", detail);
             }
@@ -3254,16 +3332,24 @@ void avcodec_string(char *buf, int buf_s
         if (enc->sample_fmt != AV_SAMPLE_FMT_NONE) {
             snprintf(buf + strlen(buf), buf_size - strlen(buf),
                      ", %s", av_get_sample_fmt_name(enc->sample_fmt));
         }
         if (   enc->bits_per_raw_sample > 0
             && enc->bits_per_raw_sample != av_get_bytes_per_sample(enc->sample_fmt) * 8)
             snprintf(buf + strlen(buf), buf_size - strlen(buf),
                      " (%d bit)", enc->bits_per_raw_sample);
+        if (av_log_get_level() >= AV_LOG_VERBOSE) {
+            if (enc->initial_padding)
+                snprintf(buf + strlen(buf), buf_size - strlen(buf),
+                         ", delay %d", enc->initial_padding);
+            if (enc->trailing_padding)
+                snprintf(buf + strlen(buf), buf_size - strlen(buf),
+                         ", padding %d", enc->trailing_padding);
+        }
         break;
     case AVMEDIA_TYPE_DATA:
         if (av_log_get_level() >= AV_LOG_DEBUG) {
             int g = av_gcd(enc->time_base.num, enc->time_base.den);
             if (g)
                 snprintf(buf + strlen(buf), buf_size - strlen(buf),
                          ", %d/%d",
                          enc->time_base.num / g, enc->time_base.den / g);
@@ -3411,16 +3497,18 @@ int av_get_exact_bits_per_sample(enum AV
     case AV_CODEC_ID_PCM_S32LE_PLANAR:
     case AV_CODEC_ID_PCM_U32BE:
     case AV_CODEC_ID_PCM_U32LE:
     case AV_CODEC_ID_PCM_F32BE:
     case AV_CODEC_ID_PCM_F32LE:
         return 32;
     case AV_CODEC_ID_PCM_F64BE:
     case AV_CODEC_ID_PCM_F64LE:
+    case AV_CODEC_ID_PCM_S64BE:
+    case AV_CODEC_ID_PCM_S64LE:
         return 64;
     default:
         return 0;
     }
 }
 
 enum AVCodecID av_get_pcm_codec(enum AVSampleFormat fmt, int be)
 {
@@ -3428,16 +3516,17 @@ enum AVCodecID av_get_pcm_codec(enum AVS
         [AV_SAMPLE_FMT_U8  ] = { AV_CODEC_ID_PCM_U8,    AV_CODEC_ID_PCM_U8    },
         [AV_SAMPLE_FMT_S16 ] = { AV_CODEC_ID_PCM_S16LE, AV_CODEC_ID_PCM_S16BE },
         [AV_SAMPLE_FMT_S32 ] = { AV_CODEC_ID_PCM_S32LE, AV_CODEC_ID_PCM_S32BE },
         [AV_SAMPLE_FMT_FLT ] = { AV_CODEC_ID_PCM_F32LE, AV_CODEC_ID_PCM_F32BE },
         [AV_SAMPLE_FMT_DBL ] = { AV_CODEC_ID_PCM_F64LE, AV_CODEC_ID_PCM_F64BE },
         [AV_SAMPLE_FMT_U8P ] = { AV_CODEC_ID_PCM_U8,    AV_CODEC_ID_PCM_U8    },
         [AV_SAMPLE_FMT_S16P] = { AV_CODEC_ID_PCM_S16LE, AV_CODEC_ID_PCM_S16BE },
         [AV_SAMPLE_FMT_S32P] = { AV_CODEC_ID_PCM_S32LE, AV_CODEC_ID_PCM_S32BE },
+        [AV_SAMPLE_FMT_S64P] = { AV_CODEC_ID_PCM_S64LE, AV_CODEC_ID_PCM_S64BE },
         [AV_SAMPLE_FMT_FLTP] = { AV_CODEC_ID_PCM_F32LE, AV_CODEC_ID_PCM_F32BE },
         [AV_SAMPLE_FMT_DBLP] = { AV_CODEC_ID_PCM_F64LE, AV_CODEC_ID_PCM_F64BE },
     };
     if (fmt < 0 || fmt >= AV_SAMPLE_FMT_NB)
         return AV_CODEC_ID_NONE;
     if (be < 0 || be > 1)
         be = AV_NE(1, 0);
     return map[fmt][be];
@@ -4099,24 +4188,25 @@ int avcodec_parameters_from_context(AVCo
         par->color_primaries     = codec->color_primaries;
         par->color_trc           = codec->color_trc;
         par->color_space         = codec->colorspace;
         par->chroma_location     = codec->chroma_sample_location;
         par->sample_aspect_ratio = codec->sample_aspect_ratio;
         par->video_delay         = codec->has_b_frames;
         break;
     case AVMEDIA_TYPE_AUDIO:
-        par->format          = codec->sample_fmt;
-        par->channel_layout  = codec->channel_layout;
-        par->channels        = codec->channels;
-        par->sample_rate     = codec->sample_rate;
-        par->block_align     = codec->block_align;
-        par->frame_size      = codec->frame_size;
-        par->initial_padding = codec->initial_padding;
-        par->seek_preroll    = codec->seek_preroll;
+        par->format           = codec->sample_fmt;
+        par->channel_layout   = codec->channel_layout;
+        par->channels         = codec->channels;
+        par->sample_rate      = codec->sample_rate;
+        par->block_align      = codec->block_align;
+        par->frame_size       = codec->frame_size;
+        par->initial_padding  = codec->initial_padding;
+        par->trailing_padding = codec->trailing_padding;
+        par->seek_preroll     = codec->seek_preroll;
         break;
     case AVMEDIA_TYPE_SUBTITLE:
         par->width  = codec->width;
         par->height = codec->height;
         break;
     }
 
     if (codec->extradata) {
@@ -4153,25 +4243,26 @@ int avcodec_parameters_to_context(AVCode
         codec->color_primaries        = par->color_primaries;
         codec->color_trc              = par->color_trc;
         codec->colorspace             = par->color_space;
         codec->chroma_sample_location = par->chroma_location;
         codec->sample_aspect_ratio    = par->sample_aspect_ratio;
         codec->has_b_frames           = par->video_delay;
         break;
     case AVMEDIA_TYPE_AUDIO:
-        codec->sample_fmt      = par->format;
-        codec->channel_layout  = par->channel_layout;
-        codec->channels        = par->channels;
-        codec->sample_rate     = par->sample_rate;
-        codec->block_align     = par->block_align;
-        codec->frame_size      = par->frame_size;
-        codec->delay           =
-        codec->initial_padding = par->initial_padding;
-        codec->seek_preroll    = par->seek_preroll;
+        codec->sample_fmt       = par->format;
+        codec->channel_layout   = par->channel_layout;
+        codec->channels         = par->channels;
+        codec->sample_rate      = par->sample_rate;
+        codec->block_align      = par->block_align;
+        codec->frame_size       = par->frame_size;
+        codec->delay            =
+        codec->initial_padding  = par->initial_padding;
+        codec->trailing_padding = par->trailing_padding;
+        codec->seek_preroll     = par->seek_preroll;
         break;
     case AVMEDIA_TYPE_SUBTITLE:
         codec->width  = par->width;
         codec->height = par->height;
         break;
     }
 
     if (par->extradata) {
--- a/media/ffvpx/libavcodec/version.h
+++ b/media/ffvpx/libavcodec/version.h
@@ -23,17 +23,17 @@
  * @file
  * @ingroup libavc
  * Libavcodec version macros.
  */
 
 #include "libavutil/version.h"
 
 #define LIBAVCODEC_VERSION_MAJOR  57
-#define LIBAVCODEC_VERSION_MINOR  48
+#define LIBAVCODEC_VERSION_MINOR  64
 #define LIBAVCODEC_VERSION_MICRO 101
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                LIBAVCODEC_VERSION_MINOR, \
                                                LIBAVCODEC_VERSION_MICRO)
 #define LIBAVCODEC_VERSION      AV_VERSION(LIBAVCODEC_VERSION_MAJOR,    \
                                            LIBAVCODEC_VERSION_MINOR,    \
                                            LIBAVCODEC_VERSION_MICRO)
--- a/media/ffvpx/libavcodec/vp9.c
+++ b/media/ffvpx/libavcodec/vp9.c
@@ -3986,17 +3986,22 @@ static int vp9_decode_frame(AVCodecConte
         return res;
     } else if (res == 0) {
         if (!s->s.refs[ref].f->buf[0]) {
             av_log(ctx, AV_LOG_ERROR, "Requested reference %d not available\n", ref);
             return AVERROR_INVALIDDATA;
         }
         if ((res = av_frame_ref(frame, s->s.refs[ref].f)) < 0)
             return res;
+        ((AVFrame *)frame)->pts = pkt->pts;
+#if FF_API_PKT_PTS
+FF_DISABLE_DEPRECATION_WARNINGS
         ((AVFrame *)frame)->pkt_pts = pkt->pts;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
         ((AVFrame *)frame)->pkt_dts = pkt->dts;
         for (i = 0; i < 8; i++) {
             if (s->next_refs[i].f->buf[0])
                 ff_thread_release_buffer(ctx, &s->next_refs[i]);
             if (s->s.refs[i].f->buf[0] &&
                 (res = ff_thread_ref_frame(&s->next_refs[i], &s->s.refs[i])) < 0)
                 return res;
         }
--- a/media/ffvpx/libavcodec/x86/h264_i386.h
+++ b/media/ffvpx/libavcodec/x86/h264_i386.h
@@ -86,42 +86,42 @@ static int decode_significance_x86(CABAC
                              AV_STRINGIFY(H264_NORM_SHIFT_OFFSET),
                              AV_STRINGIFY(H264_LPS_RANGE_OFFSET),
                              AV_STRINGIFY(H264_MLPS_STATE_OFFSET),
                              "%13")
 
         "sub  %10, %1                           \n\t"
         "mov  %2, %0                            \n\t"
         "movl %7, %%ecx                         \n\t"
-        "add  %1, %%"REG_c"                     \n\t"
+        "add  %1, %%"FF_REG_c"                  \n\t"
         "movl %%ecx, (%0)                       \n\t"
 
         "test $1, %4                            \n\t"
         " jnz 5f                                \n\t"
 
-        "add"OPSIZE"  $4, %2                    \n\t"
+        "add"FF_OPSIZE"  $4, %2                 \n\t"
 
         "4:                                     \n\t"
         "add  $1, %1                            \n\t"
         "cmp  %8, %1                            \n\t"
         " jb 3b                                 \n\t"
         "mov  %2, %0                            \n\t"
         "movl %7, %%ecx                         \n\t"
-        "add  %1, %%"REG_c"                     \n\t"
+        "add  %1, %%"FF_REG_c"                  \n\t"
         "movl %%ecx, (%0)                       \n\t"
         "5:                                     \n\t"
         "add  %9, %k0                           \n\t"
         "shr $2, %k0                            \n\t"
         : "=&q"(coeff_count), "+r"(significant_coeff_ctx_base), "+m"(index),
           "+&r"(c->low), "=&r"(bit), "+&r"(c->range)
         : "r"(c), "m"(minusstart), "m"(end), "m"(minusindex), "m"(last_off),
           "i"(offsetof(CABACContext, bytestream)),
           "i"(offsetof(CABACContext, bytestream_end))
           TABLES_ARG
-        : "%"REG_c, "memory"
+        : "%"FF_REG_c, "memory"
     );
     return coeff_count;
 }
 
 #define decode_significance_8x8 decode_significance_8x8_x86
 static int decode_significance_8x8_x86(CABACContext *c,
                                        uint8_t *significant_coeff_ctx_base,
                                        int *index, uint8_t *last_coeff_ctx_base, const uint8_t *sig_off){
@@ -178,17 +178,17 @@ static int decode_significance_8x8_x86(C
 
         "mov %2, %0                             \n\t"
         "mov %1, %6                             \n\t"
         "mov %k6, (%0)                          \n\t"
 
         "test $1, %4                            \n\t"
         " jnz 5f                                \n\t"
 
-        "add"OPSIZE"  $4, %2                    \n\t"
+        "add"FF_OPSIZE"  $4, %2                 \n\t"
 
         "4:                                     \n\t"
         "add $1, %6                             \n\t"
         "mov %6, %1                             \n\t"
         "cmp $63, %6                            \n\t"
         " jb 3b                                 \n\t"
         "mov %2, %0                             \n\t"
         "mov %k6, (%0)                          \n\t"
@@ -197,16 +197,16 @@ static int decode_significance_8x8_x86(C
         "shr $2, %k0                            \n\t"
         : "=&q"(coeff_count), "+"REG64(last), "+"REG64(index), "+&r"(c->low),
           "=&r"(bit), "+&r"(c->range), "=&r"(state)
         : "r"(c), "m"(minusindex), "m"(significant_coeff_ctx_base),
           REG64(sig_off), REG64(last_coeff_ctx_base),
           "i"(offsetof(CABACContext, bytestream)),
           "i"(offsetof(CABACContext, bytestream_end)),
           "i"(H264_LAST_COEFF_FLAG_OFFSET_8x8_OFFSET) TABLES_ARG
-        : "%"REG_c, "memory"
+        : "%"FF_REG_c, "memory"
     );
     return coeff_count;
 }
 #endif /* HAVE_7REGS && BROKEN_COMPILER */
 
 #endif /* HAVE_INLINE_ASM */
 #endif /* AVCODEC_X86_H264_I386_H */
--- a/media/ffvpx/libavcodec/x86/vp9dsp_init.c
+++ b/media/ffvpx/libavcodec/x86/vp9dsp_init.c
@@ -109,26 +109,30 @@ itxfm_funcs(8, ssse3);
 itxfm_funcs(8, avx);
 itxfm_funcs(16, sse2);
 itxfm_funcs(16, ssse3);
 itxfm_funcs(16, avx);
 itxfm_func(idct, idct, 32, sse2);
 itxfm_func(idct, idct, 32, ssse3);
 itxfm_func(idct, idct, 32, avx);
 itxfm_func(iwht, iwht, 4, mmx);
+itxfm_func(idct, idct, 16, avx2);
+itxfm_func(idct, idct, 32, avx2);
 
 #undef itxfm_func
 #undef itxfm_funcs
 
 #define lpf_funcs(size1, size2, opt) \
 void ff_vp9_loop_filter_v_##size1##_##size2##_##opt(uint8_t *dst, ptrdiff_t stride, \
                                                     int E, int I, int H); \
 void ff_vp9_loop_filter_h_##size1##_##size2##_##opt(uint8_t *dst, ptrdiff_t stride, \
                                                     int E, int I, int H)
 
+lpf_funcs(4, 8, mmxext);
+lpf_funcs(8, 8, mmxext);
 lpf_funcs(16, 16, sse2);
 lpf_funcs(16, 16, ssse3);
 lpf_funcs(16, 16, avx);
 lpf_funcs(44, 16, sse2);
 lpf_funcs(44, 16, ssse3);
 lpf_funcs(44, 16, avx);
 lpf_funcs(84, 16, sse2);
 lpf_funcs(84, 16, ssse3);
@@ -274,16 +278,20 @@ av_cold void ff_vp9dsp_init_x86(VP9DSPCo
             dsp->itxfm_add[4 /* lossless */][ADST_DCT] =
             dsp->itxfm_add[4 /* lossless */][DCT_ADST] =
             dsp->itxfm_add[4 /* lossless */][ADST_ADST] = ff_vp9_iwht_iwht_4x4_add_mmx;
         }
         init_ipred(8, mmx, v, VERT);
     }
 
     if (EXTERNAL_MMXEXT(cpu_flags)) {
+        dsp->loop_filter_8[0][0] = ff_vp9_loop_filter_h_4_8_mmxext;
+        dsp->loop_filter_8[0][1] = ff_vp9_loop_filter_v_4_8_mmxext;
+        dsp->loop_filter_8[1][0] = ff_vp9_loop_filter_h_8_8_mmxext;
+        dsp->loop_filter_8[1][1] = ff_vp9_loop_filter_v_8_8_mmxext;
         init_subpel2(4, 0, 4, put, 8, mmxext);
         init_subpel2(4, 1, 4, avg, 8, mmxext);
         init_fpel_func(4, 1,  4, avg, _8, mmxext);
         init_fpel_func(3, 1,  8, avg, _8, mmxext);
         dsp->itxfm_add[TX_4X4][DCT_DCT] = ff_vp9_idct_idct_4x4_add_mmxext;
         init_dc_ipred(4, mmxext);
         init_dc_ipred(8, mmxext);
         init_dir_tm_ipred(4, mmxext);
@@ -377,16 +385,18 @@ av_cold void ff_vp9dsp_init_x86(VP9DSPCo
         init_ipred(32, avx, v, VERT);
     }
 
     if (EXTERNAL_AVX2_FAST(cpu_flags)) {
         init_fpel_func(1, 1, 32, avg, _8, avx2);
         init_fpel_func(0, 1, 64, avg, _8, avx2);
         if (ARCH_X86_64) {
 #if ARCH_X86_64 && HAVE_AVX2_EXTERNAL
+            dsp->itxfm_add[TX_16X16][DCT_DCT] = ff_vp9_idct_idct_16x16_add_avx2;
+            dsp->itxfm_add[TX_32X32][DCT_DCT] = ff_vp9_idct_idct_32x32_add_avx2;
             init_subpel3_32_64(0, put, 8, avx2);
             init_subpel3_32_64(1, avg, 8, avx2);
 #endif
         }
         init_dc_ipred(32, avx2);
         init_ipred(32, avx2, h,  HOR);
         init_ipred(32, avx2, tm, TM_VP8);
     }
--- a/media/ffvpx/libavcodec/x86/vp9itxfm.asm
+++ b/media/ffvpx/libavcodec/x86/vp9itxfm.asm
@@ -19,46 +19,46 @@
 ;* You should have received a copy of the GNU Lesser General Public
 ;* License along with FFmpeg; if not, write to the Free Software
 ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 ;******************************************************************************
 
 %include "libavutil/x86/x86util.asm"
 %include "vp9itxfm_template.asm"
 
-SECTION_RODATA
+SECTION_RODATA 32
 
 %macro VP9_IDCT_COEFFS 2-3 0
 const pw_m%1_%2
-times 4 dw -%1,  %2
+times 8 dw -%1,  %2
 const pw_%2_%1
-times 4 dw  %2,  %1
+times 8 dw  %2,  %1
 
 %if %3 == 1
 const pw_m%2_m%1
-times 4 dw -%2, -%1
+times 8 dw -%2, -%1
 %if %1 != %2
 const pw_m%2_%1
-times 4 dw -%2,  %1
+times 8 dw -%2,  %1
 const pw_%1_%2
-times 4 dw  %1,  %2
+times 8 dw  %1,  %2
 %endif
 %endif
 
 %if %1 < 11585
-pw_m%1x2:   times 8 dw -%1*2
+pw_m%1x2:   times 16 dw -%1*2
 %elif %1 > 11585
-pw_%1x2:    times 8 dw  %1*2
+pw_%1x2:    times 16 dw  %1*2
 %else
 const pw_%1x2
-times 8 dw %1*2
+times 16 dw %1*2
 %endif
 
 %if %2 != %1
-pw_%2x2:    times 8 dw  %2*2
+pw_%2x2:    times 16 dw  %2*2
 %endif
 %endmacro
 
 VP9_IDCT_COEFFS 16364,   804
 VP9_IDCT_COEFFS 16305,  1606
 VP9_IDCT_COEFFS 16069,  3196, 1
 VP9_IDCT_COEFFS 15893,  3981
 VP9_IDCT_COEFFS 15137,  6270, 1
@@ -122,26 +122,43 @@ SECTION .text
     psrad              m%2, 14
     psrad              m%3, 14
     psrad              m%4, 14
     packssdw           m%1, m%3
     packssdw           m%2, m%4
 %endmacro
 
 %macro VP9_STORE_2X 5-6 dstq ; reg1, reg2, tmp1, tmp2, zero, dst
+%if mmsize == 32
+    pmovzxbw           m%3, [%6]
+    pmovzxbw           m%4, [%6+strideq]
+%else
     movh               m%3, [%6]
     movh               m%4, [%6+strideq]
     punpcklbw          m%3, m%5
     punpcklbw          m%4, m%5
+%endif
     paddw              m%3, m%1
     paddw              m%4, m%2
+%if mmsize == 32
+    packuswb           m%3, m%4
+    ; Intel...
+    vpermq             m%3, m%3, q3120
+    mova              [%6], xm%3
+    vextracti128 [%6+strideq], m%3, 1
+%elif mmsize == 16
+    packuswb           m%3, m%4
+    movh              [%6], m%3
+    movhps    [%6+strideq], m%3
+%else
     packuswb           m%3, m%5
     packuswb           m%4, m%5
     movh              [%6], m%3
     movh      [%6+strideq], m%4
+%endif
 %endmacro
 
 %macro ZERO_BLOCK 4 ; mem, stride, nnzcpl, zero_reg
 %assign %%y 0
 %rep %3
 %assign %%x 0
 %rep %3*2/mmsize
     mova      [%1+%%y+%%x], %4
@@ -1416,16 +1433,190 @@ cglobal vp9_idct_idct_16x16_add, 4, 6, 1
     ZERO_BLOCK      blockq, 32, 16, m0
     RET
 %endmacro
 
 VP9_IDCT_IDCT_16x16_ADD_XMM sse2
 VP9_IDCT_IDCT_16x16_ADD_XMM ssse3
 VP9_IDCT_IDCT_16x16_ADD_XMM avx
 
+%macro VP9_IDCT16_YMM_1D 0
+    VP9_UNPACK_MULSUB_2W_4X  1,  15, 16305,  1606, [pd_8192], 0, 4 ; t8,  t15
+    VP9_UNPACK_MULSUB_2W_4X  9,   7, 10394, 12665, [pd_8192], 0, 4 ; t9,  t14
+
+    SUMSUB_BA            w,  9,   1, 0      ; t8,  t9
+    SUMSUB_BA            w,  7,  15, 0      ; t15, t14
+
+    VP9_UNPACK_MULSUB_2W_4X 15,   1, 15137,  6270, [pd_8192], 0, 4 ; t9,  t14
+
+    VP9_UNPACK_MULSUB_2W_4X  5,  11, 14449,  7723, [pd_8192], 0, 4 ; t10, t13
+    VP9_UNPACK_MULSUB_2W_4X 13,   3,  4756, 15679, [pd_8192], 0, 4 ; t11, t12
+
+    SUMSUB_BA            w,  5,  13, 0      ; t11, t10
+    SUMSUB_BA            w, 11,   3, 0      ; t12, t13
+
+    VP9_UNPACK_MULSUB_2W_4X  3,  13, 6270, m15137, [pd_8192], 0, 4 ; t10, t13
+
+    SUMSUB_BA            w,  5,   9, 0      ; t8,  t11
+    SUMSUB_BA            w,  3,  15, 0      ; t9,  t10
+    SUMSUB_BA            w, 11,   7, 0      ; t15, t12
+    SUMSUB_BA            w, 13,   1, 0      ; t14, t13
+
+    SUMSUB_BA            w, 15,   1, 0
+    SUMSUB_BA            w,  9,   7, 0
+    pmulhrsw            m1, [pw_11585x2]    ; t10
+    pmulhrsw            m7, [pw_11585x2]    ; t11
+    pmulhrsw            m9, [pw_11585x2]    ; t12
+    pmulhrsw           m15, [pw_11585x2]    ; t13
+
+    ; even (tx8x8)
+    mova                m4, [blockq+128]
+    mova      [blockq+128], m5
+    VP9_UNPACK_MULSUB_2W_4X   4,  12, 15137,  6270, [pd_8192], 0, 5 ; t2,  t3
+    VP9_UNPACK_MULSUB_2W_4X   2,  14, 16069,  3196, [pd_8192], 0, 5 ; t4,  t7
+    VP9_UNPACK_MULSUB_2W_4X  10,   6,  9102, 13623, [pd_8192], 0, 5 ; t5,  t6
+    mova                m0, [blockq+  0]
+    SUMSUB_BA            w,   8,   0, 5
+    pmulhrsw            m8, [pw_11585x2]    ; t0
+    pmulhrsw            m0, [pw_11585x2]    ; t1
+
+    SUMSUB_BA            w,  10,   2, 5     ; t4,  t5
+    SUMSUB_BA            w,   6,  14, 5     ; t7,  t6
+    SUMSUB_BA            w,  12,   8, 5     ; t0,  t3
+    SUMSUB_BA            w,   4,   0, 5     ; t1,  t2
+
+    SUMSUB_BA            w,   2,  14, 5
+    pmulhrsw           m14, [pw_11585x2]    ; t5
+    pmulhrsw            m2, [pw_11585x2]    ; t6
+
+    SUMSUB_BA            w,   6,  12, 5     ; t0,  t7
+    SUMSUB_BA            w,   2,   4, 5     ; t1,  t6
+    SUMSUB_BA            w,  14,   0, 5     ; t2,  t5
+    SUMSUB_BA            w,  10,   8, 5     ; t3,  t4
+
+    ; final stage
+    SUMSUB_BA            w, 11,  6,  5      ; out0, out15
+    SUMSUB_BA            w, 13,  2,  5      ; out1, out14
+    SUMSUB_BA            w, 15, 14,  5      ; out2, out13
+    SUMSUB_BA            w,  9, 10,  5      ; out3, out12
+    SUMSUB_BA            w,  7,  8,  5      ; out4, out11
+    SUMSUB_BA            w,  1,  0,  5      ; out5, out10
+    SUMSUB_BA            w,  3,  4,  5      ; out6, out9
+    mova                m5, [blockq+128]
+    mova      [blockq+192], m3
+    SUMSUB_BA            w,  5, 12,  3      ; out7, out8
+
+    SWAP  0, 11,  8, 12, 10
+    SWAP  1, 13, 14,  2, 15,  6,  3,  9,  4,  7,  5
+%endmacro
+
+; this is almost identical to VP9_STORE_2X, but it does two rows
+; for slightly improved interleaving, and it omits vpermq since the
+; input is DC so all values are identical
+%macro VP9_STORE_YMM_DC_4X 6 ; reg, tmp1, tmp2, tmp3, tmp4, zero
+    mova              xm%2, [dstq]
+    mova              xm%4, [dstq+strideq*2]
+    vinserti128        m%2, m%2, [dstq+strideq], 1
+    vinserti128        m%4, m%4, [dstq+stride3q], 1
+    punpckhbw          m%3, m%2, m%6
+    punpcklbw          m%2, m%6
+    punpckhbw          m%5, m%4, m%6
+    punpcklbw          m%4, m%6
+    paddw              m%3, m%1
+    paddw              m%2, m%1
+    paddw              m%5, m%1
+    paddw              m%4, m%1
+    packuswb           m%2, m%3
+    packuswb           m%4, m%5
+    mova            [dstq], xm%2
+    mova        [dstq+strideq*2], xm%4
+    vextracti128  [dstq+strideq], m%2, 1
+    vextracti128 [dstq+stride3q], m%4, 1
+%endmacro
+
+%if ARCH_X86_64 && HAVE_AVX2_EXTERNAL
+INIT_YMM avx2
+cglobal vp9_idct_idct_16x16_add, 4, 4, 16, dst, stride, block, eob
+    cmp eobd, 1 ; faster path for when only DC is set
+    jg .idctfull
+
+    ; dc-only
+    mova                m1, [pw_11585x2]
+    vpbroadcastw        m0, [blockq]
+    pmulhrsw            m0, m1
+    pmulhrsw            m0, m1
+    pxor                m5, m5
+    pmulhrsw            m0, [pw_512]
+    movd          [blockq], xm5
+
+    DEFINE_ARGS dst, stride, stride3, cnt
+    mov               cntd, 4
+    lea           stride3q, [strideq*3]
+.loop_dc:
+    VP9_STORE_YMM_DC_4X  0, 1, 2, 3, 4, 5
+    lea               dstq, [dstq+4*strideq]
+    dec               cntd
+    jg .loop_dc
+    RET
+
+    DEFINE_ARGS dst, stride, block, eob
+.idctfull:
+    mova                m1, [blockq+ 32]
+    mova                m2, [blockq+ 64]
+    mova                m3, [blockq+ 96]
+    mova                m5, [blockq+160]
+    mova                m6, [blockq+192]
+    mova                m7, [blockq+224]
+    mova                m8, [blockq+256]
+    mova                m9, [blockq+288]
+    mova               m10, [blockq+320]
+    mova               m11, [blockq+352]
+    mova               m12, [blockq+384]
+    mova               m13, [blockq+416]
+    mova               m14, [blockq+448]
+    mova               m15, [blockq+480]
+
+    VP9_IDCT16_YMM_1D
+    TRANSPOSE16x16W      0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, \
+                         [blockq+192], [blockq+128], 1
+    mova      [blockq+  0], m0
+    VP9_IDCT16_YMM_1D
+
+    mova      [blockq+224], m7
+    mova      [blockq+480], m15
+    pxor               m15, m15
+
+    ; store
+    VP9_IDCT8_WRITEx2    0,  1, 6, 7, 15, [pw_512], 6
+    lea               dstq, [dstq+2*strideq]
+    VP9_IDCT8_WRITEx2    2,  3, 6, 7, 15, [pw_512], 6
+    lea               dstq, [dstq+2*strideq]
+    VP9_IDCT8_WRITEx2    4,  5, 6, 7, 15, [pw_512], 6
+    lea               dstq, [dstq+2*strideq]
+    mova                m6, [blockq+192]
+    mova                m7, [blockq+224]
+    SWAP                 0, 15
+    mova               m15, [blockq+480]
+    VP9_IDCT8_WRITEx2    6,  7, 1, 2, 0, [pw_512], 6
+    lea               dstq, [dstq+2*strideq]
+    VP9_IDCT8_WRITEx2    8,  9, 1, 2, 0, [pw_512], 6
+    lea               dstq, [dstq+2*strideq]
+    VP9_IDCT8_WRITEx2   10, 11, 1, 2, 0, [pw_512], 6
+    lea               dstq, [dstq+2*strideq]
+    VP9_IDCT8_WRITEx2   12, 13, 1, 2, 0, [pw_512], 6
+    lea               dstq, [dstq+2*strideq]
+    VP9_IDCT8_WRITEx2   14, 15, 1, 2, 0, [pw_512], 6
+    lea               dstq, [dstq+2*strideq]
+
+    ; at the end of the loop, m0 should still be zero
+    ; use that to zero out block coefficients
+    ZERO_BLOCK      blockq, 32, 16, m0
+    RET
+%endif
+
 ;---------------------------------------------------------------------------------------------
 ; void vp9_iadst_iadst_16x16_add_<opt>(uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob);
 ;---------------------------------------------------------------------------------------------
 
 %macro VP9_IADST16_1D 2 ; src, pass
 %assign %%str 16*%2
     mova                m0, [%1+ 0*32]  ; in0
     mova                m1, [%1+15*32]  ; in15
@@ -1796,17 +1987,22 @@ IADST16_FN idct,  IDCT16,  iadst, IADST1
 IADST16_FN iadst, IADST16, idct,  IDCT16,  avx
 IADST16_FN iadst, IADST16, iadst, IADST16, avx
 
 ;---------------------------------------------------------------------------------------------
 ; void vp9_idct_idct_32x32_add_<opt>(uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob);
 ;---------------------------------------------------------------------------------------------
 
 %macro VP9_IDCT32_1D 2-3 32 ; src, pass, nnzc
-%assign %%str 16*%2*%2
+%if %2 == 1
+%assign %%str mmsize
+%else
+%assign %%str 64
+%endif
+
     ; first do t0-15, this can be done identical to idct16x16
     VP9_IDCT16_1D_START %1, %3/2, 64*2, tmpq, 2*%%str, 1
 
     ; store everything on stack to make space available for t16-31
     ; we store interleaved with the output of the second half (t16-31)
     ; so we don't need to allocate extra stack space
     mova    [tmpq+ 0*%%str], m0     ; t0
     mova    [tmpq+ 4*%%str], m1     ; t1
@@ -2091,27 +2287,135 @@ IADST16_FN iadst, IADST16, iadst, IADST1
     mova                 m8, [tmpq+ 0*%%str] ; t0
     mova                 m9, [tmpq+ 4*%%str] ; t1
     mova                m12, [tmpq+ 8*%%str] ; t2
     mova                m11, [tmpq+12*%%str] ; t3
     mova                 m2, [tmpq+16*%%str] ; t4
     mova                 m3, [tmpq+20*%%str] ; t5
     mova                m13, [tmpq+24*%%str] ; t6
 
-    SUMSUB_BA             w,  6,  8,  10
+    SUMSUB_BA             w,  6,  8, 10
     mova    [tmpq+ 3*%%str], m8              ; t15
-    mova                m10, [tmpq+28*%%str] ; t7
     SUMSUB_BA             w,  0,  9,  8
     SUMSUB_BA             w, 15, 12,  8
     SUMSUB_BA             w, 14, 11,  8
     SUMSUB_BA             w,  1,  2,  8
     SUMSUB_BA             w,  7,  3,  8
     SUMSUB_BA             w,  5, 13,  8
+    mova                m10, [tmpq+28*%%str] ; t7
     SUMSUB_BA             w,  4, 10,  8
-
+%if cpuflag(avx2)
+    ; the "shitty" about this idct is that the final pass does the outermost
+    ; interleave sumsubs (t0/31, t1/30, etc) but the tN for the 16x16 need
+    ; to be sequential, which means I need to load/store half of the sumsub
+    ; intermediates back to/from memory to get a 16x16 transpose going...
+    ; This would be easier if we had more (e.g. 32) YMM regs here.
+    mova    [tmpq+ 7*%%str], m9
+    mova    [tmpq+11*%%str], m12
+    mova    [tmpq+15*%%str], m11
+    mova    [tmpq+19*%%str], m2
+    mova    [tmpq+23*%%str], m3
+    mova    [tmpq+27*%%str], m13
+    mova    [tmpq+31*%%str], m10
+    mova    [tmpq+12*%%str], m5
+
+    mova                m13, [tmpq+30*%%str] ; t8
+    mova                m12, [tmpq+26*%%str] ; t9
+    mova                m11, [tmpq+22*%%str] ; t10
+    mova                m10, [tmpq+18*%%str] ; t11
+    mova                 m9, [tmpq+17*%%str] ; t20
+    mova                 m8, [tmpq+ 1*%%str] ; t21
+    mova                 m3, [tmpq+25*%%str] ; t22
+    mova                 m2, [tmpq+ 5*%%str] ; t23
+
+    SUMSUB_BA             w,  9, 10, 5
+    SUMSUB_BA             w,  8, 11, 5
+    SUMSUB_BA             w,  3, 12, 5
+    SUMSUB_BA             w,  2, 13, 5
+    mova    [tmpq+ 1*%%str], m10
+    mova    [tmpq+ 5*%%str], m11
+    mova    [tmpq+17*%%str], m12
+    mova    [tmpq+25*%%str], m13
+
+    mova                m13, [tmpq+14*%%str] ; t12
+    mova                m12, [tmpq+10*%%str] ; t13
+    mova                m11, [tmpq+ 9*%%str] ; t18
+    mova                m10, [tmpq+13*%%str] ; t19
+
+    SUMSUB_BA             w, 11, 12, 5
+    SUMSUB_BA             w, 10, 13, 5
+    mova    [tmpq+ 9*%%str], m13
+    mova    [tmpq+13*%%str], m12
+    mova    [tmpq+10*%%str], m10
+    mova    [tmpq+14*%%str], m11
+
+    mova                m13, [tmpq+ 6*%%str] ; t14
+    mova                m12, [tmpq+ 2*%%str] ; t15
+    mova                m11, [tmpq+21*%%str] ; t16
+    mova                m10, [tmpq+29*%%str] ; t17
+    SUMSUB_BA             w, 11, 12, 5
+    SUMSUB_BA             w, 10, 13, 5
+    mova    [tmpq+21*%%str], m12
+    mova    [tmpq+29*%%str], m13
+    mova                m12, [tmpq+10*%%str]
+    mova                m13, [tmpq+14*%%str]
+
+    TRANSPOSE16x16W       6,  0, 15, 14,  1,  7,  5,  4, \
+                          2,  3,  8,  9, 12, 13, 10, 11, \
+            [tmpq+12*%%str], [tmpq+ 8*%%str], 1
+    mova    [tmpq+ 0*%%str], m6
+    mova    [tmpq+ 2*%%str], m0
+    mova    [tmpq+ 4*%%str], m15
+    mova    [tmpq+ 6*%%str], m14
+    mova    [tmpq+10*%%str], m7
+    mova    [tmpq+12*%%str], m5
+    mova    [tmpq+14*%%str], m4
+    mova    [tmpq+16*%%str], m2
+    mova    [tmpq+18*%%str], m3
+    mova    [tmpq+20*%%str], m8
+    mova    [tmpq+22*%%str], m9
+    mova    [tmpq+24*%%str], m12
+    mova    [tmpq+26*%%str], m13
+    mova    [tmpq+28*%%str], m10
+    mova    [tmpq+30*%%str], m11
+
+    mova                 m0, [tmpq+21*%%str]
+    mova                 m1, [tmpq+29*%%str]
+    mova                 m2, [tmpq+13*%%str]
+    mova                 m3, [tmpq+ 9*%%str]
+    mova                 m4, [tmpq+ 1*%%str]
+    mova                 m5, [tmpq+ 5*%%str]
+    mova                 m7, [tmpq+25*%%str]
+    mova                 m8, [tmpq+31*%%str]
+    mova                 m9, [tmpq+27*%%str]
+    mova                m10, [tmpq+23*%%str]
+    mova                m11, [tmpq+19*%%str]
+    mova                m12, [tmpq+15*%%str]
+    mova                m13, [tmpq+11*%%str]
+    mova                m14, [tmpq+ 7*%%str]
+    mova                m15, [tmpq+ 3*%%str]
+    TRANSPOSE16x16W       0,  1,  2,  3,  4,  5,  6,  7, \
+                          8,  9, 10, 11, 12, 13, 14, 15, \
+            [tmpq+17*%%str], [tmpq+ 9*%%str], 1
+    mova    [tmpq+ 1*%%str], m0
+    mova    [tmpq+ 3*%%str], m1
+    mova    [tmpq+ 5*%%str], m2
+    mova    [tmpq+ 7*%%str], m3
+    mova    [tmpq+11*%%str], m5
+    mova    [tmpq+13*%%str], m6
+    mova    [tmpq+15*%%str], m7
+    mova    [tmpq+17*%%str], m8
+    mova    [tmpq+19*%%str], m9
+    mova    [tmpq+21*%%str], m10
+    mova    [tmpq+23*%%str], m11
+    mova    [tmpq+25*%%str], m12
+    mova    [tmpq+27*%%str], m13
+    mova    [tmpq+29*%%str], m14
+    mova    [tmpq+31*%%str], m15
+%else ; !avx2
     TRANSPOSE8x8W         6, 0, 15, 14, 1, 7, 5, 4, 8
     mova    [tmpq+ 0*%%str], m6
     mova    [tmpq+ 4*%%str], m0
     mova    [tmpq+ 8*%%str], m15
     mova    [tmpq+12*%%str], m14
     mova    [tmpq+16*%%str], m1
     mova    [tmpq+20*%%str], m7
     mova    [tmpq+24*%%str], m5
@@ -2170,16 +2474,17 @@ IADST16_FN iadst, IADST16, iadst, IADST1
     mova    [tmpq+ 2*%%str], m8
     mova    [tmpq+ 6*%%str], m9
     mova    [tmpq+10*%%str], m10
     mova    [tmpq+14*%%str], m11
     mova    [tmpq+18*%%str], m12
     mova    [tmpq+22*%%str], m13
     mova    [tmpq+26*%%str], m14
     mova    [tmpq+30*%%str], m15
+%endif ; avx2
 %else
     mova                 m2, [tmpq+24*%%str] ; t6
     mova                 m3, [tmpq+28*%%str] ; t7
     SUMSUB_BADC           w,  5,  2,  4,  3
     mova    [tmpq+24*%%str], m5
     mova    [tmpq+23*%%str], m2
     mova    [tmpq+28*%%str], m4
     mova    [tmpq+19*%%str], m3
@@ -2618,8 +2923,111 @@ cglobal vp9_idct_idct_32x32_add, 0, 6 + 
 %endif
     ZERO_BLOCK      blockq, 64, 32, m1
     RET
 %endmacro
 
 VP9_IDCT_IDCT_32x32_ADD_XMM sse2
 VP9_IDCT_IDCT_32x32_ADD_XMM ssse3
 VP9_IDCT_IDCT_32x32_ADD_XMM avx
+
+; this is almost identical to VP9_STORE_2X, but it does two rows
+; for slightly improved interleaving, and it omits vpermq since the
+; input is DC so all values are identical
+%macro VP9_STORE_YMM_DC_2X2 6 ; reg, tmp1, tmp2, tmp3, tmp4, zero
+    mova               m%2, [dstq]
+    mova               m%4, [dstq+strideq]
+    punpckhbw          m%3, m%2, m%6
+    punpcklbw          m%2, m%6
+    punpckhbw          m%5, m%4, m%6
+    punpcklbw          m%4, m%6
+    paddw              m%3, m%1
+    paddw              m%2, m%1
+    paddw              m%5, m%1
+    paddw              m%4, m%1
+    packuswb           m%2, m%3
+    packuswb           m%4, m%5
+    mova  [dstq+strideq*0], m%2
+    mova  [dstq+strideq*1], m%4
+%endmacro
+
+%if ARCH_X86_64 && HAVE_AVX2_EXTERNAL
+INIT_YMM avx2
+cglobal vp9_idct_idct_32x32_add, 4, 9, 16, 2048, dst, stride, block, eob
+    cmp eobd, 135
+    jg .idctfull
+    cmp eobd, 1
+    jg .idct16x16
+
+    ; dc-only case
+    mova                m1, [pw_11585x2]
+    vpbroadcastw        m0, [blockq]
+    pmulhrsw            m0, m1
+    pmulhrsw            m0, m1
+    pxor                m5, m5
+    pmulhrsw            m0, [pw_512]
+    movd          [blockq], xm5
+
+    DEFINE_ARGS dst, stride, cnt
+    mov               cntd, 16
+.loop_dc:
+    VP9_STORE_YMM_DC_2X2 0, 1, 2, 3, 4, 5
+    lea               dstq, [dstq+2*strideq]
+    dec               cntd
+    jg .loop_dc
+    RET
+
+    DEFINE_ARGS dst_bak, stride, block, cnt, dst, stride30, dst_end, stride2, tmp
+.idct16x16:
+    mov               tmpq, rsp
+    VP9_IDCT32_1D   blockq, 1, 16
+
+    mov          stride30q, strideq         ; stride
+    lea           stride2q, [strideq*2]     ; stride*2
+    shl          stride30q, 5               ; stride*32
+    mov               cntd, 2
+    sub          stride30q, stride2q        ; stride*30
+.loop2_16x16:
+    mov               dstq, dst_bakq
+    lea           dst_endq, [dstq+stride30q]
+    VP9_IDCT32_1D     tmpq, 2, 16
+    add           dst_bakq, 16
+    add               tmpq, 32
+    dec               cntd
+    jg .loop2_16x16
+
+    ; at the end of the loop, m1 should still be zero
+    ; use that to zero out block coefficients
+    ZERO_BLOCK      blockq, 64, 16, m1
+    RET
+
+.idctfull:
+    mov               cntd, 2
+    mov               tmpq, rsp
+.loop1_full:
+    VP9_IDCT32_1D   blockq, 1
+    add             blockq, 32
+    add               tmpq, 1024
+    dec               cntd
+    jg .loop1_full
+
+    sub             blockq, 64
+
+    mov          stride30q, strideq         ; stride
+    lea           stride2q, [strideq*2]     ; stride*2
+    shl          stride30q, 5               ; stride*32
+    mov               cntd, 2
+    mov               tmpq, rsp
+    sub          stride30q, stride2q        ; stride*30
+.loop2_full:
+    mov               dstq, dst_bakq
+    lea           dst_endq, [dstq+stride30q]
+    VP9_IDCT32_1D     tmpq, 2
+    add           dst_bakq, 16
+    add               tmpq, 32
+    dec               cntd
+    jg .loop2_full
+
+    ; at the end of the loop, m1 should still be zero
+    ; use that to zero out block coefficients
+    ZERO_BLOCK      blockq, 64, 32, m1
+    RET
+%endif
--- a/media/ffvpx/libavcodec/x86/vp9lpf.asm
+++ b/media/ffvpx/libavcodec/x86/vp9lpf.asm
@@ -47,34 +47,34 @@ mask_mix: times 8 db 0
 mask_mix84: times 8 db 0xff
             times 8 db 0x00
 mask_mix48: times 8 db 0x00
             times 8 db 0xff
 
 SECTION .text
 
 %macro SCRATCH 3
-%if ARCH_X86_64
+%ifdef m8
     SWAP                %1, %2
 %else
     mova              [%3], m%1
 %endif
 %endmacro
 
 %macro UNSCRATCH 3
-%if ARCH_X86_64
+%ifdef m8
     SWAP                %1, %2
 %else
     mova               m%1, [%3]
 %endif
 %endmacro
 
 ; %1 = abs(%2-%3)
 %macro ABSSUB 4 ; dst, src1 (RO), src2 (RO), tmp
-%if ARCH_X86_64
+%ifdef m8
     psubusb             %1, %3, %2
     psubusb             %4, %2, %3
 %else
     mova                %1, %3
     mova                %4, %2
     psubusb             %1, %2
     psubusb             %4, %3
 %endif
@@ -97,63 +97,63 @@ SECTION .text
 
 %macro MASK_APPLY 4 ; %1=new_data/dst %2=old_data %3=mask %4=tmp
     pand                %1, %3              ; new &= mask
     pandn               %4, %3, %2          ; tmp = ~mask & old
     por                 %1, %4              ; new&mask | old&~mask
 %endmacro
 
 %macro UNPACK 4
-%if ARCH_X86_64
+%ifdef m8
     punpck%1bw          %2, %3, %4
 %else
     mova                %2, %3
     punpck%1bw          %2, %4
 %endif
 %endmacro
 
 %macro FILTER_SUBx2_ADDx2 11 ; %1=dst %2=h/l %3=cache %4=stack_off %5=sub1 %6=sub2 %7=add1
                              ; %8=add2 %9=rshift, [unpack], [unpack_is_mem_on_x86_32]
-    psubw               %3, [rsp+%4+%5*32]
-    psubw               %3, [rsp+%4+%6*32]
-    paddw               %3, [rsp+%4+%7*32]
+    psubw               %3, [rsp+%4+%5*mmsize*2]
+    psubw               %3, [rsp+%4+%6*mmsize*2]
+    paddw               %3, [rsp+%4+%7*mmsize*2]
 %ifnidn %10, ""
 %if %11 == 0
     punpck%2bw          %1, %10, m0
 %else
     UNPACK          %2, %1, %10, m0
 %endif
-    mova    [rsp+%4+%8*32], %1
+    mova [rsp+%4+%8*mmsize*2], %1
     paddw               %3, %1
 %else
-    paddw               %3, [rsp+%4+%8*32]
+    paddw               %3, [rsp+%4+%8*mmsize*2]
 %endif
     psraw               %1, %3, %9
 %endmacro
 
 ; FIXME interleave l/h better (for instruction pairing)
 %macro FILTER_INIT 9 ; tmp1, tmp2, cacheL, cacheH, dstp, stack_off, filterid, mask, source
-    FILTER%7_INIT       %1, l, %3, %6 +  0
-    FILTER%7_INIT       %2, h, %4, %6 + 16
+    FILTER%7_INIT       %1, l, %3, %6 +      0
+    FILTER%7_INIT       %2, h, %4, %6 + mmsize
     packuswb            %1, %2
     MASK_APPLY          %1, %9, %8, %2
     mova                %5, %1
 %endmacro
 
 
 %macro FILTER_UPDATE 12-16 "", "", "", 0 ; tmp1, tmp2, cacheL, cacheH, dstp, stack_off, -, -, +, +, rshift,
                                          ; mask, [source], [unpack + src], [unpack_is_mem_on_x86_32]
 ; FIXME interleave this properly with the subx2/addx2
 %ifnidn %15, ""
 %if %16 == 0 || ARCH_X86_64
     mova               %14, %15
 %endif
 %endif
-    FILTER_SUBx2_ADDx2  %1, l, %3, %6 +  0, %7, %8, %9, %10, %11, %14, %16
-    FILTER_SUBx2_ADDx2  %2, h, %4, %6 + 16, %7, %8, %9, %10, %11, %14, %16
+    FILTER_SUBx2_ADDx2  %1, l, %3, %6 +      0, %7, %8, %9, %10, %11, %14, %16
+    FILTER_SUBx2_ADDx2  %2, h, %4, %6 + mmsize, %7, %8, %9, %10, %11, %14, %16
     packuswb            %1, %2
 %ifnidn %13, ""
     MASK_APPLY          %1, %13, %12, %2
 %else
     MASK_APPLY          %1, %5, %12, %2
 %endif
     mova                %5, %1
 %endmacro
@@ -190,56 +190,56 @@ SECTION .text
 %macro SIGN_SUB 4 ; dst, u8, i8, tmp1
     EXTRACT_POS_NEG     %3, %1, %4
     paddusb             %1, %2                          ; add the negatives
     psubusb             %1, %4                          ; sub the positives
 %endmacro
 
 %macro FILTER6_INIT 4 ; %1=dst %2=h/l %3=cache, %4=stack_off
     UNPACK          %2, %1, rp3, m0                     ; p3: B->W
-    mova     [rsp+%4+0*32], %1
+    mova [rsp+%4+0*mmsize*2], %1
     paddw               %3, %1, %1                      ; p3*2
     paddw               %3, %1                          ; p3*3
     punpck%2bw          %1, m1,  m0                     ; p2: B->W
-    mova     [rsp+%4+1*32], %1
+    mova [rsp+%4+1*mmsize*2], %1
     paddw               %3, %1                          ; p3*3 + p2
     paddw               %3, %1                          ; p3*3 + p2*2
     UNPACK          %2, %1, rp1, m0                     ; p1: B->W
-    mova     [rsp+%4+2*32], %1
+    mova [rsp+%4+2*mmsize*2], %1
     paddw               %3, %1                          ; p3*3 + p2*2 + p1
     UNPACK          %2, %1, rp0, m0                     ; p0: B->W
-    mova     [rsp+%4+3*32], %1
+    mova [rsp+%4+3*mmsize*2], %1
     paddw               %3, %1                          ; p3*3 + p2*2 + p1 + p0
     UNPACK          %2, %1, rq0, m0                     ; q0: B->W
-    mova     [rsp+%4+4*32], %1
+    mova [rsp+%4+4*mmsize*2], %1
     paddw               %3, %1                          ; p3*3 + p2*2 + p1 + p0 + q0
     paddw               %3, [pw_4]                      ; p3*3 + p2*2 + p1 + p0 + q0 + 4
     psraw               %1, %3, 3                       ; (p3*3 + p2*2 + p1 + p0 + q0 + 4) >> 3
 %endmacro
 
 %macro FILTER14_INIT 4 ; %1=dst %2=h/l %3=cache, %4=stack_off
     punpck%2bw          %1, m2, m0                      ; p7: B->W
-    mova    [rsp+%4+ 8*32], %1
+    mova [rsp+%4+ 8*mmsize*2], %1
     psllw               %3, %1, 3                       ; p7*8
     psubw               %3, %1                          ; p7*7
     punpck%2bw          %1, m3, m0                      ; p6: B->W
-    mova    [rsp+%4+ 9*32], %1
+    mova [rsp+%4+ 9*mmsize*2], %1
     paddw               %3, %1                          ; p7*7 + p6
     paddw               %3, %1                          ; p7*7 + p6*2
     UNPACK          %2, %1, rp5, m0                     ; p5: B->W
-    mova    [rsp+%4+10*32], %1
+    mova [rsp+%4+10*mmsize*2], %1
     paddw               %3, %1                          ; p7*7 + p6*2 + p5
     UNPACK          %2, %1, rp4, m0                     ; p4: B->W
-    mova    [rsp+%4+11*32], %1
+    mova [rsp+%4+11*mmsize*2], %1
     paddw               %3, %1                          ; p7*7 + p6*2 + p5 + p4
-    paddw               %3, [rsp+%4+ 0*32]              ; p7*7 + p6*2 + p5 + p4 + p3
-    paddw               %3, [rsp+%4+ 1*32]              ; p7*7 + p6*2 + p5 + .. + p2
-    paddw               %3, [rsp+%4+ 2*32]              ; p7*7 + p6*2 + p5 + .. + p1
-    paddw               %3, [rsp+%4+ 3*32]              ; p7*7 + p6*2 + p5 + .. + p0
-    paddw               %3, [rsp+%4+ 4*32]              ; p7*7 + p6*2 + p5 + .. + p0 + q0
+    paddw               %3, [rsp+%4+ 0*mmsize*2]        ; p7*7 + p6*2 + p5 + p4 + p3
+    paddw               %3, [rsp+%4+ 1*mmsize*2]        ; p7*7 + p6*2 + p5 + .. + p2
+    paddw               %3, [rsp+%4+ 2*mmsize*2]        ; p7*7 + p6*2 + p5 + .. + p1
+    paddw               %3, [rsp+%4+ 3*mmsize*2]        ; p7*7 + p6*2 + p5 + .. + p0
+    paddw               %3, [rsp+%4+ 4*mmsize*2]        ; p7*7 + p6*2 + p5 + .. + p0 + q0
     paddw               %3, [pw_8]                      ; p7*7 + p6*2 + p5 + .. + p0 + q0 + 8
     psraw               %1, %3, 4                       ; (p7*7 + p6*2 + p5 + .. + p0 + q0 + 8) >> 4
 %endmacro
 
 %macro TRANSPOSE16x16B 17
     mova %17, m%16
     SBUTTERFLY bw,  %1,  %2,  %16
     SBUTTERFLY bw,  %3,  %4,  %16
@@ -329,93 +329,104 @@ SECTION .text
 %define Q3 dst2q +   mstrideq  + %1
 %define Q4 dst2q               + %1
 %define Q5 dst2q +    strideq  + %1
 %define Q6 dst2q + 2* strideq  + %1
 %define Q7 dst2q +    stride3q + %1
 %endmacro
 
 %macro DEFINE_TRANSPOSED_P7_TO_Q7 0-1 0
-%define P3 rsp +   0 + %1
-%define P2 rsp +  16 + %1
-%define P1 rsp +  32 + %1
-%define P0 rsp +  48 + %1
-%define Q0 rsp +  64 + %1
-%define Q1 rsp +  80 + %1
-%define Q2 rsp +  96 + %1
-%define Q3 rsp + 112 + %1
-%define P7 rsp + 128 + %1
-%define P6 rsp + 144 + %1
-%define P5 rsp + 160 + %1
-%define P4 rsp + 176 + %1
-%define Q4 rsp + 192 + %1
-%define Q5 rsp + 208 + %1
-%define Q6 rsp + 224 + %1
-%define Q7 rsp + 240 + %1
+%define P3 rsp +  0*mmsize + %1
+%define P2 rsp +  1*mmsize + %1
+%define P1 rsp +  2*mmsize + %1
+%define P0 rsp +  3*mmsize + %1
+%define Q0 rsp +  4*mmsize + %1
+%define Q1 rsp +  5*mmsize + %1
+%define Q2 rsp +  6*mmsize + %1
+%define Q3 rsp +  7*mmsize + %1
+%if mmsize == 16
+%define P7 rsp +  8*mmsize + %1
+%define P6 rsp +  9*mmsize + %1
+%define P5 rsp + 10*mmsize + %1
+%define P4 rsp + 11*mmsize + %1
+%define Q4 rsp + 12*mmsize + %1
+%define Q5 rsp + 13*mmsize + %1
+%define Q6 rsp + 14*mmsize + %1
+%define Q7 rsp + 15*mmsize + %1
+%endif
 %endmacro
 
 ; ..............AB -> AAAAAAAABBBBBBBB
 %macro SPLATB_MIX 1-2 [mask_mix]
 %if cpuflag(ssse3)
     pshufb     %1, %2
 %else
     punpcklbw  %1, %1
     punpcklwd  %1, %1
     punpckldq  %1, %1
 %endif
 %endmacro
 
-%macro LOOPFILTER 5 ; %1=v/h %2=size1 %3+%4=stack, %5=32bit stack only
+%macro LOOPFILTER 5 ; %1=v/h %2=size1 %3+%4=stack, %5=mmx/32bit stack only
+%assign %%ext 0
+%if ARCH_X86_32 || mmsize == 8
+%assign %%ext %5
+%endif
+
 %if UNIX64
-cglobal vp9_loop_filter_%1_%2_16, 5, 9, 16, %3 + %4, dst, stride, E, I, H, mstride, dst2, stride3, mstride3
+cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 5, 9, 16, %3 + %4 + %%ext, dst, stride, E, I, H, mstride, dst2, stride3, mstride3
 %else
 %if WIN64
-cglobal vp9_loop_filter_%1_%2_16, 4, 8, 16, %3 + %4, dst, stride, E, I, mstride, dst2, stride3, mstride3
+cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 4, 8, 16, %3 + %4 + %%ext, dst, stride, E, I, mstride, dst2, stride3, mstride3
 %else
-cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, dst2, stride3, mstride3
+cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 2, 6, 16, %3 + %4 + %%ext, dst, stride, mstride, dst2, stride3, mstride3
 %define Ed dword r2m
 %define Id dword r3m
 %endif
 %define Hd dword r4m
 %endif
 
     mov               mstrideq, strideq
     neg               mstrideq
 
     lea               stride3q, [strideq*3]
     lea              mstride3q, [mstrideq*3]
 
 %ifidn %1, h
-%if %2 > 16
+%if %2 != 16
+%if mmsize == 16
 %define movx movh
+%else
+%define movx mova
+%endif
     lea                   dstq, [dstq + 4*strideq - 4]
 %else
 %define movx movu
     lea                   dstq, [dstq + 4*strideq - 8] ; go from top center (h pos) to center left (v pos)
 %endif
-    lea                  dst2q, [dstq + 8*strideq]
 %else
     lea                   dstq, [dstq + 4*mstrideq]
+%endif
+    ; FIXME we shouldn't need two dts registers if mmsize == 8
     lea                  dst2q, [dstq + 8*strideq]
-%endif
 
     DEFINE_REAL_P7_TO_Q7
 
 %ifidn %1, h
     movx                    m0, [P7]
     movx                    m1, [P6]
     movx                    m2, [P5]
     movx                    m3, [P4]
     movx                    m4, [P3]
     movx                    m5, [P2]
-%if ARCH_X86_64 || %2 != 16
+%if (ARCH_X86_64 && mmsize == 16) || %2 > 16
     movx                    m6, [P1]
 %endif
     movx                    m7, [P0]
-%if ARCH_X86_64
+%ifdef m8
     movx                    m8, [Q0]
     movx                    m9, [Q1]
     movx                   m10, [Q2]
     movx                   m11, [Q3]
     movx                   m12, [Q4]
     movx                   m13, [Q5]
     movx                   m14, [Q6]
     movx                   m15, [Q7]
@@ -497,17 +508,17 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     movhps        [P6], m0
     movhps        [P4], m1
     movhps        [P2], m2
     movhps        [P0], m3
     movhps        [Q3], m5
     movhps        [Q5], m6
     movhps        [Q7], m7
     DEFINE_TRANSPOSED_P7_TO_Q7
-%else ; %2 == 44/48/84/88
+%elif %2 > 16 ; %2 == 44/48/84/88
     punpcklbw        m0, m1
     punpcklbw        m2, m3
     punpcklbw        m4, m5
     punpcklbw        m6, m7
     movx             m1, [Q0]
     movx             m3, [Q1]
     movx             m5, [Q2]
     movx             m7, [Q3]
@@ -524,22 +535,41 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     TRANSPOSE8x8W     0, 2, 4, 6, 1, 5, 7, 3, [rsp], [Q0], 1
     mova           [P3],  m0
     mova           [P2],  m2
     mova           [P1],  m4
     mova           [P0],  m6
     mova           [Q1],  m5
     mova           [Q2],  m7
     mova           [Q3],  m3
+%else ; %2 == 4 || %2 == 8
+    SBUTTERFLY       bw, 0, 1, 6
+    SBUTTERFLY       bw, 2, 3, 6
+    SBUTTERFLY       bw, 4, 5, 6
+    mova [rsp+4*mmsize], m5
+    mova             m6, [P1]
+    SBUTTERFLY       bw, 6, 7, 5
+    DEFINE_TRANSPOSED_P7_TO_Q7
+    TRANSPOSE4x4W     0, 2, 4, 6, 5
+    mova           [P3], m0
+    mova           [P2], m2
+    mova           [P1], m4
+    mova           [P0], m6
+    mova             m5, [rsp+4*mmsize]
+    TRANSPOSE4x4W     1, 3, 5, 7, 0
+    mova           [Q0], m1
+    mova           [Q1], m3
+    mova           [Q2], m5
+    mova           [Q3], m7
 %endif ; %2
 %endif ; x86-32/64
 %endif ; %1 == h
 
     ; calc fm mask
-%if %2 == 16
+%if %2 == 16 || mmsize == 8
 %if cpuflag(ssse3)
     pxor                m0, m0
 %endif
     SPLATB_REG          m2, I, m0                       ; I I I I ...
     SPLATB_REG          m3, E, m0                       ; E E E E ...
 %else
 %if cpuflag(ssse3)
     mova                m0, [mask_mix]
@@ -547,17 +577,17 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     movd                m2, Id
     movd                m3, Ed
     SPLATB_MIX          m2, m0
     SPLATB_MIX          m3, m0
 %endif
     mova                m0, [pb_80]
     pxor                m2, m0
     pxor                m3, m0
-%if ARCH_X86_64
+%ifdef m8
 %ifidn %1, v
     mova                m8, [P3]
     mova                m9, [P2]
     mova               m10, [P1]
     mova               m11, [P0]
     mova               m12, [Q0]
     mova               m13, [Q1]
     mova               m14, [Q2]
@@ -608,29 +638,29 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     pxor                m1, m0
     pcmpgtb             m1, m3
     por                 m1, m5                          ; fm final value
     SWAP                 1, 3
     pxor                m3, [pb_ff]
 
     ; (m3: fm, m8..15: p3 p2 p1 p0 q0 q1 q2 q3)
     ; calc flat8in (if not 44_16) and hev masks
-%if %2 != 44
+%if %2 != 44 && %2 != 4
     mova                m6, [pb_81]                     ; [1 1 1 1 ...] ^ 0x80
     ABSSUB_GT           m2, rp3, rp0, m6, m5            ; abs(p3 - p0) <= 1
-%if ARCH_X86_64
+%ifdef m8
     mova                m8, [pb_80]
 %define rb80 m8
 %else
 %define rb80 [pb_80]
 %endif
     ABSSUB_GT           m1, rp2, rp0, m6, m5, rb80      ; abs(p2 - p0) <= 1
     por                 m2, m1
     ABSSUB              m4, rp1, rp0, m5                ; abs(p1 - p0)
-%if %2 == 16
+%if %2 <= 16
 %if cpuflag(ssse3)
     pxor                m0, m0
 %endif
     SPLATB_REG          m7, H, m0                       ; H H H H ...
 %else
     movd                m7, Hd
     SPLATB_MIX          m7
 %endif
@@ -650,70 +680,77 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     ABSSUB_GT           m1, rq3, rq0, m6, m5, rb80      ; abs(q3 - q0) <= 1
     por                 m2, m1                          ; flat8in final value
     pxor                m2, [pb_ff]
 %if %2 == 84 || %2 == 48
     pand                m2, [mask_mix%2]
 %endif
 %else
     mova                m6, [pb_80]
+%if %2 == 44
     movd                m7, Hd
     SPLATB_MIX          m7
+%else
+%if cpuflag(ssse3)
+    pxor                m0, m0
+%endif
+    SPLATB_REG          m7, H, m0                       ; H H H H ...
+%endif
     pxor                m7, m6
     ABSSUB              m4, rp1, rp0, m1                ; abs(p1 - p0)
     pxor                m4, m6
     pcmpgtb             m0, m4, m7                      ; abs(p1 - p0) > H (1/2 hev condition)
     ABSSUB              m4, rq1, rq0, m1                ; abs(q1 - q0)
     pxor                m4, m6
     pcmpgtb             m5, m4, m7                      ; abs(q1 - q0) > H (2/2 hev condition)
     por                 m0, m5                          ; hev final value
 %endif
 
 %if %2 == 16
     ; (m0: hev, m2: flat8in, m3: fm, m6: pb_81, m9..15: p2 p1 p0 q0 q1 q2 q3)
     ; calc flat8out mask
-%if ARCH_X86_64
+%ifdef m8
     mova                m8, [P7]
     mova                m9, [P6]
 %define rp7 m8
 %define rp6 m9
 %else
 %define rp7 [P7]
 %define rp6 [P6]
 %endif
     ABSSUB_GT           m1, rp7, rp0, m6, m5            ; abs(p7 - p0) <= 1
     ABSSUB_GT           m7, rp6, rp0, m6, m5            ; abs(p6 - p0) <= 1
     por                 m1, m7
-%if ARCH_X86_64
+%ifdef m8
     mova                m8, [P5]
     mova                m9, [P4]
 %define rp5 m8
 %define rp4 m9
 %else
 %define rp5 [P5]
 %define rp4 [P4]
 %endif
     ABSSUB_GT           m7, rp5, rp0, m6, m5            ; abs(p5 - p0) <= 1
     por                 m1, m7
     ABSSUB_GT           m7, rp4, rp0, m6, m5            ; abs(p4 - p0) <= 1
     por                 m1, m7
-%if ARCH_X86_64
+%ifdef m8
     mova                m14, [Q4]
     mova                m15, [Q5]
 %define rq4 m14
 %define rq5 m15
 %else
 %define rq4 [Q4]
 %define rq5 [Q5]
 %endif
     ABSSUB_GT           m7, rq4, rq0, m6, m5            ; abs(q4 - q0) <= 1
     por                 m1, m7
     ABSSUB_GT           m7, rq5, rq0, m6, m5            ; abs(q5 - q0) <= 1
     por                 m1, m7
-%if ARCH_X86_64
+%ifdef m8
     mova                m14, [Q6]
     mova                m15, [Q7]
 %define rq6 m14
 %define rq7 m15
 %else
 %define rq6 [Q6]
 %define rq7 [Q7]
 %endif
@@ -733,17 +770,17 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     ;
     ; f14:                                                                            fm &  out &  in
     ; f6:  fm & ~f14 & in        => fm & ~(out & in) & in                          => fm & ~out &  in
     ; f2:  fm & ~f14 & ~f6 & hev => fm & ~(out & in) & ~(~out & in) & hev          => fm &  ~in &  hev
     ; f4:  fm & ~f14 & ~f6 & ~f2 => fm & ~(out & in) & ~(~out & in) & ~(~in & hev) => fm &  ~in & ~hev
 
     ; (m0: hev, [m1: flat8out], [m2: flat8in], m3: fm, m8..15: p5 p4 p1 p0 q0 q1 q6 q7)
     ; filter2()
-%if %2 != 44
+%if %2 != 44 && %2 != 4
     mova                m6, [pb_80]                     ; already in m6 if 44_16
     SCRATCH              2, 15, rsp+%3+%4
 %if %2 == 16
     SCRATCH              1,  8, rsp+%3+%4+16
 %endif
 %endif
     pxor                m2, m6, rq0                     ; q0 ^ 0x80
     pxor                m4, m6, rp0                     ; p0 ^ 0x80
@@ -751,27 +788,27 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     pxor                m4, m6, rp1                     ; p1 ^ 0x80
     pxor                m5, m6, rq1                     ; q1 ^ 0x80
     psubsb              m4, m5                          ; (signed) p1 - q1
     paddsb              m4, m2                          ;   (q0 - p0) + (p1 - q1)
     paddsb              m4, m2                          ; 2*(q0 - p0) + (p1 - q1)
     paddsb              m4, m2                          ; 3*(q0 - p0) + (p1 - q1)
     paddsb              m6, m4, [pb_4]                  ; m6: f1 = clip(f + 4, 127)
     paddsb              m4, [pb_3]                      ; m4: f2 = clip(f + 3, 127)
-%if ARCH_X86_64
+%ifdef m8
     mova                m14, [pb_10]                    ; will be reused in filter4()
 %define rb10 m14
 %else
 %define rb10 [pb_10]
 %endif
     SRSHIFT3B_2X        m6, m4, rb10, m7                ; f1 and f2 sign byte shift by 3
     SIGN_SUB            m7, rq0, m6, m5                 ; m7 = q0 - f1
     SIGN_ADD            m1, rp0, m4, m5                 ; m1 = p0 + f2
-%if %2 != 44
-%if ARCH_X86_64
+%if %2 != 44 && %2 != 4
+%ifdef m8
     pandn               m6, m15, m3                     ;  ~mask(in) & mask(fm)
 %else
     mova                m6, [rsp+%3+%4]
     pandn               m6, m3
 %endif
     pand                m6, m0                          ; (~mask(in) & mask(fm)) & mask(hev)
 %else
     pand                m6, m3, m0
@@ -782,18 +819,18 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     ; (m0: hev, m1: p0', m2: q0-p0, m3: fm, m7: q0', [m8: flat8out], m10..13: p1 p0 q0 q1, m14: pb_10, [m15: flat8in], )
     ; filter4()
     mova                m4, m2
     paddsb              m2, m4                          ; 2 * (q0 - p0)
     paddsb              m2, m4                          ; 3 * (q0 - p0)
     paddsb              m6, m2, [pb_4]                  ; m6:  f1 = clip(f + 4, 127)
     paddsb              m2, [pb_3]                      ; m2: f2 = clip(f + 3, 127)
     SRSHIFT3B_2X        m6, m2, rb10, m4                ; f1 and f2 sign byte shift by 3
-%if %2 != 44
-%if ARCH_X86_64
+%if %2 != 44 && %2 != 4
+%ifdef m8
     pandn               m5, m15, m3                     ;               ~mask(in) & mask(fm)
 %else
     mova                m5, [rsp+%3+%4]
     pandn               m5, m3
 %endif
     pandn               m0, m5                          ; ~mask(hev) & (~mask(in) & mask(fm))
 %else
     pandn               m0, m3
@@ -810,36 +847,36 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     psubb               m6, [pb_40]                     ;
     SIGN_ADD            m1, rp1, m6, m2                 ; p1 + f
     SIGN_SUB            m4, rq1, m6, m2                 ; q1 - f
     MASK_APPLY          m1, rp1, m0, m2                 ; m1 = filter4(p1)
     MASK_APPLY          m4, rq1, m0, m2                 ; m4 = filter4(q1)
     mova                [P1], m1
     mova                [Q1], m4
 
-%if %2 != 44
+%if %2 != 44 && %2 != 4
     UNSCRATCH            2, 15, rsp+%3+%4
 %endif
 
     ; ([m1: flat8out], m2: flat8in, m3: fm, m10..13: p1 p0 q0 q1)
     ; filter6()
-%if %2 != 44
+%if %2 != 44 && %2 != 4
     pxor                m0, m0
-%if %2 > 16
+%if %2 != 16
     pand                m3, m2
 %else
     pand                m2, m3                          ;               mask(fm) & mask(in)
-%if ARCH_X86_64
+%ifdef m8
     pandn               m3, m8, m2                      ; ~mask(out) & (mask(fm) & mask(in))
 %else
     mova                m3, [rsp+%3+%4+16]
     pandn               m3, m2
 %endif
 %endif
-%if ARCH_X86_64
+%ifdef m8
     mova               m14, [P3]
     mova                m9, [Q3]
 %define rp3 m14
 %define rq3 m9
 %else
 %define rp3 [P3]
 %define rq3 [Q3]
 %endif
@@ -877,17 +914,17 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     ; q4  +4  -p3 -q3 +q4 +q7             .  q4   .                   .
     ; q5  +5  -p2 -q4 +q5 +q7                 .  q5   .               .
     ; q6  +6  -p1 -q5 +q6 +q7                     .  q6   .           .
 
 %if %2 == 16
     pand            m1, m2                                                              ; mask(out) & (mask(fm) & mask(in))
     mova            m2, [P7]
     mova            m3, [P6]
-%if ARCH_X86_64
+%ifdef m8
     mova            m8, [P5]
     mova            m9, [P4]
 %define rp5 m8
 %define rp4 m9
 %define rp5s m8
 %define rp4s m9
 %define rp3s m14
 %define rq4 m8
@@ -1003,26 +1040,27 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     movhps [P6],  m0
     movhps [P4],  m1
     movhps [P2],  m2
     movhps [P0],  m3
     movhps [Q3],  m5
     movhps [Q5],  m6
     movhps [Q7],  m7
 %endif
-%elif %2 == 44
+%elif %2 == 44 || %2 == 4
     SWAP 0, 1   ; m0 = p1
     SWAP 1, 7   ; m1 = p0
     SWAP 2, 5   ; m2 = q0
     SWAP 3, 4   ; m3 = q1
     DEFINE_REAL_P7_TO_Q7 2
     SBUTTERFLY  bw, 0, 1, 4
     SBUTTERFLY  bw, 2, 3, 4
     SBUTTERFLY  wd, 0, 2, 4
     SBUTTERFLY  wd, 1, 3, 4
+%if mmsize == 16
     movd  [P7], m0
     movd  [P3], m2
     movd  [Q0], m1
     movd  [Q4], m3
     psrldq  m0, 4
     psrldq  m1, 4
     psrldq  m2, 4
     psrldq  m3, 4
@@ -1042,83 +1080,111 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 
     psrldq  m1, 4
     psrldq  m2, 4
     psrldq  m3, 4
     movd  [P4], m0
     movd  [P0], m2
     movd  [Q3], m1
     movd  [Q7], m3
 %else
+    movd  [P7], m0
+    movd  [P5], m2
+    movd  [P3], m1
+    movd  [P1], m3
+    psrlq   m0, 32
+    psrlq   m2, 32
+    psrlq   m1, 32
+    psrlq   m3, 32
+    movd  [P6], m0
+    movd  [P4], m2
+    movd  [P2], m1
+    movd  [P0], m3
+%endif
+%else
     ; the following code do a transpose of 8 full lines to 16 half
     ; lines (high part). It is inlined to avoid the need of a staging area
     mova                    m0, [P3]
     mova                    m1, [P2]
     mova                    m2, [P1]
     mova                    m3, [P0]
     mova                    m4, [Q0]
     mova                    m5, [Q1]
-%if ARCH_X86_64
+%ifdef m8
     mova                    m6, [Q2]
 %endif
     mova                    m7, [Q3]
     DEFINE_REAL_P7_TO_Q7
-%if ARCH_X86_64
+%ifdef m8
     SBUTTERFLY  bw,  0,  1, 8
     SBUTTERFLY  bw,  2,  3, 8
     SBUTTERFLY  bw,  4,  5, 8
     SBUTTERFLY  bw,  6,  7, 8
     SBUTTERFLY  wd,  0,  2, 8
     SBUTTERFLY  wd,  1,  3, 8
     SBUTTERFLY  wd,  4,  6, 8
     SBUTTERFLY  wd,  5,  7, 8
     SBUTTERFLY  dq,  0,  4, 8
     SBUTTERFLY  dq,  1,  5, 8
     SBUTTERFLY  dq,  2,  6, 8
     SBUTTERFLY  dq,  3,  7, 8
 %else
     SBUTTERFLY  bw,  0,  1, 6
-    mova  [rsp+64], m1
-    mova        m6, [rsp+96]
+    mova [rsp+mmsize*4], m1
+    mova        m6, [rsp+mmsize*6]
     SBUTTERFLY  bw,  2,  3, 1
     SBUTTERFLY  bw,  4,  5, 1
     SBUTTERFLY  bw,  6,  7, 1
     SBUTTERFLY  wd,  0,  2, 1
-    mova  [rsp+96], m2
-    mova        m1, [rsp+64]
+    mova [rsp+mmsize*6], m2
+    mova        m1, [rsp+mmsize*4]
     SBUTTERFLY  wd,  1,  3, 2
     SBUTTERFLY  wd,  4,  6, 2
     SBUTTERFLY  wd,  5,  7, 2
     SBUTTERFLY  dq,  0,  4, 2
     SBUTTERFLY  dq,  1,  5, 2
+%if mmsize == 16
     movh      [Q0], m1
     movhps    [Q1], m1
-    mova        m2, [rsp+96]
+%else
+    mova      [P3], m1
+%endif
+    mova        m2, [rsp+mmsize*6]
     SBUTTERFLY  dq,  2,  6, 1
     SBUTTERFLY  dq,  3,  7, 1
 %endif
     SWAP         3, 6
     SWAP         1, 4
+%if mmsize == 16
     movh      [P7], m0
     movhps    [P6], m0
     movh      [P5], m1
     movhps    [P4], m1
     movh      [P3], m2
     movhps    [P2], m2
     movh      [P1], m3
     movhps    [P0], m3
-%if ARCH_X86_64
+%ifdef m8
     movh      [Q0], m4
     movhps    [Q1], m4
 %endif
     movh      [Q2], m5
     movhps    [Q3], m5
     movh      [Q4], m6
     movhps    [Q5], m6
     movh      [Q6], m7
     movhps    [Q7], m7
+%else
+    mova      [P7], m0
+    mova      [P6], m1
+    mova      [P5], m2
+    mova      [P4], m3
+    mova      [P2], m5
+    mova      [P1], m6
+    mova      [P0], m7
+%endif
 %endif
 %endif
 
     RET
 %endmacro
 
 %macro LPF_16_VH 5
 INIT_XMM %5
@@ -1132,8 +1198,14 @@ LPF_16_VH %1, %2, %3, %4, ssse3
 LPF_16_VH %1, %2, %3, %4, avx
 %endmacro
 
 LPF_16_VH_ALL_OPTS 16, 512, 256, 32
 LPF_16_VH_ALL_OPTS 44,   0, 128,  0
 LPF_16_VH_ALL_OPTS 48, 256, 128, 16
 LPF_16_VH_ALL_OPTS 84, 256, 128, 16
 LPF_16_VH_ALL_OPTS 88, 256, 128, 16
+
+INIT_MMX mmxext
+LOOPFILTER v, 4,   0,  0, 0
+LOOPFILTER h, 4,   0, 64, 0
+LOOPFILTER v, 8, 128,  0, 8
+LOOPFILTER h, 8, 128, 64, 8
--- a/media/ffvpx/libavcodec/x86/vp9lpf_16bpp.asm
+++ b/media/ffvpx/libavcodec/x86/vp9lpf_16bpp.asm
@@ -73,17 +73,17 @@ SECTION .text
 %if %0 == 3
 %define reg_%3 m%1
 %endif
 %elif %0 == 3
 %define reg_%3 [%2]
 %endif
 %endmacro
 
-; calulate p or q portion of flat8out
+; calculate p or q portion of flat8out
 %macro FLAT8OUT_HALF 0
     psubw               m4, m0                      ; q4-q0
     psubw               m5, m0                      ; q5-q0
     psubw               m6, m0                      ; q6-q0
     psubw               m7, m0                      ; q7-q0
     ABS2                m4, m5, m2, m3              ; abs(q4-q0) | abs(q5-q0)
     ABS2                m6, m7, m2, m3              ; abs(q6-q0) | abs(q7-q0)
     pcmpgtw             m4, reg_F                   ; abs(q4-q0) > F
--- a/media/ffvpx/libavutil/adler32.h
+++ b/media/ffvpx/libavutil/adler32.h
@@ -13,28 +13,33 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+/**
+ * @file
+ * @ingroup lavu_adler32
+ * Public header for Adler-32 hash function implementation.
+ */
+
 #ifndef AVUTIL_ADLER32_H
 #define AVUTIL_ADLER32_H
 
 #include <stdint.h>
 #include "attributes.h"
 
 /**
- * @file
- * Public header for libavutil Adler32 hasher
+ * @defgroup lavu_adler32 Adler-32
+ * @ingroup lavu_hash
+ * Adler-32 hash function implementation.
  *
- * @defgroup lavu_adler32 Adler32
- * @ingroup lavu_crypto
  * @{
  */
 
 /**
  * Calculate the Adler32 checksum of a buffer.
  *
  * Passing the return value to a subsequent av_adler32_update() call
  * allows the checksum of multiple buffers to be calculated as though
--- a/media/ffvpx/libavutil/avassert.h
+++ b/media/ffvpx/libavutil/avassert.h
@@ -54,13 +54,22 @@
 #endif
 
 
 /**
  * assert() equivalent, that does lie in speed critical code.
  */
 #if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1
 #define av_assert2(cond) av_assert0(cond)
+#define av_assert2_fpu() av_assert0_fpu()
 #else
 #define av_assert2(cond) ((void)0)
+#define av_assert2_fpu() ((void)0)
 #endif
 
+/**
+ * Assert that floating point opperations can be executed.
+ *
+ * This will av_assert0() that the cpu is not in MMX state on X86
+ */
+void av_assert0_fpu(void);
+
 #endif /* AVUTIL_AVASSERT_H */
--- a/media/ffvpx/libavutil/avconfig.h
+++ b/media/ffvpx/libavutil/avconfig.h
@@ -1,7 +1,7 @@
 /* Generated by ffconf */
 #ifndef AVUTIL_AVCONFIG_H
 #define AVUTIL_AVCONFIG_H
 #define AV_HAVE_BIGENDIAN 0
 #define AV_HAVE_FAST_UNALIGNED 1
-#define AV_HAVE_INCOMPATIBLE_LIBAV_ABI 0
+#define AV_HAVE_INCOMPATIBLE_FORK_ABI 0
 #endif /* AVUTIL_AVCONFIG_H */
--- a/media/ffvpx/libavutil/avutil.h
+++ b/media/ffvpx/libavutil/avutil.h
@@ -18,17 +18,18 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 #ifndef AVUTIL_AVUTIL_H
 #define AVUTIL_AVUTIL_H
 
 /**
  * @file
- * external API header
+ * @ingroup lavu
+ * Convenience header that includes @ref lavu "libavutil"'s core.
  */
 
 /**
  * @mainpage
  *
  * @section ffmpeg_intro Introduction
  *
  * This document describes the usage of the different libraries
@@ -73,33 +74,34 @@
  * public structs whose size is not part of public ABI (most public structs in
  * FFmpeg). New macros and enum values may be added. Behavior in undocumented
  * situations may change slightly (and be documented). All those are accompanied
  * by an entry in doc/APIchanges and incrementing either the minor or micro
  * version number.
  */
 
 /**
- * @defgroup lavu Common utility functions
+ * @defgroup lavu libavutil
+ * Common code shared across all FFmpeg libraries.
  *
- * @brief
- * libavutil contains the code shared across all the other FFmpeg
- * libraries
- *
- * @note In order to use the functions provided by avutil you must include
- * the specific header.
+ * @note
+ * libavutil is designed to be modular. In most cases, in order to use the
+ * functions provided by one component of libavutil you must explicitly include
+ * the specific header containing that feature. If you are only using
+ * media-related components, you could simply include libavutil/avutil.h, which
+ * brings in most of the "core" components.
  *
  * @{
  *
  * @defgroup lavu_crypto Crypto and Hashing
  *
  * @{
  * @}
  *
- * @defgroup lavu_math Maths
+ * @defgroup lavu_math Mathematics
  * @{
  *
  * @}
  *
  * @defgroup lavu_string String Manipulation
  *
  * @{
  *
--- a/media/ffvpx/libavutil/avutil.symbols
+++ b/media/ffvpx/libavutil/avutil.symbols
@@ -157,16 +157,17 @@ av_get_sample_fmt
 av_get_sample_fmt_name
 av_get_sample_fmt_string
 av_get_standard_channel_layout
 av_get_time_base_q
 av_get_token
 av_gettime
 av_gettime_relative
 av_gettime_relative_is_monotonic
+av_hwframe_get_buffer
 av_image_alloc
 av_image_check_sar
 av_image_check_size
 av_image_copy
 av_image_copy_plane
 av_image_copy_to_buffer
 av_image_fill_arrays
 av_image_fill_linesizes
--- a/media/ffvpx/libavutil/crc.h
+++ b/media/ffvpx/libavutil/crc.h
@@ -13,27 +13,39 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+/**
+ * @file
+ * @ingroup lavu_crc32
+ * Public header for CRC hash function implementation.
+ */
+
 #ifndef AVUTIL_CRC_H
 #define AVUTIL_CRC_H
 
 #include <stdint.h>
 #include <stddef.h>
 #include "attributes.h"
 #include "version.h"
 
 /**
- * @defgroup lavu_crc32 CRC32
- * @ingroup lavu_crypto
+ * @defgroup lavu_crc32 CRC
+ * @ingroup lavu_hash
+ * CRC (Cyclic Redundancy Check) hash function implementation.
+ *
+ * This module supports numerous CRC polynomials, in addition to the most
+ * widely used CRC-32-IEEE. See @ref AVCRCId for a list of available
+ * polynomials.
+ *
  * @{
  */
 
 typedef uint32_t AVCRC;
 
 typedef enum {
     AV_CRC_8_ATM,
     AV_CRC_16_ANSI,
--- a/media/ffvpx/libavutil/dict.c
+++ b/media/ffvpx/libavutil/dict.c
@@ -19,16 +19,17 @@
  */
 
 #include <string.h>
 
 #include "avstring.h"
 #include "dict.h"
 #include "internal.h"
 #include "mem.h"
+#include "time_internal.h"
 #include "bprint.h"
 
 struct AVDictionary {
     int count;
     AVDictionaryEntry *elems;
 };
 
 int av_dict_count(const AVDictionary *m)
@@ -248,8 +249,24 @@ int av_dict_get_string(const AVDictionar
         if (cnt++)
             av_bprint_append_data(&bprint, &pairs_sep, 1);
         av_bprint_escape(&bprint, t->key, special_chars, AV_ESCAPE_MODE_BACKSLASH, 0);
         av_bprint_append_data(&bprint, &key_val_sep, 1);
         av_bprint_escape(&bprint, t->value, special_chars, AV_ESCAPE_MODE_BACKSLASH, 0);
     }
     return av_bprint_finalize(&bprint, buffer);
 }
+
+int avpriv_dict_set_timestamp(AVDictionary **dict, const char *key, int64_t timestamp)
+{
+    time_t seconds = timestamp / 1000000;
+    struct tm *ptm, tmbuf;
+    ptm = gmtime_r(&seconds, &tmbuf);
+    if (ptm) {
+        char buf[32];
+        if (!strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S", ptm))
+            return AVERROR_EXTERNAL;
+        av_strlcatf(buf, sizeof(buf), ".%06dZ", (int)(timestamp % 1000000));
+        return av_dict_set(dict, key, buf, 0);
+    } else {
+        return AVERROR_EXTERNAL;
+    }
+}
--- a/media/ffvpx/libavutil/dummy_funcs.c
+++ b/media/ffvpx/libavutil/dummy_funcs.c
@@ -74,8 +74,10 @@ void *av_opt_ptr(const AVClass *avclass,
 void av_opt_freep_ranges(AVOptionRanges **ranges) {}
 int av_opt_query_ranges(AVOptionRanges **b, void *obj, const char *key, int flags) { return 0; }
 int av_opt_copy(void *dest, const void *src) { return 0; }
 int av_opt_query_ranges_default(AVOptionRanges **b, void *obj, const char *key, int flags) { return 0; }
 int av_opt_is_set_to_default(void *obj, const AVOption *o) { return 0; }
 int av_opt_is_set_to_default_by_name(void *obj, const char *name, int search_flags) { return 0; }
 int av_opt_serialize(void *obj, int opt_flags, int flags, char **buffer,
                      const char key_val_sep, const char pairs_sep) { return 0; }
+
+int av_hwframe_get_buffer(struct AVBufferRef* hwframe_ref, struct AVFrame* frame, int flags) { return 0; }
--- a/media/ffvpx/libavutil/dynarray.h
+++ b/media/ffvpx/libavutil/dynarray.h
@@ -37,17 +37,17 @@
  * @param av_array     pointer to the array, must be a lvalue
  * @param av_size      size of the array, must be an integer lvalue
  * @param av_success   statement to execute on success; at this point, the
  *                     size variable is not yet incremented
  * @param av_failure   statement to execute on failure; if this happens, the
  *                     array and size are not changed; the statement can end
  *                     with a return or a goto
  */
-#define AV_DYNARRAY_ADD(av_size_max, av_elt_size, av_array, av_size, \
+#define FF_DYNARRAY_ADD(av_size_max, av_elt_size, av_array, av_size, \
                         av_success, av_failure) \
     do { \
         size_t av_size_new = (av_size); \
         if (!((av_size) & ((av_size) - 1))) { \
             av_size_new = (av_size) ? (av_size) << 1 : 1; \
             if (av_size_new > (av_size_max) / (av_elt_size)) { \
                 av_size_new = 0; \
             } else { \
--- a/media/ffvpx/libavutil/frame.c
+++ b/media/ffvpx/libavutil/frame.c
@@ -94,31 +94,36 @@ const char *av_get_colorspace_name(enum 
 static void get_frame_defaults(AVFrame *frame)
 {
     if (frame->extended_data != frame->data)
         av_freep(&frame->extended_data);
 
     memset(frame, 0, sizeof(*frame));
 
     frame->pts                   =
-    frame->pkt_dts               =
+    frame->pkt_dts               = AV_NOPTS_VALUE;
+#if FF_API_PKT_PTS
+FF_DISABLE_DEPRECATION_WARNINGS
     frame->pkt_pts               = AV_NOPTS_VALUE;
-    av_frame_set_best_effort_timestamp(frame, AV_NOPTS_VALUE);
-    av_frame_set_pkt_duration         (frame, 0);
-    av_frame_set_pkt_pos              (frame, -1);
-    av_frame_set_pkt_size             (frame, -1);
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
+    frame->best_effort_timestamp = AV_NOPTS_VALUE;
+    frame->pkt_duration        = 0;
+    frame->pkt_pos             = -1;
+    frame->pkt_size            = -1;
     frame->key_frame           = 1;
     frame->sample_aspect_ratio = (AVRational){ 0, 1 };
     frame->format              = -1; /* unknown */
     frame->extended_data       = frame->data;
     frame->color_primaries     = AVCOL_PRI_UNSPECIFIED;
     frame->color_trc           = AVCOL_TRC_UNSPECIFIED;
     frame->colorspace          = AVCOL_SPC_UNSPECIFIED;
     frame->color_range         = AVCOL_RANGE_UNSPECIFIED;
     frame->chroma_location     = AVCHROMA_LOC_UNSPECIFIED;
+    frame->flags               = 0;
 }
 
 static void free_side_data(AVFrameSideData **ptr_sd)
 {
     AVFrameSideData *sd = *ptr_sd;
 
     av_buffer_unref(&sd->buf);
     av_dict_free(&sd->metadata);
@@ -289,17 +294,21 @@ static int frame_copy_props(AVFrame *dst
     dst->sample_aspect_ratio    = src->sample_aspect_ratio;
     dst->pts                    = src->pts;
     dst->repeat_pict            = src->repeat_pict;
     dst->interlaced_frame       = src->interlaced_frame;
     dst->top_field_first        = src->top_field_first;
     dst->palette_has_changed    = src->palette_has_changed;
     dst->sample_rate            = src->sample_rate;
     dst->opaque                 = src->opaque;
+#if FF_API_PKT_PTS
+FF_DISABLE_DEPRECATION_WARNINGS
     dst->pkt_pts                = src->pkt_pts;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
     dst->pkt_dts                = src->pkt_dts;
     dst->pkt_pos                = src->pkt_pos;
     dst->pkt_size               = src->pkt_size;
     dst->pkt_duration           = src->pkt_duration;
     dst->reordered_opaque       = src->reordered_opaque;
     dst->quality                = src->quality;
     dst->best_effort_timestamp  = src->best_effort_timestamp;
     dst->coded_picture_number   = src->coded_picture_number;
--- a/media/ffvpx/libavutil/frame.h
+++ b/media/ffvpx/libavutil/frame.h
@@ -173,17 +173,17 @@ typedef struct AVFrameSideData {
  *
  * sizeof(AVFrame) is not a part of the public ABI, so new fields may be added
  * to the end with a minor bump.
  * Similarly fields that are marked as to be only accessed by
  * av_opt_ptr() can be reordered. This allows 2 forks to add fields
  * without breaking compatibility with each other.
  *
  * Fields can be accessed through AVOptions, the name string used, matches the
- * C structure field name for fields accessable through AVOptions. The AVClass
+ * C structure field name for fields accessible through AVOptions. The AVClass
  * for AVFrame can be obtained from avcodec_get_frame_class()
  */
 typedef struct AVFrame {
 #define AV_NUM_DATA_POINTERS 8
     /**
      * pointer to the picture/channel planes.
      * This might be different from the first allocated byte
      *
@@ -262,20 +262,24 @@ typedef struct AVFrame {
      */
     AVRational sample_aspect_ratio;
 
     /**
      * Presentation timestamp in time_base units (time when frame should be shown to user).
      */
     int64_t pts;
 
+#if FF_API_PKT_PTS
     /**
      * PTS copied from the AVPacket that was decoded to produce this frame.
+     * @deprecated use the pts field instead
      */
+    attribute_deprecated
     int64_t pkt_pts;
+#endif
 
     /**
      * DTS copied from the AVPacket that triggered returning this frame. (if frame threading isn't used)
      * This is also the Presentation time of this AVFrame calculated from
      * only AVPacket.dts values without pts values.
      */
     int64_t pkt_dts;
 
@@ -380,26 +384,31 @@ typedef struct AVFrame {
      */
     int        nb_extended_buf;
 
     AVFrameSideData **side_data;
     int            nb_side_data;
 
 /**
  * @defgroup lavu_frame_flags AV_FRAME_FLAGS
+ * @ingroup lavu_frame
  * Flags describing additional frame properties.
  *
  * @{
  */
 
 /**
  * The frame data may be corrupted, e.g. due to decoding errors.
  */
 #define AV_FRAME_FLAG_CORRUPT       (1 << 0)
 /**
+ * A flag to mark the frames which need to be decoded, but shouldn't be output.
+ */
+#define AV_FRAME_FLAG_DISCARD   (1 << 2)
+/**
  * @}
  */
 
     /**
      * Frame flags, a combination of @ref lavu_frame_flags
      */
     int flags;
 
--- a/media/ffvpx/libavutil/hwcontext.h
+++ b/media/ffvpx/libavutil/hwcontext.h
@@ -24,16 +24,17 @@
 #include "log.h"
 #include "pixfmt.h"
 
 enum AVHWDeviceType {
     AV_HWDEVICE_TYPE_VDPAU,
     AV_HWDEVICE_TYPE_CUDA,
     AV_HWDEVICE_TYPE_VAAPI,
     AV_HWDEVICE_TYPE_DXVA2,
+    AV_HWDEVICE_TYPE_QSV,
 };
 
 typedef struct AVHWDeviceInternal AVHWDeviceInternal;
 
 /**
  * This struct aggregates all the (hardware/vendor-specific) "high-level" state,
  * i.e. state that is not tied to a concrete processing configuration.
  * E.g., in an API that supports hardware-accelerated encoding and decoding,
--- a/media/ffvpx/libavutil/internal.h
+++ b/media/ffvpx/libavutil/internal.h
@@ -325,11 +325,21 @@ static av_always_inline av_const int avp
         if (x < 0)
             x += 2 * w;
     }
     return x;
 }
 
 void ff_check_pixfmt_descriptors(void);
 
+/**
+ * Set a dictionary value to an ISO-8601 compliant timestamp string.
+ *
+ * @param s AVFormatContext
+ * @param key metadata key
+ * @param timestamp unix timestamp in microseconds
+ * @return <0 on error
+ */
+int avpriv_dict_set_timestamp(AVDictionary **dict, const char *key, int64_t timestamp);
+
 extern const uint8_t ff_reverse[256];
 
 #endif /* AVUTIL_INTERNAL_H */
--- a/media/ffvpx/libavutil/log.h
+++ b/media/ffvpx/libavutil/log.h
@@ -39,17 +39,17 @@ typedef enum {
     AV_CLASS_CATEGORY_SWSCALER,
     AV_CLASS_CATEGORY_SWRESAMPLER,
     AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT = 40,
     AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
     AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT,
     AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
     AV_CLASS_CATEGORY_DEVICE_OUTPUT,
     AV_CLASS_CATEGORY_DEVICE_INPUT,
-    AV_CLASS_CATEGORY_NB, ///< not part of ABI/API
+    AV_CLASS_CATEGORY_NB  ///< not part of ABI/API
 }AVClassCategory;
 
 #define AV_IS_INPUT_DEVICE(category) \
     (((category) == AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT) || \
      ((category) == AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT) || \
      ((category) == AV_CLASS_CATEGORY_DEVICE_INPUT))
 
 #define AV_IS_OUTPUT_DEVICE(category) \
--- a/media/ffvpx/libavutil/mathematics.h
+++ b/media/ffvpx/libavutil/mathematics.h
@@ -13,16 +13,22 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+/**
+ * @file
+ * @addtogroup lavu_math
+ * Mathematical utilities for working with timestamp and time base.
+ */
+
 #ifndef AVUTIL_MATHEMATICS_H
 #define AVUTIL_MATHEMATICS_H
 
 #include <stdint.h>
 #include <math.h>
 #include "attributes.h"
 #include "rational.h"
 #include "intfloat.h"
@@ -58,108 +64,179 @@
 #define NAN            av_int2float(0x7fc00000)
 #endif
 #ifndef INFINITY
 #define INFINITY       av_int2float(0x7f800000)
 #endif
 
 /**
  * @addtogroup lavu_math
+ *
  * @{
  */
 
-
+/**
+ * Rounding methods.
+ */
 enum AVRounding {
     AV_ROUND_ZERO     = 0, ///< Round toward zero.
     AV_ROUND_INF      = 1, ///< Round away from zero.
     AV_ROUND_DOWN     = 2, ///< Round toward -infinity.
     AV_ROUND_UP       = 3, ///< Round toward +infinity.
     AV_ROUND_NEAR_INF = 5, ///< Round to nearest and halfway cases away from zero.
-    AV_ROUND_PASS_MINMAX = 8192, ///< Flag to pass INT64_MIN/MAX through instead of rescaling, this avoids special cases for AV_NOPTS_VALUE
+    /**
+     * Flag telling rescaling functions to pass `INT64_MIN`/`MAX` through
+     * unchanged, avoiding special cases for #AV_NOPTS_VALUE.
+     *
+     * Unlike other values of the enumeration AVRounding, this value is a
+     * bitmask that must be used in conjunction with another value of the
+     * enumeration through a bitwise OR, in order to set behavior for normal
+     * cases.
+     *
+     * @code{.c}
+     * av_rescale_rnd(3, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX);
+     * // Rescaling 3:
+     * //     Calculating 3 * 1 / 2
+     * //     3 / 2 is rounded up to 2
+     * //     => 2
+     *
+     * av_rescale_rnd(AV_NOPTS_VALUE, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX);
+     * // Rescaling AV_NOPTS_VALUE:
+     * //     AV_NOPTS_VALUE == INT64_MIN
+     * //     AV_NOPTS_VALUE is passed through
+     * //     => AV_NOPTS_VALUE
+     * @endcode
+     */
+    AV_ROUND_PASS_MINMAX = 8192,
 };
 
 /**
- * Compute the greatest common divisor of a and b.
+ * Compute the greatest common divisor of two integer operands.
  *
- * @return gcd of a and b up to sign; if a >= 0 and b >= 0, return value is >= 0;
+ * @param a,b Operands
+ * @return GCD of a and b up to sign; if a >= 0 and b >= 0, return value is >= 0;
  * if a == 0 and b == 0, returns 0.
  */
 int64_t av_const av_gcd(int64_t a, int64_t b);
 
 /**
  * Rescale a 64-bit integer with rounding to nearest.
- * A simple a*b/c isn't possible as it can overflow.
+ *
+ * The operation is mathematically equivalent to `a * b / c`, but writing that
+ * directly can overflow.
+ *
+ * This function is equivalent to av_rescale_rnd() with #AV_ROUND_NEAR_INF.
+ *
+ * @see av_rescale_rnd(), av_rescale_q(), av_rescale_q_rnd()
  */
 int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const;
 
 /**
  * Rescale a 64-bit integer with specified rounding.
- * A simple a*b/c isn't possible as it can overflow.
+ *
+ * The operation is mathematically equivalent to `a * b / c`, but writing that
+ * directly can overflow, and does not support different rounding methods.
  *
- * @return rescaled value a, or if AV_ROUND_PASS_MINMAX is set and a is
- *         INT64_MIN or INT64_MAX then a is passed through unchanged.
+ * @see av_rescale(), av_rescale_q(), av_rescale_q_rnd()
  */
-int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding) av_const;
+int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd) av_const;
 
 /**
  * Rescale a 64-bit integer by 2 rational numbers.
+ *
+ * The operation is mathematically equivalent to `a * bq / cq`.
+ *
+ * This function is equivalent to av_rescale_q_rnd() with #AV_ROUND_NEAR_INF.
+ *
+ * @see av_rescale(), av_rescale_rnd(), av_rescale_q_rnd()
  */
 int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const;
 
 /**
  * Rescale a 64-bit integer by 2 rational numbers with specified rounding.
  *
- * @return rescaled value a, or if AV_ROUND_PASS_MINMAX is set and a is
- *         INT64_MIN or INT64_MAX then a is passed through unchanged.
+ * The operation is mathematically equivalent to `a * bq / cq`.
+ *
+ * @see av_rescale(), av_rescale_rnd(), av_rescale_q()
  */
 int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq,
-                         enum AVRounding) av_const;
+                         enum AVRounding rnd) av_const;
 
 /**
- * Compare 2 timestamps each in its own timebases.
- * The result of the function is undefined if one of the timestamps
- * is outside the int64_t range when represented in the others timebase.
- * @return -1 if ts_a is before ts_b, 1 if ts_a is after ts_b or 0 if they represent the same position
+ * Compare two timestamps each in its own time base.
+ *
+ * @return One of the following values:
+ *         - -1 if `ts_a` is before `ts_b`
+ *         - 1 if `ts_a` is after `ts_b`
+ *         - 0 if they represent the same position
+ *
+ * @warning
+ * The result of the function is undefined if one of the timestamps is outside
+ * the `int64_t` range when represented in the other's timebase.
  */
 int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b);
 
 /**
- * Compare 2 integers modulo mod.
- * That is we compare integers a and b for which only the least
- * significant log2(mod) bits are known.
+ * Compare the remainders of two integer operands divided by a common divisor.
+ *
+ * In other words, compare the least significant `log2(mod)` bits of integers
+ * `a` and `b`.
  *
- * @param mod must be a power of 2
- * @return a negative value if a is smaller than b
- *         a positive value if a is greater than b
- *         0                if a equals          b
+ * @code{.c}
+ * av_compare_mod(0x11, 0x02, 0x10) < 0 // since 0x11 % 0x10  (0x1) < 0x02 % 0x10  (0x2)
+ * av_compare_mod(0x11, 0x02, 0x20) > 0 // since 0x11 % 0x20 (0x11) > 0x02 % 0x20 (0x02)
+ * @endcode
+ *
+ * @param a,b Operands
+ * @param mod Divisor; must be a power of 2
+ * @return
+ *         - a negative value if `a % mod < b % mod`
+ *         - a positive value if `a % mod > b % mod`
+ *         - zero             if `a % mod == b % mod`
  */
 int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod);
 
 /**
  * Rescale a timestamp while preserving known durations.
  *
- * @param in_ts Input timestamp
- * @param in_tb Input timebase
- * @param fs_tb Duration and *last timebase
- * @param duration duration till the next call
- * @param out_tb Output timebase
+ * This function is designed to be called per audio packet to scale the input
+ * timestamp to a different time base. Compared to a simple av_rescale_q()
+ * call, this function is robust against possible inconsistent frame durations.
+ *
+ * The `last` parameter is a state variable that must be preserved for all
+ * subsequent calls for the same stream. For the first call, `*last` should be
+ * initialized to #AV_NOPTS_VALUE.
+ *
+ * @param[in]     in_tb    Input time base
+ * @param[in]     in_ts    Input timestamp
+ * @param[in]     fs_tb    Duration time base; typically this is finer-grained
+ *                         (greater) than `in_tb` and `out_tb`
+ * @param[in]     duration Duration till the next call to this function (i.e.
+ *                         duration of the current packet/frame)
+ * @param[in,out] last     Pointer to a timestamp expressed in terms of
+ *                         `fs_tb`, acting as a state variable
+ * @param[in]     out_tb   Output timebase
+ * @return        Timestamp expressed in terms of `out_tb`
+ *
+ * @note In the context of this function, "duration" is in term of samples, not
+ *       seconds.
  */
 int64_t av_rescale_delta(AVRational in_tb, int64_t in_ts,  AVRational fs_tb, int duration, int64_t *last, AVRational out_tb);
 
 /**
  * Add a value to a timestamp.
  *
  * This function guarantees that when the same value is repeatly added that
  * no accumulation of rounding errors occurs.
  *
- * @param ts Input timestamp
- * @param ts_tb Input timestamp timebase
- * @param inc value to add to ts
- * @param inc_tb inc timebase
+ * @param[in] ts     Input timestamp
+ * @param[in] ts_tb  Input timestamp time base
+ * @param[in] inc    Value to be added
+ * @param[in] inc_tb Time base of `inc`
  */
 int64_t av_add_stable(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t inc);
 
 
-    /**
+/**
  * @}
  */
 
 #endif /* AVUTIL_MATHEMATICS_H */
--- a/media/ffvpx/libavutil/mem.c
+++ b/media/ffvpx/libavutil/mem.c
@@ -174,17 +174,17 @@ void *av_realloc_f(void *ptr, size_t nel
     size_t size;
     void *r;
 
     if (av_size_mult(elsize, nelem, &size)) {
         av_free(ptr);
         return NULL;
     }
     r = av_realloc(ptr, size);
-    if (!r && size)
+    if (!r)
         av_free(ptr);
     return r;
 }
 
 int av_reallocp(void *ptr, size_t size)
 {
     void *val;
 
@@ -307,45 +307,45 @@ void *av_memdup(const void *p, size_t si
     return ptr;
 }
 
 int av_dynarray_add_nofree(void *tab_ptr, int *nb_ptr, void *elem)
 {
     void **tab;
     memcpy(&tab, tab_ptr, sizeof(tab));
 
-    AV_DYNARRAY_ADD(INT_MAX, sizeof(*tab), tab, *nb_ptr, {
+    FF_DYNARRAY_ADD(INT_MAX, sizeof(*tab), tab, *nb_ptr, {
         tab[*nb_ptr] = elem;
         memcpy(tab_ptr, &tab, sizeof(tab));
     }, {
         return AVERROR(ENOMEM);
     });
     return 0;
 }
 
 void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem)
 {
     void **tab;
     memcpy(&tab, tab_ptr, sizeof(tab));
 
-    AV_DYNARRAY_ADD(INT_MAX, sizeof(*tab), tab, *nb_ptr, {
+    FF_DYNARRAY_ADD(INT_MAX, sizeof(*tab), tab, *nb_ptr, {
         tab[*nb_ptr] = elem;
         memcpy(tab_ptr, &tab, sizeof(tab));
     }, {
         *nb_ptr = 0;
         av_freep(tab_ptr);
     });
 }
 
 void *av_dynarray2_add(void **tab_ptr, int *nb_ptr, size_t elem_size,
                        const uint8_t *elem_data)
 {
     uint8_t *tab_elem_data = NULL;
 
-    AV_DYNARRAY_ADD(INT_MAX, elem_size, *tab_ptr, *nb_ptr, {
+    FF_DYNARRAY_ADD(INT_MAX, elem_size, *tab_ptr, *nb_ptr, {
         tab_elem_data = (uint8_t *)*tab_ptr + (*nb_ptr) * elem_size;
         if (elem_data)
             memcpy(tab_elem_data, elem_data, elem_size);
         else if (CONFIG_MEMORY_POISONING)
             memset(tab_elem_data, FF_MEMORY_POISON, elem_size);
     }, {
         av_freep(tab_ptr);
         *nb_ptr = 0;
--- a/media/ffvpx/libavutil/mem.h
+++ b/media/ffvpx/libavutil/mem.h
@@ -15,34 +15,82 @@
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 /**
  * @file
- * memory handling functions
+ * @ingroup lavu_mem
+ * Memory handling functions
  */
 
 #ifndef AVUTIL_MEM_H
 #define AVUTIL_MEM_H
 
 #include <limits.h>
 #include <stdint.h>
 
 #include "attributes.h"
 #include "error.h"
 #include "avutil.h"
 
 /**
  * @addtogroup lavu_mem
+ * Utilities for manipulating memory.
+ *
+ * FFmpeg has several applications of memory that are not required of a typical
+ * program. For example, the computing-heavy components like video decoding and
+ * encoding can be sped up significantly through the use of aligned memory.
+ *
+ * However, for each of FFmpeg's applications of memory, there might not be a
+ * recognized or standardized API for that specific use. Memory alignment, for
+ * instance, varies wildly depending on operating systems, architectures, and
+ * compilers. Hence, this component of @ref libavutil is created to make
+ * dealing with memory consistently possible on all platforms.
+ *
+ * @{
+ *
+ * @defgroup lavu_mem_macros Alignment Macros
+ * Helper macros for declaring aligned variables.
  * @{
  */
 
+/**
+ * @def DECLARE_ALIGNED(n,t,v)
+ * Declare a variable that is aligned in memory.
+ *
+ * @code{.c}
+ * DECLARE_ALIGNED(16, uint16_t, aligned_int) = 42;
+ * DECLARE_ALIGNED(32, uint8_t, aligned_array)[128];
+ *
+ * // The default-alignment equivalent would be
+ * uint16_t aligned_int = 42;
+ * uint8_t aligned_array[128];
+ * @endcode
+ *
+ * @param n Minimum alignment in bytes
+ * @param t Type of the variable (or array element)
+ * @param v Name of the variable
+ */
+
+/**
+ * @def DECLARE_ASM_CONST(n,t,v)
+ * Declare a static constant aligned variable appropriate for use in inline
+ * assembly code.
+ *
+ * @code{.c}
+ * DECLARE_ASM_CONST(16, uint64_t, pw_08) = UINT64_C(0x0008000800080008);
+ * @endcode
+ *
+ * @param n Minimum alignment in bytes
+ * @param t Type of the variable (or array element)
+ * @param v Name of the variable
+ */
 
 #if defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1110 || defined(__SUNPRO_C)
     #define DECLARE_ALIGNED(n,t,v)      t __attribute__ ((aligned (n))) v
     #define DECLARE_ASM_CONST(n,t,v)    const t __attribute__ ((aligned (n))) v
 #elif defined(__TI_COMPILER_VERSION__)
     #define DECLARE_ALIGNED(n,t,v)                      \
         AV_PRAGMA(DATA_ALIGN(v,n))                      \
         t __attribute__((aligned(n))) v
@@ -55,352 +103,594 @@
 #elif defined(_MSC_VER)
     #define DECLARE_ALIGNED(n,t,v)      __declspec(align(n)) t v
     #define DECLARE_ASM_CONST(n,t,v)    __declspec(align(n)) static const t v
 #else
     #define DECLARE_ALIGNED(n,t,v)      t v
     #define DECLARE_ASM_CONST(n,t,v)    static const t v
 #endif
 
+/**
+ * @}
+ */
+
+/**
+ * @defgroup lavu_mem_attrs Function Attributes
+ * Function attributes applicable to memory handling functions.
+ *
+ * These function attributes can help compilers emit more useful warnings, or
+ * generate better code.
+ * @{
+ */
+
+/**
+ * @def av_malloc_attrib
+ * Function attribute denoting a malloc-like function.
+ *
+ * @see <a href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-g_t_0040code_007bmalloc_007d-function-attribute-3251">Function attribute `malloc` in GCC's documentation</a>
+ */
+
 #if AV_GCC_VERSION_AT_LEAST(3,1)
     #define av_malloc_attrib __attribute__((__malloc__))
 #else
     #define av_malloc_attrib
 #endif
 
+/**
+ * @def av_alloc_size(...)
+ * Function attribute used on a function that allocates memory, whose size is
+ * given by the specified parameter(s).
+ *
+ * @code{.c}
+ * void *av_malloc(size_t size) av_alloc_size(1);
+ * void *av_calloc(size_t nmemb, size_t size) av_alloc_size(1, 2);
+ * @endcode
+ *
+ * @param ... One or two parameter indexes, separated by a comma
+ *
+ * @see <a href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-g_t_0040code_007balloc_005fsize_007d-function-attribute-3220">Function attribute `alloc_size` in GCC's documentation</a>
+ */
+
 #if AV_GCC_VERSION_AT_LEAST(4,3)
     #define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__)))
 #else
     #define av_alloc_size(...)
 #endif
 
 /**
- * Allocate a block of size bytes with alignment suitable for all
- * memory accesses (including vectors if available on the CPU).
- * @param size Size in bytes for the memory block to be allocated.
- * @return Pointer to the allocated block, NULL if the block cannot
- * be allocated.
+ * @}
+ */
+
+/**
+ * @defgroup lavu_mem_funcs Heap Management
+ * Functions responsible for allocating, freeing, and copying memory.
+ *
+ * All memory allocation functions have a built-in upper limit of `INT_MAX`
+ * bytes. This may be changed with av_max_alloc(), although exercise extreme
+ * caution when doing so.
+ *
+ * @{
+ */
+
+/**
+ * Allocate a memory block with alignment suitable for all memory accesses
+ * (including vectors if available on the CPU).
+ *
+ * @param size Size in bytes for the memory block to be allocated
+ * @return Pointer to the allocated block, or `NULL` if the block cannot
+ *         be allocated
  * @see av_mallocz()
  */
 void *av_malloc(size_t size) av_malloc_attrib av_alloc_size(1);
 
 /**
- * Allocate a block of size * nmemb bytes with av_malloc().
- * @param nmemb Number of elements
- * @param size Size of the single element
- * @return Pointer to the allocated block, NULL if the block cannot
- * be allocated.
+ * Allocate a memory block with alignment suitable for all memory accesses
+ * (including vectors if available on the CPU) and zero all the bytes of the
+ * block.
+ *
+ * @param size Size in bytes for the memory block to be allocated
+ * @return Pointer to the allocated block, or `NULL` if it cannot be allocated
+ * @see av_malloc()
+ */
+void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1);
+
+/**
+ * Allocate a memory block for an array with av_malloc().
+ *
+ * The allocated memory will have size `size * nmemb` bytes.
+ *
+ * @param nmemb Number of element
+ * @param size  Size of a single element
+ * @return Pointer to the allocated block, or `NULL` if the block cannot
+ *         be allocated
  * @see av_malloc()
  */
 av_alloc_size(1, 2) static inline void *av_malloc_array(size_t nmemb, size_t size)
 {
     if (!size || nmemb >= INT_MAX / size)
         return NULL;
     return av_malloc(nmemb * size);
 }
 
 /**
- * Allocate or reallocate a block of memory.
- * If ptr is NULL and size > 0, allocate a new block. If
- * size is zero, free the memory block pointed to by ptr.
- * @param ptr Pointer to a memory block already allocated with
- * av_realloc() or NULL.
- * @param size Size in bytes of the memory block to be allocated or
- * reallocated.
- * @return Pointer to a newly-reallocated block or NULL if the block
- * cannot be reallocated or the function is used to free the memory block.
- * @warning Pointers originating from the av_malloc() family of functions must
- *          not be passed to av_realloc(). The former can be implemented using
- *          memalign() (or other functions), and there is no guarantee that
- *          pointers from such functions can be passed to realloc() at all.
- *          The situation is undefined according to POSIX and may crash with
- *          some libc implementations.
- * @see av_fast_realloc()
- */
-void *av_realloc(void *ptr, size_t size) av_alloc_size(2);
-
-/**
- * Allocate or reallocate a block of memory.
- * This function does the same thing as av_realloc, except:
- * - It takes two arguments and checks the result of the multiplication for
- *   integer overflow.
- * - It frees the input block in case of failure, thus avoiding the memory
- *   leak with the classic "buf = realloc(buf); if (!buf) return -1;".
- */
-void *av_realloc_f(void *ptr, size_t nelem, size_t elsize);
-
-/**
- * Allocate or reallocate a block of memory.
- * If *ptr is NULL and size > 0, allocate a new block. If
- * size is zero, free the memory block pointed to by ptr.
- * @param   ptr Pointer to a pointer to a memory block already allocated
- *          with av_realloc(), or pointer to a pointer to NULL.
- *          The pointer is updated on success, or freed on failure.
- * @param   size Size in bytes for the memory block to be allocated or
- *          reallocated
- * @return  Zero on success, an AVERROR error code on failure.
- * @warning Pointers originating from the av_malloc() family of functions must
- *          not be passed to av_reallocp(). The former can be implemented using
- *          memalign() (or other functions), and there is no guarantee that
- *          pointers from such functions can be passed to realloc() at all.
- *          The situation is undefined according to POSIX and may crash with
- *          some libc implementations.
- */
-av_warn_unused_result
-int av_reallocp(void *ptr, size_t size);
-
-/**
- * Allocate or reallocate an array.
- * If ptr is NULL and nmemb > 0, allocate a new block. If
- * nmemb is zero, free the memory block pointed to by ptr.
- * @param ptr Pointer to a memory block already allocated with
- * av_realloc() or NULL.
+ * Allocate a memory block for an array with av_mallocz().
+ *
+ * The allocated memory will have size `size * nmemb` bytes.
+ *
  * @param nmemb Number of elements
- * @param size Size of the single element
- * @return Pointer to a newly-reallocated block or NULL if the block
- * cannot be reallocated or the function is used to free the memory block.
- * @warning Pointers originating from the av_malloc() family of functions must
- *          not be passed to av_realloc(). The former can be implemented using
- *          memalign() (or other functions), and there is no guarantee that
- *          pointers from such functions can be passed to realloc() at all.
- *          The situation is undefined according to POSIX and may crash with
- *          some libc implementations.
- */
-av_alloc_size(2, 3) void *av_realloc_array(void *ptr, size_t nmemb, size_t size);
-
-/**
- * Allocate or reallocate an array through a pointer to a pointer.
- * If *ptr is NULL and nmemb > 0, allocate a new block. If
- * nmemb is zero, free the memory block pointed to by ptr.
- * @param ptr Pointer to a pointer to a memory block already allocated
- * with av_realloc(), or pointer to a pointer to NULL.
- * The pointer is updated on success, or freed on failure.
- * @param nmemb Number of elements
- * @param size Size of the single element
- * @return Zero on success, an AVERROR error code on failure.
- * @warning Pointers originating from the av_malloc() family of functions must
- *          not be passed to av_realloc(). The former can be implemented using
- *          memalign() (or other functions), and there is no guarantee that
- *          pointers from such functions can be passed to realloc() at all.
- *          The situation is undefined according to POSIX and may crash with
- *          some libc implementations.
- */
-av_alloc_size(2, 3) int av_reallocp_array(void *ptr, size_t nmemb, size_t size);
-
-/**
- * Free a memory block which has been allocated with av_malloc(z)() or
- * av_realloc().
- * @param ptr Pointer to the memory block which should be freed.
- * @note ptr = NULL is explicitly allowed.
- * @note It is recommended that you use av_freep() instead.
- * @see av_freep()
- */
-void av_free(void *ptr);
-
-/**
- * Allocate a block of size bytes with alignment suitable for all
- * memory accesses (including vectors if available on the CPU) and
- * zero all the bytes of the block.
- * @param size Size in bytes for the memory block to be allocated.
- * @return Pointer to the allocated block, NULL if it cannot be allocated.
- * @see av_malloc()
- */
-void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1);
-
-/**
- * Allocate a block of nmemb * size bytes with alignment suitable for all
- * memory accesses (including vectors if available on the CPU) and
- * zero all the bytes of the block.
- * The allocation will fail if nmemb * size is greater than or equal
- * to INT_MAX.
- * @param nmemb
- * @param size
- * @return Pointer to the allocated block, NULL if it cannot be allocated.
- */
-void *av_calloc(size_t nmemb, size_t size) av_malloc_attrib;
-
-/**
- * Allocate a block of size * nmemb bytes with av_mallocz().
- * @param nmemb Number of elements
- * @param size Size of the single element
- * @return Pointer to the allocated block, NULL if the block cannot
- * be allocated.
+ * @param size  Size of the single element
+ * @return Pointer to the allocated block, or `NULL` if the block cannot
+ *         be allocated
+ *
  * @see av_mallocz()
  * @see av_malloc_array()
  */
 av_alloc_size(1, 2) static inline void *av_mallocz_array(size_t nmemb, size_t size)
 {
     if (!size || nmemb >= INT_MAX / size)
         return NULL;
     return av_mallocz(nmemb * size);
 }
 
 /**
- * Duplicate the string s.
- * @param s string to be duplicated
- * @return Pointer to a newly-allocated string containing a
- * copy of s or NULL if the string cannot be allocated.
+ * Non-inlined equivalent of av_mallocz_array().
+ *
+ * Created for symmetry with the calloc() C function.
+ */
+void *av_calloc(size_t nmemb, size_t size) av_malloc_attrib;
+
+/**
+ * Allocate, reallocate, or free a block of memory.
+ *
+ * If `ptr` is `NULL` and `size` > 0, allocate a new block. If `size` is
+ * zero, free the memory block pointed to by `ptr`. Otherwise, expand or
+ * shrink that block of memory according to `size`.
+ *
+ * @param ptr  Pointer to a memory block already allocated with
+ *             av_realloc() or `NULL`
+ * @param size Size in bytes of the memory block to be allocated or
+ *             reallocated
+ *
+ * @return Pointer to a newly-reallocated block or `NULL` if the block
+ *         cannot be reallocated or the function is used to free the memory block
+ *
+ * @warning Unlike av_malloc(), the returned pointer is not guaranteed to be
+ *          correctly aligned.
+ * @see av_fast_realloc()
+ * @see av_reallocp()
+ */
+void *av_realloc(void *ptr, size_t size) av_alloc_size(2);
+
+/**
+ * Allocate, reallocate, or free a block of memory through a pointer to a
+ * pointer.
+ *
+ * If `*ptr` is `NULL` and `size` > 0, allocate a new block. If `size` is
+ * zero, free the memory block pointed to by `*ptr`. Otherwise, expand or
+ * shrink that block of memory according to `size`.
+ *
+ * @param[in,out] ptr  Pointer to a pointer to a memory block already allocated
+ *                     with av_realloc(), or a pointer to `NULL`. The pointer
+ *                     is updated on success, or freed on failure.
+ * @param[in]     size Size in bytes for the memory block to be allocated or
+ *                     reallocated
+ *
+ * @return Zero on success, an AVERROR error code on failure
+ *
+ * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be
+ *          correctly aligned.
  */
-char *av_strdup(const char *s) av_malloc_attrib;
+av_warn_unused_result
+int av_reallocp(void *ptr, size_t size);
+
+/**
+ * Allocate, reallocate, or free a block of memory.
+ *
+ * This function does the same thing as av_realloc(), except:
+ * - It takes two size arguments and allocates `nelem * elsize` bytes,
+ *   after checking the result of the multiplication for integer overflow.
+ * - It frees the input block in case of failure, thus avoiding the memory
+ *   leak with the classic
+ *   @code{.c}
+ *   buf = realloc(buf);
+ *   if (!buf)
+ *       return -1;
+ *   @endcode
+ *   pattern.
+ */
+void *av_realloc_f(void *ptr, size_t nelem, size_t elsize);
+
+/**
+ * Allocate, reallocate, or free an array.
+ *
+ * If `ptr` is `NULL` and `nmemb` > 0, allocate a new block. If
+ * `nmemb` is zero, free the memory block pointed to by `ptr`.
+ *
+ * @param ptr   Pointer to a memory block already allocated with
+ *              av_realloc() or `NULL`
+ * @param nmemb Number of elements in the array
+ * @param size  Size of the single element of the array
+ *
+ * @return Pointer to a newly-reallocated block or NULL if the block
+ *         cannot be reallocated or the function is used to free the memory block
+ *
+ * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be
+ *          correctly aligned.
+ * @see av_reallocp_array()
+ */
+av_alloc_size(2, 3) void *av_realloc_array(void *ptr, size_t nmemb, size_t size);
+
+/**
+ * Allocate, reallocate, or free an array through a pointer to a pointer.
+ *
+ * If `*ptr` is `NULL` and `nmemb` > 0, allocate a new block. If `nmemb` is
+ * zero, free the memory block pointed to by `*ptr`.
+ *
+ * @param[in,out] ptr   Pointer to a pointer to a memory block already
+ *                      allocated with av_realloc(), or a pointer to `NULL`.
+ *                      The pointer is updated on success, or freed on failure.
+ * @param[in]     nmemb Number of elements
+ * @param[in]     size  Size of the single element
+ *
+ * @return Zero on success, an AVERROR error code on failure
+ *
+ * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be
+ *          correctly aligned.
+ */
+av_alloc_size(2, 3) int av_reallocp_array(void *ptr, size_t nmemb, size_t size);
 
 /**
- * Duplicate a substring of the string s.
- * @param s string to be duplicated
- * @param len the maximum length of the resulting string (not counting the
- *            terminating byte).
- * @return Pointer to a newly-allocated string containing a
- * copy of s or NULL if the string cannot be allocated.
+ * Reallocate the given buffer if it is not large enough, otherwise do nothing.
+ *
+ * If the given buffer is `NULL`, then a new uninitialized buffer is allocated.
+ *
+ * If the given buffer is not large enough, and reallocation fails, `NULL` is
+ * returned and `*size` is set to 0, but the original buffer is not changed or
+ * freed.
+ *
+ * A typical use pattern follows:
+ *
+ * @code{.c}
+ * uint8_t *buf = ...;
+ * uint8_t *new_buf = av_fast_realloc(buf, &current_size, size_needed);
+ * if (!new_buf) {
+ *     // Allocation failed; clean up original buffer
+ *     av_freep(&buf);
+ *     return AVERROR(ENOMEM);
+ * }
+ * @endcode
+ *
+ * @param[in,out] ptr      Already allocated buffer, or `NULL`
+ * @param[in,out] size     Pointer to current size of buffer `ptr`. `*size` is
+ *                         changed to `min_size` in case of success or 0 in
+ *                         case of failure
+ * @param[in]     min_size New size of buffer `ptr`
+ * @return `ptr` if the buffer is large enough, a pointer to newly reallocated
+ *         buffer if the buffer was not large enough, or `NULL` in case of
+ *         error
+ * @see av_realloc()
+ * @see av_fast_malloc()
  */
-char *av_strndup(const char *s, size_t len) av_malloc_attrib;
+void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size);
 
 /**
- * Duplicate the buffer p.
- * @param p buffer to be duplicated
- * @return Pointer to a newly allocated buffer containing a
- * copy of p or NULL if the buffer cannot be allocated.
+ * Allocate a buffer, reusing the given one if large enough.
+ *
+ * Contrary to av_fast_realloc(), the current buffer contents might not be
+ * preserved and on error the old buffer is freed, thus no special handling to
+ * avoid memleaks is necessary.
+ *
+ * `*ptr` is allowed to be `NULL`, in which case allocation always happens if
+ * `size_needed` is greater than 0.
+ *
+ * @code{.c}
+ * uint8_t *buf = ...;
+ * av_fast_malloc(&buf, &current_size, size_needed);
+ * if (!buf) {
+ *     // Allocation failed; buf already freed
+ *     return AVERROR(ENOMEM);
+ * }
+ * @endcode
+ *
+ * @param[in,out] ptr      Pointer to pointer to an already allocated buffer.
+ *                         `*ptr` will be overwritten with pointer to new
+ *                         buffer on success or `NULL` on failure
+ * @param[in,out] size     Pointer to current size of buffer `*ptr`. `*size` is
+ *                         changed to `min_size` in case of success or 0 in
+ *                         case of failure
+ * @param[in]     min_size New size of buffer `*ptr`
+ * @see av_realloc()
+ * @see av_fast_mallocz()
  */
-void *av_memdup(const void *p, size_t size);
+void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size);
 
 /**
- * Free a memory block which has been allocated with av_malloc(z)() or
- * av_realloc() and set the pointer pointing to it to NULL.
- * @param ptr Pointer to the pointer to the memory block which should
- * be freed.
- * @note passing a pointer to a NULL pointer is safe and leads to no action.
+ * Allocate and clear a buffer, reusing the given one if large enough.
+ *
+ * Like av_fast_malloc(), but all newly allocated space is initially cleared.
+ * Reused buffer is not cleared.
+ *
+ * `*ptr` is allowed to be `NULL`, in which case allocation always happens if
+ * `size_needed` is greater than 0.
+ *
+ * @param[in,out] ptr      Pointer to pointer to an already allocated buffer.
+ *                         `*ptr` will be overwritten with pointer to new
+ *                         buffer on success or `NULL` on failure
+ * @param[in,out] size     Pointer to current size of buffer `*ptr`. `*size` is
+ *                         changed to `min_size` in case of success or 0 in
+ *                         case of failure
+ * @param[in]     min_size New size of buffer `*ptr`
+ * @see av_fast_malloc()
+ */
+void av_fast_mallocz(void *ptr, unsigned int *size, size_t min_size);
+
+/**
+ * Free a memory block which has been allocated with a function of av_malloc()
+ * or av_realloc() family.
+ *
+ * @param ptr Pointer to the memory block which should be freed.
+ *
+ * @note `ptr = NULL` is explicitly allowed.
+ * @note It is recommended that you use av_freep() instead, to prevent leaving
+ *       behind dangling pointers.
+ * @see av_freep()
+ */
+void av_free(void *ptr);
+
+/**
+ * Free a memory block which has been allocated with a function of av_malloc()
+ * or av_realloc() family, and set the pointer pointing to it to `NULL`.
+ *
+ * @code{.c}
+ * uint8_t *buf = av_malloc(16);
+ * av_free(buf);
+ * // buf now contains a dangling pointer to freed memory, and accidental
+ * // dereference of buf will result in a use-after-free, which may be a
+ * // security risk.
+ *
+ * uint8_t *buf = av_malloc(16);
+ * av_freep(&buf);
+ * // buf is now NULL, and accidental dereference will only result in a
+ * // NULL-pointer dereference.
+ * @endcode
+ *
+ * @param ptr Pointer to the pointer to the memory block which should be freed
+ * @note `*ptr = NULL` is safe and leads to no action.
  * @see av_free()
  */
 void av_freep(void *ptr);
 
 /**
- * Add an element to a dynamic array.
+ * Duplicate a string.
+ *
+ * @param s String to be duplicated
+ * @return Pointer to a newly-allocated string containing a
+ *         copy of `s` or `NULL` if the string cannot be allocated
+ * @see av_strndup()
+ */
+char *av_strdup(const char *s) av_malloc_attrib;
+
+/**
+ * Duplicate a substring of a string.
+ *
+ * @param s   String to be duplicated
+ * @param len Maximum length of the resulting string (not counting the
+ *            terminating byte)
+ * @return Pointer to a newly-allocated string containing a
+ *         substring of `s` or `NULL` if the string cannot be allocated
+ */
+char *av_strndup(const char *s, size_t len) av_malloc_attrib;
+
+/**
+ * Duplicate a buffer with av_malloc().
+ *
+ * @param p    Buffer to be duplicated
+ * @param size Size in bytes of the buffer copied
+ * @return Pointer to a newly allocated buffer containing a
+ *         copy of `p` or `NULL` if the buffer cannot be allocated
+ */
+void *av_memdup(const void *p, size_t size);
+
+/**
+ * Overlapping memcpy() implementation.
+ *
+ * @param dst  Destination buffer
+ * @param back Number of bytes back to start copying (i.e. the initial size of
+ *             the overlapping window); must be > 0
+ * @param cnt  Number of bytes to copy; must be >= 0
+ *
+ * @note `cnt > back` is valid, this will copy the bytes we just copied,
+ *       thus creating a repeating pattern with a period length of `back`.
+ */
+void av_memcpy_backptr(uint8_t *dst, int back, int cnt);
+
+/**
+ * @}
+ */
+
+/**
+ * @defgroup lavu_mem_dynarray Dynamic Array
+ *
+ * Utilities to make an array grow when needed.
+ *
+ * Sometimes, the programmer would want to have an array that can grow when
+ * needed. The libavutil dynamic array utilities fill that need.
+ *
+ * libavutil supports two systems of appending elements onto a dynamically
+ * allocated array, the first one storing the pointer to the value in the
+ * array, and the second storing the value directly. In both systems, the
+ * caller is responsible for maintaining a variable containing the length of
+ * the array, as well as freeing of the array after use.
+ *
+ * The first system stores pointers to values in a block of dynamically
+ * allocated memory. Since only pointers are stored, the function does not need
+ * to know the size of the type. Both av_dynarray_add() and
+ * av_dynarray_add_nofree() implement this system.
+ *
+ * @code
+ * type **array = NULL; //< an array of pointers to values
+ * int    nb    = 0;    //< a variable to keep track of the length of the array
+ *
+ * type to_be_added  = ...;
+ * type to_be_added2 = ...;
+ *
+ * av_dynarray_add(&array, &nb, &to_be_added);
+ * if (nb == 0)
+ *     return AVERROR(ENOMEM);
+ *
+ * av_dynarray_add(&array, &nb, &to_be_added2);
+ * if (nb == 0)
+ *     return AVERROR(ENOMEM);
+ *
+ * // Now:
+ * //  nb           == 2
+ * // &to_be_added  == array[0]
+ * // &to_be_added2 == array[1]
+ *
+ * av_freep(&array);
+ * @endcode
+ *
+ * The second system stores the value directly in a block of memory. As a
+ * result, the function has to know the size of the type. av_dynarray2_add()
+ * implements this mechanism.
+ *
+ * @code
+ * type *array = NULL; //< an array of values
+ * int   nb    = 0;    //< a variable to keep track of the length of the array
+ *
+ * type to_be_added  = ...;
+ * type to_be_added2 = ...;
+ *
+ * type *addr = av_dynarray2_add((void **)&array, &nb, sizeof(*array), NULL);
+ * if (!addr)
+ *     return AVERROR(ENOMEM);
+ * memcpy(addr, &to_be_added, sizeof(to_be_added));
+ *
+ * // Shortcut of the above.
+ * type *addr = av_dynarray2_add((void **)&array, &nb, sizeof(*array),
+ *                               (const void *)&to_be_added2);
+ * if (!addr)
+ *     return AVERROR(ENOMEM);
+ *
+ * // Now:
+ * //  nb           == 2
+ * //  to_be_added  == array[0]
+ * //  to_be_added2 == array[1]
+ *
+ * av_freep(&array);
+ * @endcode
+ *
+ * @{
+ */
+
+/**
+ * Add the pointer to an element to a dynamic array.
  *
  * The array to grow is supposed to be an array of pointers to
  * structures, and the element to add must be a pointer to an already
  * allocated structure.
  *
  * The array is reallocated when its size reaches powers of 2.
  * Therefore, the amortized cost of adding an element is constant.
  *
  * In case of success, the pointer to the array is updated in order to
- * point to the new grown array, and the number pointed to by nb_ptr
+ * point to the new grown array, and the number pointed to by `nb_ptr`
  * is incremented.
- * In case of failure, the array is freed, *tab_ptr is set to NULL and
- * *nb_ptr is set to 0.
+ * In case of failure, the array is freed, `*tab_ptr` is set to `NULL` and
+ * `*nb_ptr` is set to 0.
  *
- * @param tab_ptr pointer to the array to grow
- * @param nb_ptr  pointer to the number of elements in the array
- * @param elem    element to add
+ * @param[in,out] tab_ptr Pointer to the array to grow
+ * @param[in,out] nb_ptr  Pointer to the number of elements in the array
+ * @param[in]     elem    Element to add
  * @see av_dynarray_add_nofree(), av_dynarray2_add()
  */
 void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem);
 
 /**
  * Add an element to a dynamic array.
  *
  * Function has the same functionality as av_dynarray_add(),
  * but it doesn't free memory on fails. It returns error code
  * instead and leave current buffer untouched.
  *
- * @param tab_ptr pointer to the array to grow
- * @param nb_ptr  pointer to the number of elements in the array
- * @param elem    element to add
- * @return >=0 on success, negative otherwise.
+ * @return >=0 on success, negative otherwise
  * @see av_dynarray_add(), av_dynarray2_add()
  */
 av_warn_unused_result
 int av_dynarray_add_nofree(void *tab_ptr, int *nb_ptr, void *elem);
 
 /**
- * Add an element of size elem_size to a dynamic array.
+ * Add an element of size `elem_size` to a dynamic array.
  *
  * The array is reallocated when its number of elements reaches powers of 2.
  * Therefore, the amortized cost of adding an element is constant.
  *
  * In case of success, the pointer to the array is updated in order to
- * point to the new grown array, and the number pointed to by nb_ptr
+ * point to the new grown array, and the number pointed to by `nb_ptr`
  * is incremented.
- * In case of failure, the array is freed, *tab_ptr is set to NULL and
- * *nb_ptr is set to 0.
+ * In case of failure, the array is freed, `*tab_ptr` is set to `NULL` and
+ * `*nb_ptr` is set to 0.
  *
- * @param tab_ptr   pointer to the array to grow
- * @param nb_ptr    pointer to the number of elements in the array
- * @param elem_size size in bytes of the elements in the array
- * @param elem_data pointer to the data of the element to add. If NULL, the space of
- *                  the new added element is not filled.
- * @return          pointer to the data of the element to copy in the new allocated space.
- *                  If NULL, the new allocated space is left uninitialized."
+ * @param[in,out] tab_ptr   Pointer to the array to grow
+ * @param[in,out] nb_ptr    Pointer to the number of elements in the array
+ * @param[in]     elem_size Size in bytes of an element in the array
+ * @param[in]     elem_data Pointer to the data of the element to add. If
+ *                          `NULL`, the space of the newly added element is
+ *                          allocated but left uninitialized.
+ *
+ * @return Pointer to the data of the element to copy in the newly allocated
+ *         space
  * @see av_dynarray_add(), av_dynarray_add_nofree()
  */
 void *av_dynarray2_add(void **tab_ptr, int *nb_ptr, size_t elem_size,
                        const uint8_t *elem_data);
 
 /**
- * Multiply two size_t values checking for overflow.
- * @return  0 if success, AVERROR(EINVAL) if overflow.
+ * @}
+ */
+
+/**
+ * @defgroup lavu_mem_misc Miscellaneous Functions
+ *
+ * Other functions related to memory allocation.
+ *
+ * @{
+ */
+
+/**
+ * Multiply two `size_t` values checking for overflow.
+ *
+ * @param[in]  a,b Operands of multiplication
+ * @param[out] r   Pointer to the result of the operation
+ * @return 0 on success, AVERROR(EINVAL) on overflow
  */
 static inline int av_size_mult(size_t a, size_t b, size_t *r)
 {
     size_t t = a * b;
-    /* Hack inspired from glibc: only try the division if nelem and elsize
-     * are both greater than sqrt(SIZE_MAX). */
+    /* Hack inspired from glibc: don't try the division if nelem and elsize
+     * are both less than sqrt(SIZE_MAX). */
     if ((a | b) >= ((size_t)1 << (sizeof(size_t) * 4)) && a && t / a != b)
         return AVERROR(EINVAL);
     *r = t;
     return 0;
 }
 
 /**
- * Set the maximum size that may me allocated in one block.
+ * Set the maximum size that may be allocated in one block.
+ *
+ * The value specified with this function is effective for all libavutil's @ref
+ * lavu_mem_funcs "heap management functions."
+ *
+ * By default, the max value is defined as `INT_MAX`.
+ *
+ * @param max Value to be set as the new maximum size
+ *
+ * @warning Exercise extreme caution when using this function. Don't touch
+ *          this if you do not understand the full consequence of doing so.
  */
 void av_max_alloc(size_t max);
 
 /**
- * deliberately overlapping memcpy implementation
- * @param dst destination buffer
- * @param back how many bytes back we start (the initial size of the overlapping window), must be > 0
- * @param cnt number of bytes to copy, must be >= 0
- *
- * cnt > back is valid, this will copy the bytes we just copied,
- * thus creating a repeating pattern with a period length of back.
- */
-void av_memcpy_backptr(uint8_t *dst, int back, int cnt);
-
-/**
- * Reallocate the given block if it is not large enough, otherwise do nothing.
- *
- * @see av_realloc
- */
-void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size);
-
-/**
- * Allocate a buffer, reusing the given one if large enough.
- *
- * Contrary to av_fast_realloc the current buffer contents might not be
- * preserved and on error the old buffer is freed, thus no special
- * handling to avoid memleaks is necessary.
- *
- * @param ptr pointer to pointer to already allocated buffer, overwritten with pointer to new buffer
- * @param size size of the buffer *ptr points to
- * @param min_size minimum size of *ptr buffer after returning, *ptr will be NULL and
- *                 *size 0 if an error occurred.
- */
-void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size);
-
-/**
- * Allocate a buffer, reusing the given one if large enough.
- *
- * All newly allocated space is initially cleared
- * Contrary to av_fast_realloc the current buffer contents might not be
- * preserved and on error the old buffer is freed, thus no special
- * handling to avoid memleaks is necessary.
- *
- * @param ptr pointer to pointer to already allocated buffer, overwritten with pointer to new buffer
- * @param size size of the buffer *ptr points to
- * @param min_size minimum size of *ptr buffer after returning, *ptr will be NULL and
- *                 *size 0 if an error occurred.
- */
-void av_fast_mallocz(void *ptr, unsigned int *size, size_t min_size);
-
-/**
+ * @}
  * @}
  */
 
 #endif /* AVUTIL_MEM_H */
--- a/media/ffvpx/libavutil/opt.h
+++ b/media/ffvpx/libavutil/opt.h
@@ -53,17 +53,17 @@
  * value and for number-type AVOptions also a range of allowed values. It must
  * also declare an offset in bytes from the start of the struct, where the field
  * associated with this AVOption is located. Other fields in the AVOption struct
  * should also be set when applicable, but are not required.
  *
  * The following example illustrates an AVOptions-enabled struct:
  * @code
  * typedef struct test_struct {
- *     AVClass *class;
+ *     const AVClass *class;
  *     int      int_opt;
  *     char    *str_opt;
  *     uint8_t *bin_opt;
  *     int      bin_len;
  * } test_struct;
  *
  * static const AVOption test_options[] = {
  *   { "test_int", "This is a test option of int type.", offsetof(test_struct, int_opt),
@@ -91,17 +91,17 @@
  * When cleaning up, you may use the av_opt_free() function to automatically
  * free all the allocated string and binary options.
  *
  * Continuing with the above example:
  *
  * @code
  * test_struct *alloc_test_struct(void)
  * {
- *     test_struct *ret = av_malloc(sizeof(*ret));
+ *     test_struct *ret = av_mallocz(sizeof(*ret));
  *     ret->class = &test_class;
  *     av_opt_set_defaults(ret);
  *     return ret;
  * }
  * void free_test_struct(test_struct **foo)
  * {
  *     av_opt_free(*foo);
  *     av_freep(foo);
--- a/media/ffvpx/libavutil/parseutils.c
+++ b/media/ffvpx/libavutil/parseutils.c
@@ -682,16 +682,17 @@ int av_parse_time(int64_t *timeval, cons
         }
         if (today) { /* fill in today's date */
             struct tm dt2 = is_utc ? *gmtime_r(&now, &tmbuf) : *localtime_r(&now, &tmbuf);
             dt2.tm_hour = dt.tm_hour;
             dt2.tm_min  = dt.tm_min;
             dt2.tm_sec  = dt.tm_sec;
             dt = dt2;
         }
+        dt.tm_isdst = is_utc ? 0 : -1;
         t = is_utc ? av_timegm(&dt) : mktime(&dt);
         t += tzoffset;
     }
 
     /* Check that we are at the end of the string */
     if (*q)
         return AVERROR(EINVAL);
 
--- a/media/ffvpx/libavutil/pixdesc.c
+++ b/media/ffvpx/libavutil/pixdesc.c
@@ -1969,16 +1969,20 @@ static const AVPixFmtDescriptor av_pix_f
     [AV_PIX_FMT_VDA] = {
         .name = "vda",
         .flags = AV_PIX_FMT_FLAG_HWACCEL,
     },
     [AV_PIX_FMT_QSV] = {
         .name = "qsv",
         .flags = AV_PIX_FMT_FLAG_HWACCEL,
     },
+    [AV_PIX_FMT_MEDIACODEC] = {
+        .name = "mediacodec",
+        .flags = AV_PIX_FMT_FLAG_HWACCEL,
+    },
     [AV_PIX_FMT_MMAL] = {
         .name = "mmal",
         .flags = AV_PIX_FMT_FLAG_HWACCEL,
     },
     [AV_PIX_FMT_CUDA] = {
         .name = "cuda",
         .flags = AV_PIX_FMT_FLAG_HWACCEL,
     },
@@ -2088,43 +2092,83 @@ static const AVPixFmtDescriptor av_pix_f
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR |
                  AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
     },
 };
 #if FF_API_PLUS1_MINUS1
 FF_ENABLE_DEPRECATION_WARNINGS
 #endif
 
-static const char *color_range_names[AVCOL_RANGE_NB] = {
-    "unknown", "tv", "pc",
+static const char *color_range_names[] = {
+    [AVCOL_RANGE_UNSPECIFIED] = "unknown",
+    [AVCOL_RANGE_MPEG] = "tv",
+    [AVCOL_RANGE_JPEG] = "pc",
 };
 
 static const char *color_primaries_names[AVCOL_PRI_NB] = {
-    "reserved", "bt709", "unknown", "reserved", "bt470m",
-    "bt470bg", "smpte170m", "smpte240m", "film", "bt2020",
-    "smpte428-1",
+    [AVCOL_PRI_RESERVED0] = "reserved",
+    [AVCOL_PRI_BT709] = "bt709",
+    [AVCOL_PRI_UNSPECIFIED] = "unknown",
+    [AVCOL_PRI_RESERVED] = "reserved",
+    [AVCOL_PRI_BT470M] = "bt470m",
+    [AVCOL_PRI_BT470BG] = "bt470bg",
+    [AVCOL_PRI_SMPTE170M] = "smpte170m",
+    [AVCOL_PRI_SMPTE240M] = "smpte240m",
+    [AVCOL_PRI_FILM] = "film",
+    [AVCOL_PRI_BT2020] = "bt2020",
+    [AVCOL_PRI_SMPTEST428_1] = "smpte428-1",
+    [AVCOL_PRI_SMPTE431] = "smpte431",
+    [AVCOL_PRI_SMPTE432] = "smpte432",
 };
 
-static const char *color_transfer_names[AVCOL_TRC_NB] = {
-    "reserved", "bt709", "unknown", "reserved", "bt470m",
-    "bt470bg", "smpte170m", "smpte240m", "linear", "log100",
-    "log316", "iec61966-2-4", "bt1361e", "iec61966-2-1",
-    "bt2020-10", "bt2020-20", "smpte2084", "smpte428-1",
-    "arib-std-b67"
+static const char *color_transfer_names[] = {
+    [AVCOL_TRC_RESERVED0] = "reserved",
+    [AVCOL_TRC_BT709] = "bt709",
+    [AVCOL_TRC_UNSPECIFIED] = "unknown",
+    [AVCOL_TRC_RESERVED] = "reserved",
+    [AVCOL_TRC_GAMMA22] = "bt470m",
+    [AVCOL_TRC_GAMMA28] = "bt470bg",
+    [AVCOL_TRC_SMPTE170M] = "smpte170m",
+    [AVCOL_TRC_SMPTE240M] = "smpte240m",
+    [AVCOL_TRC_LINEAR] = "linear",
+    [AVCOL_TRC_LOG] = "log100",
+    [AVCOL_TRC_LOG_SQRT] = "log316",
+    [AVCOL_TRC_IEC61966_2_4] = "iec61966-2-4",
+    [AVCOL_TRC_BT1361_ECG] = "bt1361e",
+    [AVCOL_TRC_IEC61966_2_1] = "iec61966-2-1",
+    [AVCOL_TRC_BT2020_10] = "bt2020-10",
+    [AVCOL_TRC_BT2020_12] = "bt2020-20",
+    [AVCOL_TRC_SMPTEST2084] = "smpte2084",
+    [AVCOL_TRC_SMPTEST428_1] = "smpte428-1",
+    [AVCOL_TRC_ARIB_STD_B67] = "arib-std-b67",
 };
 
-static const char *color_space_names[AVCOL_SPC_NB] = {
-    "gbr", "bt709", "unknown", "reserved", "fcc",
-    "bt470bg", "smpte170m", "smpte240m", "ycgco",
-    "bt2020nc", "bt2020c",
+static const char *color_space_names[] = {
+    [AVCOL_SPC_RGB] = "gbr",
+    [AVCOL_SPC_BT709] = "bt709",
+    [AVCOL_SPC_UNSPECIFIED] = "unknown",
+    [AVCOL_SPC_RESERVED] = "reserved",
+    [AVCOL_SPC_FCC] = "fcc",
+    [AVCOL_SPC_BT470BG] = "bt470bg",
+    [AVCOL_SPC_SMPTE170M] = "smpte170m",
+    [AVCOL_SPC_SMPTE240M] = "smpte240m",
+    [AVCOL_SPC_YCOCG] = "ycgco",
+    [AVCOL_SPC_BT2020_NCL] = "bt2020nc",
+    [AVCOL_SPC_BT2020_CL] = "bt2020c",
+    [AVCOL_SPC_SMPTE2085] = "smpte2085",
 };
 
-static const char *chroma_location_names[AVCHROMA_LOC_NB] = {
-    "unspecified", "left", "center", "topleft",
-    "top", "bottomleft", "bottom",
+static const char *chroma_location_names[] = {
+    [AVCHROMA_LOC_UNSPECIFIED] = "unspecified",
+    [AVCHROMA_LOC_LEFT] = "left",
+    [AVCHROMA_LOC_CENTER] = "center",
+    [AVCHROMA_LOC_TOPLEFT] = "topleft",
+    [AVCHROMA_LOC_TOP] = "top",
+    [AVCHROMA_LOC_BOTTOMLEFT] = "bottomleft",
+    [AVCHROMA_LOC_BOTTOM] = "bottom",
 };
 
 static enum AVPixelFormat get_pix_fmt_internal(const char *name)
 {
     enum AVPixelFormat pix_fmt;
 
     for (pix_fmt = 0; pix_fmt < AV_PIX_FMT_NB; pix_fmt++)
         if (av_pix_fmt_descriptors[pix_fmt].name &&
--- a/media/ffvpx/libavutil/pixdesc.h
+++ b/media/ffvpx/libavutil/pixdesc.h
@@ -168,88 +168,16 @@ typedef struct AVPixFmtDescriptor {
  *
  * If a codec or a filter does not support alpha, it should set all alpha to
  * opaque, or use the equivalent pixel formats without alpha component, e.g.
  * AV_PIX_FMT_RGB0 (or AV_PIX_FMT_RGB24 etc.) instead of AV_PIX_FMT_RGBA.
  */
 #define AV_PIX_FMT_FLAG_ALPHA        (1 << 7)
 
 /**
- * Read a line from an image, and write the values of the
- * pixel format component c to dst.
- *
- * @param data the array containing the pointers to the planes of the image
- * @param linesize the array containing the linesizes of the image
- * @param desc the pixel format descriptor for the image
- * @param x the horizontal coordinate of the first pixel to read
- * @param y the vertical coordinate of the first pixel to read
- * @param w the width of the line to read, that is the number of
- * values to write to dst
- * @param read_pal_component if not zero and the format is a paletted
- * format writes the values corresponding to the palette
- * component c in data[1] to dst, rather than the palette indexes in
- * data[0]. The behavior is undefined if the format is not paletted.
- */
-void av_read_image_line(uint16_t *dst, const uint8_t *data[4],
-                        const int linesize[4], const AVPixFmtDescriptor *desc,
-                        int x, int y, int c, int w, int read_pal_component);
-
-/**
- * Write the values from src to the pixel format component c of an
- * image line.
- *
- * @param src array containing the values to write
- * @param data the array containing the pointers to the planes of the
- * image to write into. It is supposed to be zeroed.
- * @param linesize the array containing the linesizes of the image
- * @param desc the pixel format descriptor for the image
- * @param x the horizontal coordinate of the first pixel to write
- * @param y the vertical coordinate of the first pixel to write
- * @param w the width of the line to write, that is the number of
- * values to write to the image line
- */
-void av_write_image_line(const uint16_t *src, uint8_t *data[4],
-                         const int linesize[4], const AVPixFmtDescriptor *desc,
-                         int x, int y, int c, int w);
-
-/**
- * Return the pixel format corresponding to name.
- *
- * If there is no pixel format with name name, then looks for a
- * pixel format with the name corresponding to the native endian
- * format of name.
- * For example in a little-endian system, first looks for "gray16",
- * then for "gray16le".
- *
- * Finally if no pixel format has been found, returns AV_PIX_FMT_NONE.
- */
-enum AVPixelFormat av_get_pix_fmt(const char *name);
-
-/**
- * Return the short name for a pixel format, NULL in case pix_fmt is
- * unknown.
- *
- * @see av_get_pix_fmt(), av_get_pix_fmt_string()
- */
-const char *av_get_pix_fmt_name(enum AVPixelFormat pix_fmt);
-
-/**
- * Print in buf the string corresponding to the pixel format with
- * number pix_fmt, or a header if pix_fmt is negative.
- *
- * @param buf the buffer where to write the string
- * @param buf_size the size of buf
- * @param pix_fmt the number of the pixel format to print the
- * corresponding info string, or a negative value to print the
- * corresponding header.
- */
-char *av_get_pix_fmt_string(char *buf, int buf_size,
-                            enum AVPixelFormat pix_fmt);
-
-/**
  * Return the number of bits per pixel used by the pixel format
  * described by pixdesc. Note that this is not the same as the number
  * of bits per sample.
  *
  * The returned number of bits refers to the number of bits actually
  * used for storing the pixel information, that is padding bits are
  * not counted.
  */
@@ -302,16 +230,113 @@ int av_pix_fmt_get_chroma_sub_sample(enu
 
 /**
  * @return number of planes in pix_fmt, a negative AVERROR if pix_fmt is not a
  * valid pixel format.
  */
 int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt);
 
 /**
+ * @return the name for provided color range or NULL if unknown.
+ */
+const char *av_color_range_name(enum AVColorRange range);
+
+/**
+ * @return the name for provided color primaries or NULL if unknown.
+ */
+const char *av_color_primaries_name(enum AVColorPrimaries primaries);
+
+/**
+ * @return the name for provided color transfer or NULL if unknown.
+ */
+const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer);
+
+/**
+ * @return the name for provided color space or NULL if unknown.
+ */
+const char *av_color_space_name(enum AVColorSpace space);
+
+/**
+ * @return the name for provided chroma location or NULL if unknown.
+ */
+const char *av_chroma_location_name(enum AVChromaLocation location);
+
+/**
+ * Return the pixel format corresponding to name.
+ *
+ * If there is no pixel format with name name, then looks for a
+ * pixel format with the name corresponding to the native endian
+ * format of name.
+ * For example in a little-endian system, first looks for "gray16",
+ * then for "gray16le".
+ *
+ * Finally if no pixel format has been found, returns AV_PIX_FMT_NONE.
+ */
+enum AVPixelFormat av_get_pix_fmt(const char *name);
+
+/**
+ * Return the short name for a pixel format, NULL in case pix_fmt is
+ * unknown.
+ *
+ * @see av_get_pix_fmt(), av_get_pix_fmt_string()
+ */
+const char *av_get_pix_fmt_name(enum AVPixelFormat pix_fmt);
+
+/**
+ * Print in buf the string corresponding to the pixel format with
+ * number pix_fmt, or a header if pix_fmt is negative.
+ *
+ * @param buf the buffer where to write the string
+ * @param buf_size the size of buf
+ * @param pix_fmt the number of the pixel format to print the
+ * corresponding info string, or a negative value to print the
+ * corresponding header.
+ */
+char *av_get_pix_fmt_string(char *buf, int buf_size,
+                            enum AVPixelFormat pix_fmt);
+
+/**
+ * Read a line from an image, and write the values of the
+ * pixel format component c to dst.
+ *
+ * @param data the array containing the pointers to the planes of the image
+ * @param linesize the array containing the linesizes of the image
+ * @param desc the pixel format descriptor for the image
+ * @param x the horizontal coordinate of the first pixel to read
+ * @param y the vertical coordinate of the first pixel to read
+ * @param w the width of the line to read, that is the number of
+ * values to write to dst
+ * @param read_pal_component if not zero and the format is a paletted
+ * format writes the values corresponding to the palette
+ * component c in data[1] to dst, rather than the palette indexes in
+ * data[0]. The behavior is undefined if the format is not paletted.
+ */
+void av_read_image_line(uint16_t *dst, const uint8_t *data[4],
+                        const int linesize[4], const AVPixFmtDescriptor *desc,
+                        int x, int y, int c, int w, int read_pal_component);
+
+/**
+ * Write the values from src to the pixel format component c of an
+ * image line.
+ *
+ * @param src array containing the values to write
+ * @param data the array containing the pointers to the planes of the
+ * image to write into. It is supposed to be zeroed.
+ * @param linesize the array containing the linesizes of the image
+ * @param desc the pixel format descriptor for the image
+ * @param x the horizontal coordinate of the first pixel to write
+ * @param y the vertical coordinate of the first pixel to write
+ * @param w the width of the line to write, that is the number of
+ * values to write to the image line
+ */
+void av_write_image_line(const uint16_t *src, uint8_t *data[4],
+                         const int linesize[4], const AVPixFmtDescriptor *desc,
+                         int x, int y, int c, int w);
+
+/**
  * Utility function to swap the endianness of a pixel format.
  *
  * @param[in]  pix_fmt the pixel format
  *
  * @return pixel format with swapped endianness if it exists,
  * otherwise AV_PIX_FMT_NONE
  */
 enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt);
@@ -361,34 +386,9 @@ int av_get_pix_fmt_loss(enum AVPixelForm
  * @param[in] src_pix_fmt source pixel format
  * @param[in] has_alpha Whether the source pixel format alpha channel is used.
  * @return Combination of flags informing you what kind of losses will occur
  * (maximum loss for an invalid dst_pix_fmt).
  */
 enum AVPixelFormat av_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
                                              enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
 
-/**
- * @return the name for provided color range or NULL if unknown.
- */
-const char *av_color_range_name(enum AVColorRange range);
-
-/**
- * @return the name for provided color primaries or NULL if unknown.
- */
-const char *av_color_primaries_name(enum AVColorPrimaries primaries);
-
-/**
- * @return the name for provided color transfer or NULL if unknown.
- */
-const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer);
-
-/**
- * @return the name for provided color space or NULL if unknown.
- */
-const char *av_color_space_name(enum AVColorSpace space);
-
-/**
- * @return the name for provided chroma location or NULL if unknown.
- */
-const char *av_chroma_location_name(enum AVChromaLocation location);
-
 #endif /* AVUTIL_PIXDESC_H */
--- a/media/ffvpx/libavutil/pixfmt.h
+++ b/media/ffvpx/libavutil/pixfmt.h
@@ -72,17 +72,17 @@ enum AVPixelFormat {
     AV_PIX_FMT_MONOBLACK, ///<        Y        ,  1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb
     AV_PIX_FMT_PAL8,      ///< 8 bits with AV_PIX_FMT_RGB32 palette
     AV_PIX_FMT_YUVJ420P,  ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range
     AV_PIX_FMT_YUVJ422P,  ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting color_range
     AV_PIX_FMT_YUVJ444P,  ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting color_range
 #if FF_API_XVMC
     AV_PIX_FMT_XVMC_MPEG2_MC,///< XVideo Motion Acceleration via common packet passing
     AV_PIX_FMT_XVMC_MPEG2_IDCT,
-#define AV_PIX_FMT_XVMC AV_PIX_FMT_XVMC_MPEG2_IDCT
+    AV_PIX_FMT_XVMC = AV_PIX_FMT_XVMC_MPEG2_IDCT,
 #endif /* FF_API_XVMC */
     AV_PIX_FMT_UYVY422,   ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
     AV_PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3
     AV_PIX_FMT_BGR8,      ///< packed RGB 3:3:2,  8bpp, (msb)2B 3G 3R(lsb)
     AV_PIX_FMT_BGR4,      ///< packed RGB 1:2:1 bitstream,  4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits
     AV_PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1,  8bpp, (msb)1B 2G 1R(lsb)
     AV_PIX_FMT_RGB8,      ///< packed RGB 3:3:2,  8bpp, (msb)2R 3G 3B(lsb)
     AV_PIX_FMT_RGB4,      ///< packed RGB 1:2:1 bitstream,  4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits
@@ -173,16 +173,17 @@ enum AVPixelFormat {
     AV_PIX_FMT_YUV444P9BE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
     AV_PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
     AV_PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
     AV_PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
     AV_PIX_FMT_YUV422P9BE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
     AV_PIX_FMT_YUV422P9LE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
     AV_PIX_FMT_VDA_VLD,    ///< hardware decoding through VDA
     AV_PIX_FMT_GBRP,      ///< planar GBR 4:4:4 24bpp
+    AV_PIX_FMT_GBR24P = AV_PIX_FMT_GBRP, // alias for #AV_PIX_FMT_GBRP
     AV_PIX_FMT_GBRP9BE,   ///< planar GBR 4:4:4 27bpp, big-endian
     AV_PIX_FMT_GBRP9LE,   ///< planar GBR 4:4:4 27bpp, little-endian
     AV_PIX_FMT_GBRP10BE,  ///< planar GBR 4:4:4 30bpp, big-endian
     AV_PIX_FMT_GBRP10LE,  ///< planar GBR 4:4:4 30bpp, little-endian
     AV_PIX_FMT_GBRP16BE,  ///< planar GBR 4:4:4 48bpp, big-endian
     AV_PIX_FMT_GBRP16LE,  ///< planar GBR 4:4:4 48bpp, little-endian
     AV_PIX_FMT_YUVA422P,  ///< planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples)
     AV_PIX_FMT_YUVA444P,  ///< planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples)
@@ -298,21 +299,20 @@ enum AVPixelFormat {
     AV_PIX_FMT_P010BE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, big-endian
 
     AV_PIX_FMT_GBRAP12BE,  ///< planar GBR 4:4:4:4 48bpp, big-endian
     AV_PIX_FMT_GBRAP12LE,  ///< planar GBR 4:4:4:4 48bpp, little-endian
 
     AV_PIX_FMT_GBRAP10BE,  ///< planar GBR 4:4:4:4 40bpp, big-endian
     AV_PIX_FMT_GBRAP10LE,  ///< planar GBR 4:4:4:4 40bpp, little-endian
 
-    AV_PIX_FMT_NB,        ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
-};
+    AV_PIX_FMT_MEDIACODEC, ///< hardware decoding through MediaCodec
 
-#define AV_PIX_FMT_Y400A AV_PIX_FMT_GRAY8A
-#define AV_PIX_FMT_GBR24P AV_PIX_FMT_GBRP
+    AV_PIX_FMT_NB         ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
+};
 
 #if AV_HAVE_BIGENDIAN
 #   define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##be
 #else
 #   define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##le
 #endif
 
 #define AV_PIX_FMT_RGB32   AV_PIX_FMT_NE(ARGB, BGRA)
@@ -393,18 +393,20 @@ enum AVColorPrimaries {
     AVCOL_PRI_RESERVED    = 3,
     AVCOL_PRI_BT470M      = 4,  ///< also FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
 
     AVCOL_PRI_BT470BG     = 5,  ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM
     AVCOL_PRI_SMPTE170M   = 6,  ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
     AVCOL_PRI_SMPTE240M   = 7,  ///< functionally identical to above
     AVCOL_PRI_FILM        = 8,  ///< colour filters using Illuminant C
     AVCOL_PRI_BT2020      = 9,  ///< ITU-R BT2020
-    AVCOL_PRI_SMPTEST428_1= 10, ///< SMPTE ST 428-1 (CIE 1931 XYZ)
-    AVCOL_PRI_NB,               ///< Not part of ABI
+    AVCOL_PRI_SMPTEST428_1 = 10, ///< SMPTE ST 428-1 (CIE 1931 XYZ)
+    AVCOL_PRI_SMPTE431    = 11, ///< SMPTE ST 431-2 (2011)
+    AVCOL_PRI_SMPTE432    = 12, ///< SMPTE ST 432-1 D65 (2010)
+    AVCOL_PRI_NB                ///< Not part of ABI
 };
 
 /**
  * Color Transfer Characteristic.
  */
 enum AVColorTransferCharacteristic {
     AVCOL_TRC_RESERVED0    = 0,
     AVCOL_TRC_BT709        = 1,  ///< also ITU-R BT1361
@@ -420,17 +422,17 @@ enum AVColorTransferCharacteristic {
     AVCOL_TRC_IEC61966_2_4 = 11, ///< IEC 61966-2-4
     AVCOL_TRC_BT1361_ECG   = 12, ///< ITU-R BT1361 Extended Colour Gamut
     AVCOL_TRC_IEC61966_2_1 = 13, ///< IEC 61966-2-1 (sRGB or sYCC)
     AVCOL_TRC_BT2020_10    = 14, ///< ITU-R BT2020 for 10-bit system
     AVCOL_TRC_BT2020_12    = 15, ///< ITU-R BT2020 for 12-bit system
     AVCOL_TRC_SMPTEST2084  = 16, ///< SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems
     AVCOL_TRC_SMPTEST428_1 = 17, ///< SMPTE ST 428-1
     AVCOL_TRC_ARIB_STD_B67 = 18, ///< ARIB STD-B67, known as "Hybrid log-gamma"
-    AVCOL_TRC_NB,                ///< Not part of ABI
+    AVCOL_TRC_NB                 ///< Not part of ABI
 };
 
 /**
  * YUV colorspace type.
  */
 enum AVColorSpace {
     AVCOL_SPC_RGB         = 0,  ///< order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB)
     AVCOL_SPC_BT709       = 1,  ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B
@@ -438,29 +440,30 @@ enum AVColorSpace {
     AVCOL_SPC_RESERVED    = 3,
     AVCOL_SPC_FCC         = 4,  ///< FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
     AVCOL_SPC_BT470BG     = 5,  ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601
     AVCOL_SPC_SMPTE170M   = 6,  ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
     AVCOL_SPC_SMPTE240M   = 7,  ///< functionally identical to above
     AVCOL_SPC_YCOCG       = 8,  ///< Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16
     AVCOL_SPC_BT2020_NCL  = 9,  ///< ITU-R BT2020 non-constant luminance system
     AVCOL_SPC_BT2020_CL   = 10, ///< ITU-R BT2020 constant luminance system
-    AVCOL_SPC_NB,               ///< Not part of ABI
+    AVCOL_SPC_SMPTE2085   = 11, ///< SMPTE 2085, Y'D'zD'x
+    AVCOL_SPC_NB                ///< Not part of ABI
 };
 #define AVCOL_SPC_YCGCO AVCOL_SPC_YCOCG
 
 
 /**
  * MPEG vs JPEG YUV range.
  */
 enum AVColorRange {
     AVCOL_RANGE_UNSPECIFIED = 0,
     AVCOL_RANGE_MPEG        = 1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges
     AVCOL_RANGE_JPEG        = 2, ///< the normal     2^n-1   "JPEG" YUV ranges
-    AVCOL_RANGE_NB,              ///< Not part of ABI
+    AVCOL_RANGE_NB               ///< Not part of ABI
 };
 
 /**
  * Location of chroma samples.
  *
  * Illustration showing the location of the first (top left) chroma sample of the
  * image, the left shows only luma, the right
  * shows the location of the chroma sample, the 2 could be imagined to overlay
@@ -476,12 +479,12 @@ enum AVColorRange {
 enum AVChromaLocation {
     AVCHROMA_LOC_UNSPECIFIED = 0,
     AVCHROMA_LOC_LEFT        = 1, ///< MPEG-2/4 4:2:0, H.264 default for 4:2:0
     AVCHROMA_LOC_CENTER      = 2, ///< MPEG-1 4:2:0, JPEG 4:2:0, H.263 4:2:0
     AVCHROMA_LOC_TOPLEFT     = 3, ///< ITU-R 601, SMPTE 274M 296M S314M(DV 4:1:1), mpeg2 4:2:2
     AVCHROMA_LOC_TOP         = 4,
     AVCHROMA_LOC_BOTTOMLEFT  = 5,
     AVCHROMA_LOC_BOTTOM      = 6,
-    AVCHROMA_LOC_NB,              ///< Not part of ABI
+    AVCHROMA_LOC_NB               ///< Not part of ABI
 };
 
 #endif /* AVUTIL_PIXFMT_H */
--- a/media/ffvpx/libavutil/rational.h
+++ b/media/ffvpx/libavutil/rational.h
@@ -16,116 +16,142 @@
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 /**
  * @file
- * rational numbers
+ * @ingroup lavu_math_rational
+ * Utilties for rational number calculation.
  * @author Michael Niedermayer <michaelni@gmx.at>
  */
 
 #ifndef AVUTIL_RATIONAL_H
 #define AVUTIL_RATIONAL_H
 
 #include <stdint.h>
 #include <limits.h>
 #include "attributes.h"
 
 /**
- * @addtogroup lavu_math
+ * @defgroup lavu_math_rational AVRational
+ * @ingroup lavu_math
+ * Rational number calculation.
+ *
+ * While rational numbers can be expressed as floating-point numbers, the
+ * conversion process is a lossy one, so are floating-point operations. On the
+ * other hand, the nature of FFmpeg demands highly accurate calculation of
+ * timestamps. This set of rational number utilities serves as a generic
+ * interface for manipulating rational numbers as pairs of numerators and
+ * denominators.
+ *
+ * Many of the functions that operate on AVRational's have the suffix `_q`, in
+ * reference to the mathematical symbol "ℚ" (Q) which denotes the set of all
+ * rational numbers.
+ *
  * @{
  */
 
 /**
- * rational number numerator/denominator
+ * Rational number (pair of numerator and denominator).
  */
 typedef struct AVRational{
-    int num; ///< numerator
-    int den; ///< denominator
+    int num; ///< Numerator
+    int den; ///< Denominator
 } AVRational;
 
 /**
- * Create a rational.
+ * Create an AVRational.
+ *
  * Useful for compilers that do not support compound literals.
- * @note  The return value is not reduced.
+ *
+ * @note The return value is not reduced.
+ * @see av_reduce()
  */
 static inline AVRational av_make_q(int num, int den)
 {
     AVRational r = { num, den };
     return r;
 }
 
 /**
  * Compare two rationals.
- * @param a first rational
- * @param b second rational
- * @return 0 if a==b, 1 if a>b, -1 if a<b, and INT_MIN if one of the
- * values is of the form 0/0
+ *
+ * @param a First rational
+ * @param b Second rational
+ *
+ * @return One of the following values:
+ *         - 0 if `a == b`
+ *         - 1 if `a > b`
+ *         - -1 if `a < b`
+ *         - `INT_MIN` if one of the values is of the form `0 / 0`
  */
 static inline int av_cmp_q(AVRational a, AVRational b){
     const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den;
 
     if(tmp) return (int)((tmp ^ a.den ^ b.den)>>63)|1;
     else if(b.den && a.den) return 0;
     else if(a.num && b.num) return (a.num>>31) - (b.num>>31);
     else                    return INT_MIN;
 }
 
 /**
- * Convert rational to double.
- * @param a rational to convert
- * @return (double) a
+ * Convert an AVRational to a `double`.
+ * @param a AVRational to convert
+ * @return `a` in floating-point form
+ * @see av_d2q()
  */
 static inline double av_q2d(AVRational a){
     return a.num / (double) a.den;
 }
 
 /**
  * Reduce a fraction.
+ *
  * This is useful for framerate calculations.
- * @param dst_num destination numerator
- * @param dst_den destination denominator
- * @param num source numerator
- * @param den source denominator
- * @param max the maximum allowed for dst_num & dst_den
- * @return 1 if exact, 0 otherwise
+ *
+ * @param[out] dst_num Destination numerator
+ * @param[out] dst_den Destination denominator
+ * @param[in]      num Source numerator
+ * @param[in]      den Source denominator
+ * @param[in]      max Maximum allowed values for `dst_num` & `dst_den`
+ * @return 1 if the operation is exact, 0 otherwise
  */
 int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max);
 
 /**
  * Multiply two rationals.
- * @param b first rational
- * @param c second rational
+ * @param b First rational
+ * @param c Second rational
  * @return b*c
  */
 AVRational av_mul_q(AVRational b, AVRational c) av_const;
 
 /**
  * Divide one rational by another.
- * @param b first rational
- * @param c second rational
+ * @param b First rational
+ * @param c Second rational
  * @return b/c
  */
 AVRational av_div_q(AVRational b, AVRational c) av_const;
 
 /**
  * Add two rationals.
- * @param b first rational
- * @param c second rational
+ * @param b First rational
+ * @param c Second rational
  * @return b+c
  */
 AVRational av_add_q(AVRational b, AVRational c) av_const;
 
 /**
  * Subtract one rational from another.
- * @param b first rational
- * @param c second rational
+ * @param b First rational
+ * @param c Second rational
  * @return b-c
  */
 AVRational av_sub_q(AVRational b, AVRational c) av_const;
 
 /**
  * Invert a rational.
  * @param q value
  * @return 1 / q
@@ -133,41 +159,56 @@ AVRational av_sub_q(AVRational b, AVRati
 static av_always_inline AVRational av_inv_q(AVRational q)
 {
     AVRational r = { q.den, q.num };
     return r;
 }
 
 /**
  * Convert a double precision floating point number to a rational.
- * inf is expressed as {1,0} or {-1,0} depending on the sign.
+ *
+ * In case of infinity, the returned value is expressed as `{1, 0}` or
+ * `{-1, 0}` depending on the sign.
  *
- * @param d double to convert
- * @param max the maximum allowed numerator and denominator
- * @return (AVRational) d
+ * @param d   `double` to convert
+ * @param max Maximum allowed numerator and denominator
+ * @return `d` in AVRational form
+ * @see av_q2d()
  */
 AVRational av_d2q(double d, int max) av_const;
 
 /**
- * @return 1 if q1 is nearer to q than q2, -1 if q2 is nearer
- * than q1, 0 if they have the same distance.
+ * Find which of the two rationals is closer to another rational.
+ *
+ * @param q     Rational to be compared against
+ * @param q1,q2 Rationals to be tested
+ * @return One of the following values:
+ *         - 1 if `q1` is nearer to `q` than `q2`
+ *         - -1 if `q2` is nearer to `q` than `q1`
+ *         - 0 if they have the same distance
  */
 int av_nearer_q(AVRational q, AVRational q1, AVRational q2);
 
 /**
- * Find the nearest value in q_list to q.
- * @param q_list an array of rationals terminated by {0, 0}
- * @return the index of the nearest value found in the array
+ * Find the value in a list of rationals nearest a given reference rational.
+ *
+ * @param q      Reference rational
+ * @param q_list Array of rationals terminated by `{0, 0}`
+ * @return Index of the nearest value found in the array
  */
 int av_find_nearest_q_idx(AVRational q, const AVRational* q_list);
 
 /**
- * Converts a AVRational to a IEEE 32bit float.
+ * Convert an AVRational to a IEEE 32-bit `float` expressed in fixed-point
+ * format.
  *
- * The float is returned in a uint32_t and its value is platform indepenant.
+ * @param q Rational to be converted
+ * @return Equivalent floating-point value, expressed as an unsigned 32-bit
+ *         integer.
+ * @note The returned value is platform-indepedant.
  */
 uint32_t av_q2intfloat(AVRational q);
 
 /**
  * @}
  */
 
 #endif /* AVUTIL_RATIONAL_H */
--- a/media/ffvpx/libavutil/samplefmt.c
+++ b/media/ffvpx/libavutil/samplefmt.c
@@ -30,21 +30,23 @@ typedef struct SampleFmtInfo {
     enum AVSampleFormat altform; ///< planar<->packed alternative form
 } SampleFmtInfo;
 
 /** this table gives more information about formats */
 static const SampleFmtInfo sample_fmt_info[AV_SAMPLE_FMT_NB] = {
     [AV_SAMPLE_FMT_U8]   = { .name =   "u8", .bits =  8, .planar = 0, .altform = AV_SAMPLE_FMT_U8P  },
     [AV_SAMPLE_FMT_S16]  = { .name =  "s16", .bits = 16, .planar = 0, .altform = AV_SAMPLE_FMT_S16P },
     [AV_SAMPLE_FMT_S32]  = { .name =  "s32", .bits = 32, .planar = 0, .altform = AV_SAMPLE_FMT_S32P },
+    [AV_SAMPLE_FMT_S64]  = { .name =  "s64", .bits = 64, .planar = 0, .altform = AV_SAMPLE_FMT_S64P },
     [AV_SAMPLE_FMT_FLT]  = { .name =  "flt", .bits = 32, .planar = 0, .altform = AV_SAMPLE_FMT_FLTP },
     [AV_SAMPLE_FMT_DBL]  = { .name =  "dbl", .bits = 64, .planar = 0, .altform = AV_SAMPLE_FMT_DBLP },
     [AV_SAMPLE_FMT_U8P]  = { .name =  "u8p", .bits =  8, .planar = 1, .altform = AV_SAMPLE_FMT_U8   },
     [AV_SAMPLE_FMT_S16P] = { .name = "s16p", .bits = 16, .planar = 1, .altform = AV_SAMPLE_FMT_S16  },
     [AV_SAMPLE_FMT_S32P] = { .name = "s32p", .bits = 32, .planar = 1, .altform = AV_SAMPLE_FMT_S32  },
+    [AV_SAMPLE_FMT_S64P] = { .name = "s64p", .bits = 64, .planar = 1, .altform = AV_SAMPLE_FMT_S64  },
     [AV_SAMPLE_FMT_FLTP] = { .name = "fltp", .bits = 32, .planar = 1, .altform = AV_SAMPLE_FMT_FLT  },
     [AV_SAMPLE_FMT_DBLP] = { .name = "dblp", .bits = 64, .planar = 1, .altform = AV_SAMPLE_FMT_DBL  },
 };
 
 const char *av_get_sample_fmt_name(enum AVSampleFormat sample_fmt)
 {
     if (sample_fmt < 0 || sample_fmt >= AV_SAMPLE_FMT_NB)
         return NULL;
--- a/media/ffvpx/libavutil/samplefmt.h
+++ b/media/ffvpx/libavutil/samplefmt.h
@@ -63,16 +63,18 @@ enum AVSampleFormat {
     AV_SAMPLE_FMT_FLT,         ///< float
     AV_SAMPLE_FMT_DBL,         ///< double
 
     AV_SAMPLE_FMT_U8P,         ///< unsigned 8 bits, planar
     AV_SAMPLE_FMT_S16P,        ///< signed 16 bits, planar
     AV_SAMPLE_FMT_S32P,        ///< signed 32 bits, planar
     AV_SAMPLE_FMT_FLTP,        ///< float, planar
     AV_SAMPLE_FMT_DBLP,        ///< double, planar
+    AV_SAMPLE_FMT_S64,         ///< signed 64 bits
+    AV_SAMPLE_FMT_S64P,        ///< signed 64 bits, planar
 
     AV_SAMPLE_FMT_NB           ///< Number of sample formats. DO NOT USE if linking dynamically
 };
 
 /**
  * Return the name of sample_fmt, or NULL if sample_fmt is not
  * recognized.
  */
--- a/media/ffvpx/libavutil/timestamp.h
+++ b/media/ffvpx/libavutil/timestamp.h
@@ -38,17 +38,17 @@
  *
  * @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE
  * @param ts the timestamp to represent
  * @return the buffer in input
  */
 static inline char *av_ts_make_string(char *buf, int64_t ts)
 {
     if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS");
-    else                      snprintf(buf, AV_TS_MAX_STRING_SIZE, "%"PRId64, ts);
+    else                      snprintf(buf, AV_TS_MAX_STRING_SIZE, "%" PRId64, ts);
     return buf;
 }
 
 /**
  * Convenience macro, the return value should be used only directly in
  * function arguments but never stand-alone.
  */
 #define av_ts2str(ts) av_ts_make_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts)
--- a/media/ffvpx/libavutil/utils.c
+++ b/media/ffvpx/libavutil/utils.c
@@ -120,8 +120,21 @@ unsigned av_int_list_length_for_size(uns
     }
     return i;
 }
 
 AVRational av_get_time_base_q(void)
 {
     return (AVRational){1, AV_TIME_BASE};
 }
+
+void av_assert0_fpu(void) {
+#if HAVE_MMX_INLINE
+    uint16_t state[14];
+     __asm volatile (
+        "fstenv %0 \n\t"
+        : "+m" (state)
+        :
+        : "memory"
+    );
+    av_assert0((state[4] & 3) == 3);
+#endif
+}
--- a/media/ffvpx/libavutil/version.h
+++ b/media/ffvpx/libavutil/version.h
@@ -13,27 +13,48 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+/**
+ * @file
+ * @ingroup lavu
+ * Libavutil version macros
+ */
+
 #ifndef AVUTIL_VERSION_H
 #define AVUTIL_VERSION_H
 
 #include "macros.h"
 
 /**
  * @addtogroup version_utils
  *
  * Useful to check and match library version in order to maintain
  * backward compatibility.
  *
+ * The FFmpeg libraries follow a versioning sheme very similar to
+ * Semantic Versioning (http://semver.org/)
+ * The difference is that the component called PATCH is called MICRO in FFmpeg
+ * and its value is reset to 100 instead of 0 to keep it above or equal to 100.
+ * Also we do not increase MICRO for every bugfix or change in git master.
+ *
+ * Prior to FFmpeg 3.2 point releases did not change any lib version number to
+ * avoid aliassing different git master checkouts.
+ * Starting with FFmpeg 3.2, the released library versions will occupy
+ * a separate MAJOR.MINOR that is not used on the master development branch.
+ * That is if we branch a release of master 55.10.123 we will bump to 55.11.100
+ * for the release and master will continue at 55.12.100 after it. Each new
+ * point release will then bump the MICRO improving the usefulness of the lib
+ * versions.
+ *
  * @{
  */
 
 #define AV_VERSION_INT(a, b, c) ((a)<<16 | (b)<<8 | (c))
 #define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c
 #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
 
 /**
@@ -44,48 +65,40 @@
 #define AV_VERSION_MINOR(a) (((a) & 0x00FF00) >> 8)
 #define AV_VERSION_MICRO(a) ((a) & 0xFF)
 
 /**
  * @}
  */
 
 /**
- * @file
- * @ingroup lavu
- * Libavutil version macros
- */
-
-/**
  * @defgroup lavu_ver Version and Build diagnostics
  *
  * Macros and function useful to check at compiletime and at runtime
  * which version of libavutil is in use.
  *
  * @{
  */
 
 #define LIBAVUTIL_VERSION_MAJOR  55
-#define LIBAVUTIL_VERSION_MINOR  28
+#define LIBAVUTIL_VERSION_MINOR  34
 #define LIBAVUTIL_VERSION_MICRO 100
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
                                                LIBAVUTIL_VERSION_MINOR, \
                                                LIBAVUTIL_VERSION_MICRO)
 #define LIBAVUTIL_VERSION       AV_VERSION(LIBAVUTIL_VERSION_MAJOR,     \
                                            LIBAVUTIL_VERSION_MINOR,     \
                                            LIBAVUTIL_VERSION_MICRO)
 #define LIBAVUTIL_BUILD         LIBAVUTIL_VERSION_INT
 
 #define LIBAVUTIL_IDENT         "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION)
 
 /**
- * @}
- *
- * @defgroup depr_guards Deprecation guards
+ * @defgroup lavu_depr_guards Deprecation Guards
  * FF_API_* defines may be placed below to indicate public API that will be
  * dropped at a future version bump. The defines themselves are not part of
  * the public API and may change, break or disappear at any time.
  *
  * @note, when bumping the major version it is recommended to manually
  * disable each FF_API_* in its own commit instead of disabling them all
  * at once through the bump. This improves the git bisect-ability of the change.
  *
@@ -114,15 +127,19 @@
 #define FF_API_PLUS1_MINUS1             (LIBAVUTIL_VERSION_MAJOR < 56)
 #endif
 #ifndef FF_API_ERROR_FRAME
 #define FF_API_ERROR_FRAME              (LIBAVUTIL_VERSION_MAJOR < 56)
 #endif
 #ifndef FF_API_CRC_BIG_TABLE
 #define FF_API_CRC_BIG_TABLE            (LIBAVUTIL_VERSION_MAJOR < 56)
 #endif
+#ifndef FF_API_PKT_PTS
+#define FF_API_PKT_PTS                  (LIBAVUTIL_VERSION_MAJOR < 56)
+#endif
 
 
 /**
  * @}
+ * @}
  */
 
 #endif /* AVUTIL_VERSION_H */
--- a/media/ffvpx/libavutil/x86/asm.h
+++ b/media/ffvpx/libavutil/x86/asm.h
@@ -23,56 +23,56 @@
 
 #include <stdint.h>
 #include "config.h"
 
 typedef struct xmm_reg { uint64_t a, b; } xmm_reg;
 typedef struct ymm_reg { uint64_t a, b, c, d; } ymm_reg;
 
 #if ARCH_X86_64
-#    define OPSIZE "q"
-#    define REG_a "rax"
-#    define REG_b "rbx"
-#    define REG_c "rcx"
-#    define REG_d "rdx"
-#    define REG_D "rdi"
-#    define REG_S "rsi"
-#    define PTR_SIZE "8"
+#    define FF_OPSIZE "q"
+#    define FF_REG_a "rax"
+#    define FF_REG_b "rbx"
+#    define FF_REG_c "rcx"
+#    define FF_REG_d "rdx"
+#    define FF_REG_D "rdi"
+#    define FF_REG_S "rsi"
+#    define FF_PTR_SIZE "8"
 typedef int64_t x86_reg;
 
-/* REG_SP is defined in Solaris sys headers, so use REG_sp */
-#    define REG_sp "rsp"
-#    define REG_BP "rbp"
-#    define REGBP   rbp
-#    define REGa    rax
-#    define REGb    rbx
-#    define REGc    rcx
-#    define REGd    rdx
-#    define REGSP   rsp
+/* FF_REG_SP is defined in Solaris sys headers, so use FF_REG_sp */
+#    define FF_REG_sp "rsp"
+#    define FF_REG_BP "rbp"
+#    define FF_REGBP   rbp
+#    define FF_REGa    rax
+#    define FF_REGb    rbx
+#    define FF_REGc    rcx
+#    define FF_REGd    rdx
+#    define FF_REGSP   rsp
 
 #elif ARCH_X86_32
 
-#    define OPSIZE "l"
-#    define REG_a "eax"
-#    define REG_b "ebx"
-#    define REG_c "ecx"
-#    define REG_d "edx"
-#    define REG_D "edi"
-#    define REG_S "esi"
-#    define PTR_SIZE "4"
+#    define FF_OPSIZE "l"
+#    define FF_REG_a "eax"
+#    define FF_REG_b "ebx"
+#    define FF_REG_c "ecx"
+#    define FF_REG_d "edx"
+#    define FF_REG_D "edi"
+#    define FF_REG_S "esi"
+#    define FF_PTR_SIZE "4"
 typedef int32_t x86_reg;
 
-#    define REG_sp "esp"
-#    define REG_BP "ebp"
-#    define REGBP   ebp
-#    define REGa    eax
-#    define REGb    ebx
-#    define REGc    ecx
-#    define REGd    edx
-#    define REGSP   esp
+#    define FF_REG_sp "esp"
+#    define FF_REG_BP "ebp"
+#    define FF_REGBP   ebp
+#    define FF_REGa    eax
+#    define FF_REGb    ebx
+#    define FF_REGc    ecx
+#    define FF_REGd    edx
+#    define FF_REGSP   esp
 #else
 typedef int x86_reg;
 #endif
 
 #define HAVE_7REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE && HAVE_EBP_AVAILABLE))
 #define HAVE_6REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE || HAVE_EBP_AVAILABLE))
 
 #if ARCH_X86_64 && defined(PIC)
--- a/media/ffvpx/libavutil/x86/cpu.c
+++ b/media/ffvpx/libavutil/x86/cpu.c
@@ -36,19 +36,19 @@
 #define xgetbv(index, eax, edx)                 \
     ff_cpu_xgetbv(index, &eax, &edx)
 
 #elif HAVE_INLINE_ASM
 
 /* ebx saving is necessary for PIC. gcc seems unable to see it alone */
 #define cpuid(index, eax, ebx, ecx, edx)                        \
     __asm__ volatile (                                          \
-        "mov    %%"REG_b", %%"REG_S" \n\t"                      \
+        "mov    %%"FF_REG_b", %%"FF_REG_S" \n\t"                \
         "cpuid                       \n\t"                      \
-        "xchg   %%"REG_b", %%"REG_S                             \
+        "xchg   %%"FF_REG_b", %%"FF_REG_S                       \
         : "=a" (eax), "=S" (ebx), "=c" (ecx), "=d" (edx)        \
         : "0" (index), "2"(0))
 
 #define xgetbv(index, eax, edx)                                 \
     __asm__ (".byte 0x0f, 0x01, 0xd0" : "=a"(eax), "=d"(edx) : "c" (index))
 
 #define get_eflags(x)                           \
     __asm__ volatile ("pushfl     \n"           \
--- a/media/ffvpx/libavutil/x86/emms.h
+++ b/media/ffvpx/libavutil/x86/emms.h
@@ -26,16 +26,18 @@
 void avpriv_emms_yasm(void);
 
 #if HAVE_MMX_INLINE
 #   define emms_c emms_c
 /**
  * Empty mmx state.
  * this must be called between any dsp function and float/double code.
  * for example sin(); dsp->idct_put(); emms_c(); cos()
+ * Note, *alloc() and *free() also use float code in some libc implementations
+ * thus this also applies to them or any function using them.
  */
 static av_always_inline void emms_c(void)
 {
 /* Some inlined functions may also use mmx instructions regardless of
  * runtime cpuflags. With that in mind, we unconditionally empty the
  * mmx state if the target cpu chosen at configure time supports it.
  */
 #if !defined(__MMX__)
--- a/media/ffvpx/libavutil/x86/x86util.asm
+++ b/media/ffvpx/libavutil/x86/x86util.asm
@@ -25,17 +25,20 @@
 
 %define private_prefix ff
 %define public_prefix  avpriv
 %define cpuflags_mmxext cpuflags_mmx2
 
 %include "libavutil/x86/x86inc.asm"
 
 %macro SBUTTERFLY 4
-%if avx_enabled == 0
+%ifidn %1, dqqq
+    vperm2i128  m%4, m%2, m%3, q0301
+    vinserti128 m%2, m%2, xm%3, 1
+%elif avx_enabled == 0
     mova      m%4, m%2
     punpckl%1 m%2, m%3
     punpckh%1 m%4, m%3
 %else
     punpckh%1 m%4, m%2, m%3
     punpckl%1 m%2, m%3
 %endif
     SWAP %3, %4
@@ -188,16 +191,80 @@
     SWAP %2, %5
     SWAP %4, %7
 %if %0<11
     movdqa m%5, %10
 %endif
 %endif
 %endmacro
 
+%macro TRANSPOSE16x16W 18-19
+; in:  m0..m15, unless %19 in which case m6 is in %17
+; out: m0..m15, unless %19 in which case m4 is in %18
+; spills into %17 and %18
+%if %0 < 19
+    mova       %17, m%7
+%endif
+
+    SBUTTERFLY dqqq, %1,  %9, %7
+    SBUTTERFLY dqqq, %2, %10, %7
+    SBUTTERFLY dqqq, %3, %11, %7
+    SBUTTERFLY dqqq, %4, %12, %7
+    SBUTTERFLY dqqq, %5, %13, %7
+    SBUTTERFLY dqqq, %6, %14, %7
+    mova       %18, m%14
+    mova       m%7, %17
+    SBUTTERFLY dqqq, %7, %15, %14
+    SBUTTERFLY dqqq, %8, %16, %14
+
+    SBUTTERFLY  wd,  %1,  %2, %14
+    SBUTTERFLY  wd,  %3,  %4, %14
+    SBUTTERFLY  wd,  %5,  %6, %14
+    SBUTTERFLY  wd,  %7,  %8, %14
+    SBUTTERFLY  wd,  %9, %10, %14
+    SBUTTERFLY  wd, %11, %12, %14
+    mova       %17, m%12
+    mova      m%14, %18
+    SBUTTERFLY  wd, %13, %14, %12
+    SBUTTERFLY  wd, %15, %16, %12
+
+    SBUTTERFLY  dq,  %1,  %3, %12
+    SBUTTERFLY  dq,  %2,  %4, %12
+    SBUTTERFLY  dq,  %5,  %7, %12
+    SBUTTERFLY  dq,  %6,  %8, %12
+    SBUTTERFLY  dq,  %9, %11, %12
+    mova       %18, m%11
+    mova      m%12, %17
+    SBUTTERFLY  dq, %10, %12, %11
+    SBUTTERFLY  dq, %13, %15, %11
+    SBUTTERFLY  dq, %14, %16, %11
+
+    SBUTTERFLY qdq,  %1,  %5, %11
+    SBUTTERFLY qdq,  %2,  %6, %11
+    SBUTTERFLY qdq,  %3,  %7, %11
+    SBUTTERFLY qdq,  %4,  %8, %11
+
+    SWAP        %2, %5
+    SWAP        %4, %7
+
+    SBUTTERFLY qdq,  %9, %13, %11
+    SBUTTERFLY qdq, %10, %14, %11
+    mova      m%11, %18
+    mova       %18, m%5
+    SBUTTERFLY qdq, %11, %15, %5
+    SBUTTERFLY qdq, %12, %16, %5
+
+%if %0 < 19
+    mova       m%5, %18
+%endif
+
+    SWAP       %10, %13
+    SWAP       %12, %15
+%endmacro
+
 ; PABSW macro assumes %1 != %2, while ABS1/2 macros work in-place
 %macro PABSW 2
 %if cpuflag(ssse3)
     pabsw      %1, %2
 %elif cpuflag(mmxext)
     pxor    %1, %1
     psubw   %1, %2
     pmaxsw  %1, %2