Bug 1248483: Resync FFvpx to n3.0-1-g0aa2fbd. r?kentuckyfriedtakahe draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Tue, 16 Feb 2016 12:05:12 +1100
changeset 331152 c288539a1600eab9c0406d2f16ee73c340dae6a7
parent 331151 05f8a1a4c09f300f1c35ad7d5190c64e2f1e32d5
child 514311 9c31fa47c4a6c7319ba09c7689326b93a7913537
push id10909
push userbmo:jyavenard@mozilla.com
push dateTue, 16 Feb 2016 04:14:16 +0000
reviewerskentuckyfriedtakahe
bugs1248483
milestone47.0a1
Bug 1248483: Resync FFvpx to n3.0-1-g0aa2fbd. r?kentuckyfriedtakahe MozReview-Commit-ID: JPOz0SldaSv
media/ffvpx/Changelog
media/ffvpx/LICENSE.md
media/ffvpx/MAINTAINERS
media/ffvpx/README_MOZILLA
media/ffvpx/RELEASE
media/ffvpx/RELEASE_NOTES
media/ffvpx/compat/msvcrt/snprintf.h
media/ffvpx/compat/va_copy.h
media/ffvpx/compat/w32pthreads.h
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/codec_desc.c
media/ffvpx/libavcodec/dummy_funcs.c
media/ffvpx/libavcodec/frame_thread_encoder.h
media/ffvpx/libavcodec/imgconvert.c
media/ffvpx/libavcodec/imgconvert.h
media/ffvpx/libavcodec/motion_est.h
media/ffvpx/libavcodec/mpegvideo.h
media/ffvpx/libavcodec/options_table.h
media/ffvpx/libavcodec/parser.c
media/ffvpx/libavcodec/pthread_slice.c
media/ffvpx/libavcodec/put_bits.h
media/ffvpx/libavcodec/raw.c
media/ffvpx/libavcodec/utils.c
media/ffvpx/libavcodec/version.h
media/ffvpx/libavcodec/vorbis_parser.h
media/ffvpx/libavcodec/vorbis_parser_internal.h
media/ffvpx/libavcodec/vp9.c
media/ffvpx/libavcodec/x86/constants.c
media/ffvpx/libavcodec/x86/constants.h
media/ffvpx/libavcodec/x86/videodsp.asm
media/ffvpx/libavcodec/x86/vp9dsp_init.c
media/ffvpx/libavcodec/x86/vp9dsp_init_16bpp.c
media/ffvpx/libavcodec/x86/vp9dsp_init_16bpp_template.c
media/ffvpx/libavutil/avstring.c
media/ffvpx/libavutil/avstring.h
media/ffvpx/libavutil/common.h
media/ffvpx/libavutil/cpu_internal.h
media/ffvpx/libavutil/ffversion.h
media/ffvpx/libavutil/fixed_dsp.c
media/ffvpx/libavutil/fixed_dsp.h
media/ffvpx/libavutil/frame.c
media/ffvpx/libavutil/frame.h
media/ffvpx/libavutil/imgutils.c
media/ffvpx/libavutil/intmath.h
media/ffvpx/libavutil/libm.h
media/ffvpx/libavutil/opt.c
media/ffvpx/libavutil/parseutils.c
media/ffvpx/libavutil/pixdesc.c
media/ffvpx/libavutil/pixdesc.h
media/ffvpx/libavutil/pixfmt.h
media/ffvpx/libavutil/qsort.h
media/ffvpx/libavutil/thread.h
media/ffvpx/libavutil/utils.c
media/ffvpx/libavutil/version.h
media/ffvpx/libavutil/x86/cpu.c
media/ffvpx/libavutil/x86/cpu.h
media/ffvpx/libavutil/x86/emms.h
media/ffvpx/libavutil/x86/fixed_dsp.asm
media/ffvpx/libavutil/x86/fixed_dsp_init.c
media/ffvpx/libavutil/x86/float_dsp.asm
media/ffvpx/libavutil/x86/float_dsp_init.c
media/ffvpx/libavutil/x86/intmath.h
media/ffvpx/libavutil/x86/lls.asm
media/ffvpx/libavutil/x86/lls_init.c
media/ffvpx/libavutil/x86/moz.build
media/ffvpx/libavutil/x86/x86inc.asm
media/ffvpx/libavutil/x86_cpu.h
--- a/media/ffvpx/Changelog
+++ b/media/ffvpx/Changelog
@@ -1,14 +1,13 @@
 Entries are sorted chronologically from oldest to youngest within each release,
 releases are sorted from youngest to oldest.
 
-version <next>:
-- Common Encryption (CENC) MP4 decoding support
-- Common Encryption (CENC) MP4 encoding support
+version 3.0:
+- Common Encryption (CENC) MP4 encoding and decoding support
 - DXV decoding
 - extrastereo filter
 - ocr filter
 - alimiter filter
 - stereowiden filter
 - stereotools filter
 - rubberband filter
 - tremolo filter
@@ -47,16 +46,34 @@ version <next>:
 - mips64r6 option has been removed
 - DXVA2-accelerated VP9 decoding
 - SOFAlizer: virtual binaural acoustics filter
 - VAAPI VP9 hwaccel
 - audio high-order multiband parametric equalizer
 - automatic bitstream filtering
 - showspectrumpic filter
 - libstagefright support removed
+- spectrumsynth filter
+- ahistogram filter
+- only seek with the right mouse button in ffplay
+- toggle full screen when double-clicking with the left mouse button in ffplay
+- afftfilt filter
+- convolution filter
+- libquvi support removed
+- support for dvaudio in wav and avi
+- libaacplus and libvo-aacenc support removed
+- Cineform HD decoder
+- new DCA decoder with full support for DTS-HD extensions
+- significant performance improvements in Windows Television (WTV) demuxer
+- nnedi deinterlacer
+- streamselect video and astreamselect audio filter
+- swaprect filter
+- metadata video and ametadata audio filter
+- SMPTE VC-2 HQ profile support for the Dirac decoder
+- SMPTE VC-2 native encoder supporting the HQ profile
 
 
 version 2.8:
 - colorkey video filter
 - BFSTM/BCSTM demuxer
 - little-endian ADPCM_THP decoder
 - Hap decoder and encoder
 - DirectDraw Surface image/texture decoder
--- a/media/ffvpx/LICENSE.md
+++ b/media/ffvpx/LICENSE.md
@@ -99,16 +99,16 @@ passing `--enable-gpl` to configure.
 The OpenCORE and VisualOn libraries are under the Apache License 2.0. That
 license is incompatible with the LGPL v2.1 and the GPL v2, but not with
 version 3 of those licenses. So to combine these libraries with FFmpeg, the
 license version needs to be upgraded by passing `--enable-version3` to configure.
 
 incompatible libraries
 ----------------------
 
-The Fraunhofer AAC library, FAAC and aacplus are under licenses which
+The Fraunhofer AAC library and FAAC are under licenses which
 are incompatible with the GPLv2 and v3. We do not know for certain if their
 licenses are compatible with the LGPL.
 If you wish to enable these libraries, pass `--enable-nonfree` to configure.
 But note that if you enable any of these libraries the resulting binary will
 be under a complex license mix that is more restrictive than the LGPL and that
 may result in additional obligations. It is possible that these
 restrictions cause the resulting binary to be unredistributeable.
--- a/media/ffvpx/MAINTAINERS
+++ b/media/ffvpx/MAINTAINERS
@@ -160,16 +160,17 @@ Codecs:
   ccaption_dec.c                        Anshul Maheshwari
   cljr                                  Alex Beregszaszi
   cllc.c                                Derek Buitenhuis
   cook.c, cookdata.h                    Benjamin Larsson
   cpia.c                                Stephan Hilb
   crystalhd.c                           Philip Langdale
   cscd.c                                Reimar Doeffinger
   dca.c                                 Kostya Shishkov, Benjamin Larsson
+  dirac*                                Rostislav Pehlivanov
   dnxhd*                                Baptiste Coudurier
   dpcm.c                                Mike Melanson
   dss_sp.c                              Oleksij Rempel, Michael Niedermayer
   dv.c                                  Roman Shaposhnik
   dvbsubdec.c                           Anshul Maheshwari
   dxa.c                                 Kostya Shishkov
   eacmv*, eaidct*, eat*                 Peter Ross
   evrc*                                 Paul B Mahol
@@ -204,17 +205,17 @@ Codecs:
   libdirac*                             David Conrad
   libgsm.c                              Michel Bardiaux
   libkvazaar.c                          Arttu Ylä-Outinen
   libopenjpeg.c                         Jaikrishnan Menon
   libopenjpegenc.c                      Michael Bradshaw
   libschroedinger*                      David Conrad
   libspeexdec.c                         Justin Ruggles
   libtheoraenc.c                        David Conrad
-  libutvideo*                           Derek Buitenhuis
+  libutvideo*                           Carl Eugen Hoyos
   libvorbis.c                           David Conrad
   libvpx*                               James Zern
   libx264.c                             Mans Rullgard, Jason Garrett-Glaser
   libx265.c                             Derek Buitenhuis
   libxavs.c                             Stefan Gehrer
   libzvbi-teletextdec.c                 Marton Balint
   loco.c                                Kostya Shishkov
   lzo.h, lzo.c                          Reimar Doeffinger
@@ -270,16 +271,17 @@ Codecs:
   tta.c                                 Alex Beregszaszi, Jaikrishnan Menon
   ttaenc.c                              Paul B Mahol
   txd.c                                 Ivo van Poorten
   ulti*                                 Kostya Shishkov
   v410*.c                               Derek Buitenhuis
   vb.c                                  Kostya Shishkov
   vble.c                                Derek Buitenhuis
   vc1*                                  Kostya Shishkov, Christophe Gisquet
+  vc2*                                  Rostislav Pehlivanov
   vcr1.c                                Michael Niedermayer
   vda_h264_dec.c                        Xidorn Quan
   vima.c                                Paul B Mahol
   vmnc.c                                Kostya Shishkov
   vorbisdec.c                           Denes Balatoni, David Conrad
   vorbisenc.c                           Oded Shimon
   vp3*                                  Mike Melanson
   vp5                                   Aurelien Jacobs
@@ -470,16 +472,17 @@ Muxers/Demuxers:
   mxfdec.c                              Tomas Härdin
   nistspheredec.c                       Paul B Mahol
   nsvdec.c                              Francois Revol
   nut*                                  Michael Niedermayer
   nuv.c                                 Reimar Doeffinger
   oggdec.c, oggdec.h                    David Conrad
   oggenc.c                              Baptiste Coudurier
   oggparse*.c                           David Conrad
+  oggparsedaala*                        Rostislav Pehlivanov
   oma.c                                 Maxim Poliakovski
   paf.c                                 Paul B Mahol
   psxstr.c                              Mike Melanson
   pva.c                                 Ivo van Poorten
   pvfdec.c                              Paul B Mahol
   r3d.c                                 Baptiste Coudurier
   raw.c                                 Michael Niedermayer
   rdt.c                                 Ronald S. Bultje
--- a/media/ffvpx/README_MOZILLA
+++ b/media/ffvpx/README_MOZILLA
@@ -1,22 +1,23 @@
 This directory contains files used in gecko builds from FFmpeg
 (http://ffmpeg.org). The current files are from FFmpeg as of
-revision n2.9-dev-2841-g369b161.
+revision n3.0-1-g0aa2fbd
 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 was disabled due to the use of yasm 1.1 on the build bots.
+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.
+Add --disable-avx2 to configure on those platforms.
 
 configuration files were generated as follow using the configure script:
-./configure --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
+./configure --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
 
 config_darwin32.h:
 add to configure command: --disable-asm --disable-yasm --cc='clang -m32'
 
 config_unix32.h:
 add to configure command: --disable-asm --disable-yasm --cc='clang -m32'
 replace: s/HAVE_SYSCTL 1/HAVE_SYSCTL 0/ and s/HAVE_MEMALIGN 1/HAVE_MEMALIGN 0/ and s/HAVE_POSIX_MEMALIGN 1/HAVE_POSIX_MEMALIGN 0/
 
--- a/media/ffvpx/RELEASE
+++ b/media/ffvpx/RELEASE
@@ -1,1 +1,1 @@
-2.8.git
+3.0
new file mode 100644
--- /dev/null
+++ b/media/ffvpx/RELEASE_NOTES
@@ -0,0 +1,15 @@
+
+              ┌─────────────────────────────────────────┐
+              │ RELEASE NOTES for FFmpeg 3.0 "Einstein" │
+              └─────────────────────────────────────────┘
+
+   The FFmpeg Project proudly presents FFmpeg 3.0 "Einstein", about 5
+   months after the release of FFmpeg 2.8.
+
+   A complete Changelog is available at the root of the project, and the
+   complete Git history on http://source.ffmpeg.org.
+
+   We hope you will like this release as much as we enjoyed working on it, and
+   as usual, if you have any questions about it, or any FFmpeg related topic,
+   feel free to join us on the #ffmpeg IRC channel (on irc.freenode.net) or ask
+   on the mailing-lists.
--- a/media/ffvpx/compat/msvcrt/snprintf.h
+++ b/media/ffvpx/compat/msvcrt/snprintf.h
@@ -14,25 +14,25 @@
  * 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
  */
 
-#ifndef COMPAT_SNPRINTF_H
-#define COMPAT_SNPRINTF_H
+#ifndef COMPAT_MSVCRT_SNPRINTF_H
+#define COMPAT_MSVCRT_SNPRINTF_H
 
 #include <stdarg.h>
 #include <stdio.h>
 
 int avpriv_snprintf(char *s, size_t n, const char *fmt, ...);
 int avpriv_vsnprintf(char *s, size_t n, const char *fmt, va_list ap);
 
 #undef snprintf
 #undef _snprintf
 #undef vsnprintf
 #define snprintf avpriv_snprintf
 #define _snprintf avpriv_snprintf
 #define vsnprintf avpriv_vsnprintf
 
-#endif /* COMPAT_SNPRINTF_H */
+#endif /* COMPAT_MSVCRT_SNPRINTF_H */
--- a/media/ffvpx/compat/va_copy.h
+++ b/media/ffvpx/compat/va_copy.h
@@ -14,16 +14,21 @@
  * 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
  */
 
+#ifndef COMPAT_VA_COPY_H
+#define COMPAT_VA_COPY_H
+
 #include <stdarg.h>
 
 #if !defined(va_copy) && defined(_MSC_VER)
 #define va_copy(dst, src) ((dst) = (src))
 #endif
 #if !defined(va_copy) && defined(__GNUC__) && __GNUC__ < 3
 #define va_copy(dst, src) __va_copy(dst, src)
 #endif
+
+#endif /* COMPAT_VA_COPY_H */
--- a/media/ffvpx/compat/w32pthreads.h
+++ b/media/ffvpx/compat/w32pthreads.h
@@ -21,29 +21,34 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 /**
  * @file
  * w32threads to pthreads wrapper
  */
 
-#ifndef FFMPEG_COMPAT_W32PTHREADS_H
-#define FFMPEG_COMPAT_W32PTHREADS_H
+#ifndef COMPAT_W32PTHREADS_H
+#define COMPAT_W32PTHREADS_H
 
 /* Build up a pthread-like API using underlying Windows API. Have only static
  * methods so as to not conflict with a potentially linked in pthread-win32
  * library.
  * As most functions here are used without checking return values,
  * only implement return values as necessary. */
 
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 #include <process.h>
 
+#if _WIN32_WINNT < 0x0600 && defined(__MINGW32__)
+#undef MemoryBarrier
+#define MemoryBarrier __sync_synchronize
+#endif
+
 #include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "libavutil/internal.h"
 #include "libavutil/mem.h"
 
 typedef struct pthread_t {
     void *handle;
     void *(*func)(void* arg);
@@ -77,29 +82,39 @@ static av_unused unsigned __stdcall attr
     return 0;
 }
 
 static av_unused int pthread_create(pthread_t *thread, const void *unused_attr,
                                     void *(*start_routine)(void*), void *arg)
 {
     thread->func   = start_routine;
     thread->arg    = arg;
+#if HAVE_WINRT
+    thread->handle = (void*)CreateThread(NULL, 0, win32thread_worker, thread,
+                                           0, NULL);
+#else
     thread->handle = (void*)_beginthreadex(NULL, 0, win32thread_worker, thread,
                                            0, NULL);
+#endif
     return !thread->handle;
 }
 
-static av_unused void pthread_join(pthread_t thread, void **value_ptr)
+static av_unused int pthread_join(pthread_t thread, void **value_ptr)
 {
     DWORD ret = WaitForSingleObject(thread.handle, INFINITE);
-    if (ret != WAIT_OBJECT_0)
-        return;
+    if (ret != WAIT_OBJECT_0) {
+        if (ret == WAIT_ABANDONED)
+            return EINVAL;
+        else
+            return EDEADLK;
+    }
     if (value_ptr)
         *value_ptr = thread.ret;
     CloseHandle(thread.handle);
+    return 0;
 }
 
 static inline int pthread_mutex_init(pthread_mutex_t *m, void* attr)
 {
     InitializeCriticalSection(m);
     return 0;
 }
 static inline int pthread_mutex_destroy(pthread_mutex_t *m)
@@ -114,47 +129,124 @@ static inline int pthread_mutex_lock(pth
 }
 static inline int pthread_mutex_unlock(pthread_mutex_t *m)
 {
     LeaveCriticalSection(m);
     return 0;
 }
 
 #if _WIN32_WINNT >= 0x0600
+typedef INIT_ONCE pthread_once_t;
+#define PTHREAD_ONCE_INIT INIT_ONCE_STATIC_INIT
+
+static av_unused int pthread_once(pthread_once_t *once_control, void (*init_routine)(void))
+{
+    BOOL pending = FALSE;
+    InitOnceBeginInitialize(once_control, 0, &pending, NULL);
+    if (pending)
+        init_routine();
+    InitOnceComplete(once_control, 0, NULL);
+    return 0;
+}
+
 static inline int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
 {
     InitializeConditionVariable(cond);
     return 0;
 }
 
 /* native condition variables do not destroy */
-static inline void pthread_cond_destroy(pthread_cond_t *cond)
+static inline int pthread_cond_destroy(pthread_cond_t *cond)
 {
-    return;
+    return 0;
 }
 
-static inline void pthread_cond_broadcast(pthread_cond_t *cond)
+static inline int pthread_cond_broadcast(pthread_cond_t *cond)
 {
     WakeAllConditionVariable(cond);
+    return 0;
 }
 
 static inline int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
 {
     SleepConditionVariableCS(cond, mutex, INFINITE);
     return 0;
 }
 
-static inline void pthread_cond_signal(pthread_cond_t *cond)
+static inline int pthread_cond_signal(pthread_cond_t *cond)
 {
     WakeConditionVariable(cond);
+    return 0;
 }
 
 #else // _WIN32_WINNT < 0x0600
+
+/* atomic init state of dynamically loaded functions */
+static LONG w32thread_init_state = 0;
+static av_unused void w32thread_init(void);
+
+/* for pre-Windows 6.0 platforms, define INIT_ONCE struct,
+ * compatible to the one used in the native API */
+
+typedef union pthread_once_t  {
+    void * Ptr;    ///< For the Windows 6.0+ native functions
+    LONG state;    ///< For the pre-Windows 6.0 compat code
+} pthread_once_t;
+
+#define PTHREAD_ONCE_INIT {0}
+
+/* function pointers to init once API on windows 6.0+ kernels */
+static BOOL (WINAPI *initonce_begin)(pthread_once_t *lpInitOnce, DWORD dwFlags, BOOL *fPending, void **lpContext);
+static BOOL (WINAPI *initonce_complete)(pthread_once_t *lpInitOnce, DWORD dwFlags, void *lpContext);
+
+/* pre-Windows 6.0 compat using a spin-lock */
+static inline void w32thread_once_fallback(LONG volatile *state, void (*init_routine)(void))
+{
+    switch (InterlockedCompareExchange(state, 1, 0)) {
+    /* Initial run */
+    case 0:
+        init_routine();
+        InterlockedExchange(state, 2);
+        break;
+    /* Another thread is running init */
+    case 1:
+        while (1) {
+            MemoryBarrier();
+            if (*state == 2)
+                break;
+            Sleep(0);
+        }
+        break;
+    /* Initialization complete */
+    case 2:
+        break;
+    }
+}
+
+static av_unused int pthread_once(pthread_once_t *once_control, void (*init_routine)(void))
+{
+    w32thread_once_fallback(&w32thread_init_state, w32thread_init);
+
+    /* Use native functions on Windows 6.0+ */
+    if (initonce_begin && initonce_complete) {
+        BOOL pending = FALSE;
+        initonce_begin(once_control, 0, &pending, NULL);
+        if (pending)
+            init_routine();
+        initonce_complete(once_control, 0, NULL);
+        return 0;
+    }
+
+    w32thread_once_fallback(&once_control->state, init_routine);
+    return 0;
+}
+
 /* for pre-Windows 6.0 platforms we need to define and use our own condition
  * variable and api */
+
 typedef struct  win32_cond_t {
     pthread_mutex_t mtx_broadcast;
     pthread_mutex_t mtx_waiter_count;
     volatile int waiter_count;
     HANDLE semaphore;
     HANDLE waiters_done;
     volatile int is_broadcast;
 } win32_cond_t;
@@ -164,16 +256,19 @@ static void (WINAPI *cond_broadcast)(pth
 static void (WINAPI *cond_init)(pthread_cond_t *cond);
 static void (WINAPI *cond_signal)(pthread_cond_t *cond);
 static BOOL (WINAPI *cond_wait)(pthread_cond_t *cond, pthread_mutex_t *mutex,
                                 DWORD milliseconds);
 
 static av_unused int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
 {
     win32_cond_t *win32_cond = NULL;
+
+    w32thread_once_fallback(&w32thread_init_state, w32thread_init);
+
     if (cond_init) {
         cond_init(cond);
         return 0;
     }
 
     /* non native condition variables */
     win32_cond = av_mallocz(sizeof(win32_cond_t));
     if (!win32_cond)
@@ -186,40 +281,41 @@ static av_unused int pthread_cond_init(p
     if (!win32_cond->waiters_done)
         return ENOMEM;
 
     pthread_mutex_init(&win32_cond->mtx_waiter_count, NULL);
     pthread_mutex_init(&win32_cond->mtx_broadcast, NULL);
     return 0;
 }
 
-static av_unused void pthread_cond_destroy(pthread_cond_t *cond)
+static av_unused int pthread_cond_destroy(pthread_cond_t *cond)
 {
     win32_cond_t *win32_cond = cond->Ptr;
     /* native condition variables do not destroy */
     if (cond_init)
-        return;
+        return 0;
 
     /* non native condition variables */
     CloseHandle(win32_cond->semaphore);
     CloseHandle(win32_cond->waiters_done);
     pthread_mutex_destroy(&win32_cond->mtx_waiter_count);
     pthread_mutex_destroy(&win32_cond->mtx_broadcast);
     av_freep(&win32_cond);
     cond->Ptr = NULL;
+    return 0;
 }
 
-static av_unused void pthread_cond_broadcast(pthread_cond_t *cond)
+static av_unused int pthread_cond_broadcast(pthread_cond_t *cond)
 {
     win32_cond_t *win32_cond = cond->Ptr;
     int have_waiter;
 
     if (cond_broadcast) {
         cond_broadcast(cond);
-        return;
+        return 0;
     }
 
     /* non native condition variables */
     pthread_mutex_lock(&win32_cond->mtx_broadcast);
     pthread_mutex_lock(&win32_cond->mtx_waiter_count);
     have_waiter = 0;
 
     if (win32_cond->waiter_count) {
@@ -231,16 +327,17 @@ static av_unused void pthread_cond_broad
         ReleaseSemaphore(win32_cond->semaphore, win32_cond->waiter_count, NULL);
         pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
         WaitForSingleObject(win32_cond->waiters_done, INFINITE);
         ResetEvent(win32_cond->waiters_done);
         win32_cond->is_broadcast = 0;
     } else
         pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
     pthread_mutex_unlock(&win32_cond->mtx_broadcast);
+    return 0;
 }
 
 static av_unused int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
 {
     win32_cond_t *win32_cond = cond->Ptr;
     int last_waiter;
     if (cond_wait) {
         cond_wait(cond, mutex, INFINITE);
@@ -265,52 +362,57 @@ static av_unused int pthread_cond_wait(p
 
     if (last_waiter)
         SetEvent(win32_cond->waiters_done);
 
     // lock the external mutex
     return pthread_mutex_lock(mutex);
 }
 
-static av_unused void pthread_cond_signal(pthread_cond_t *cond)
+static av_unused int pthread_cond_signal(pthread_cond_t *cond)
 {
     win32_cond_t *win32_cond = cond->Ptr;
     int have_waiter;
     if (cond_signal) {
         cond_signal(cond);
-        return;
+        return 0;
     }
 
     pthread_mutex_lock(&win32_cond->mtx_broadcast);
 
     /* non-native condition variables */
     pthread_mutex_lock(&win32_cond->mtx_waiter_count);
     have_waiter = win32_cond->waiter_count;
     pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
 
     if (have_waiter) {
         ReleaseSemaphore(win32_cond->semaphore, 1, NULL);
         WaitForSingleObject(win32_cond->waiters_done, INFINITE);
         ResetEvent(win32_cond->waiters_done);
     }
 
     pthread_mutex_unlock(&win32_cond->mtx_broadcast);
+    return 0;
 }
 #endif
 
 static av_unused void w32thread_init(void)
 {
 #if _WIN32_WINNT < 0x0600
     HANDLE kernel_dll = GetModuleHandle(TEXT("kernel32.dll"));
     /* if one is available, then they should all be available */
     cond_init      =
         (void*)GetProcAddress(kernel_dll, "InitializeConditionVariable");
     cond_broadcast =
         (void*)GetProcAddress(kernel_dll, "WakeAllConditionVariable");
     cond_signal    =
         (void*)GetProcAddress(kernel_dll, "WakeConditionVariable");
     cond_wait      =
         (void*)GetProcAddress(kernel_dll, "SleepConditionVariableCS");
+    initonce_begin =
+        (void*)GetProcAddress(kernel_dll, "InitOnceBeginInitialize");
+    initonce_complete =
+        (void*)GetProcAddress(kernel_dll, "InitOnceComplete");
 #endif
 
 }
 
-#endif /* FFMPEG_COMPAT_W32PTHREADS_H */
+#endif /* COMPAT_W32PTHREADS_H */
--- a/media/ffvpx/config_darwin32.h
+++ b/media/ffvpx/config_darwin32.h
@@ -1,12 +1,12 @@
 /* Automatically generated by configure - do not modify! */
 #ifndef FFMPEG_CONFIG_H
 #define FFMPEG_CONFIG_H
-#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 --disable-avx2 --cc='clang -m32' --disable-asm"
+#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='clang -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 "Apple LLVM version 7.0.2 (clang-700.1.81)"
 #define av_restrict restrict
 #define EXTERN_PREFIX "_"
 #define EXTERN_ASM _
@@ -212,16 +212,17 @@
 #define HAVE_DXVA_H 0
 #define HAVE_ES2_GL_H 0
 #define HAVE_GSM_H 0
 #define HAVE_IO_H 0
 #define HAVE_MACH_MACH_TIME_H 1
 #define HAVE_MACHINE_IOCTL_BT848_H 0
 #define HAVE_MACHINE_IOCTL_METEOR_H 0
 #define HAVE_MALLOC_H 0
+#define HAVE_OPENCV2_CORE_CORE_C_H 0
 #define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
 #define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
 #define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
 #define HAVE_OPENGL_GL3_H 0
 #define HAVE_POLL_H 1
 #define HAVE_SNDIO_H 0
 #define HAVE_SOUNDCARD_H 0
 #define HAVE_SYS_MMAN_H 1
@@ -245,16 +246,17 @@
 #define HAVE_CBRTF 1
 #define HAVE_COPYSIGN 1
 #define HAVE_COSF 1
 #define HAVE_ERF 1
 #define HAVE_EXP2 1
 #define HAVE_EXP2F 1
 #define HAVE_EXPF 1
 #define HAVE_HYPOT 1
+#define HAVE_ISFINITE 1
 #define HAVE_ISINF 1
 #define HAVE_ISNAN 1
 #define HAVE_LDEXPF 1
 #define HAVE_LLRINT 1
 #define HAVE_LLRINTF 1
 #define HAVE_LOG2 1
 #define HAVE_LOG2F 1
 #define HAVE_LOG10F 1
@@ -330,19 +332,19 @@
 #define HAVE_ASM_MOD_Q 0
 #define HAVE_ATTRIBUTE_MAY_ALIAS 1
 #define HAVE_ATTRIBUTE_PACKED 1
 #define HAVE_EBP_AVAILABLE 1
 #define HAVE_EBX_AVAILABLE 1
 #define HAVE_GNU_AS 0
 #define HAVE_GNU_WINDRES 0
 #define HAVE_IBM_ASM 0
+#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 #define HAVE_INLINE_ASM_LABELS 1
 #define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
-#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 #define HAVE_PRAGMA_DEPRECATED 1
 #define HAVE_RSYNC_CONTIMEOUT 0
 #define HAVE_SYMVER_ASM_LABEL 1
 #define HAVE_SYMVER_GNU_ASM 0
 #define HAVE_VFP_ARGS 0
 #define HAVE_XFORM_ASM 0
 #define HAVE_XMM_CLOBBERS 1
 #define HAVE_CONDITION_VARIABLE_PTR 0
@@ -356,32 +358,32 @@
 #define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
 #define HAVE_STRUCT_SOCKADDR_IN6 1
 #define HAVE_STRUCT_SOCKADDR_SA_LEN 1
 #define HAVE_STRUCT_SOCKADDR_STORAGE 1
 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0
 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0
 #define HAVE_ATOMICS_NATIVE 1
 #define HAVE_DOS_PATHS 0
+#define HAVE_DXVA2_LIB 0
 #define HAVE_DXVA2API_COBJ 0
-#define HAVE_DXVA2_LIB 0
-#define HAVE_WINRT 0
 #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_PERL 1
 #define HAVE_POD2MAN 1
 #define HAVE_SDL 0
 #define HAVE_SECTION_DATA_REL_RO 0
 #define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
+#define HAVE_WINRT 0
 #define HAVE_XLIB 0
 #define CONFIG_BSFS 0
 #define CONFIG_DECODERS 1
 #define CONFIG_ENCODERS 0
 #define CONFIG_HWACCELS 0
 #define CONFIG_PARSERS 1
 #define CONFIG_INDEVS 0
 #define CONFIG_OUTDEVS 0
@@ -416,17 +418,16 @@
 #define CONFIG_CRYSTALHD 0
 #define CONFIG_DECKLINK 0
 #define CONFIG_FREI0R 0
 #define CONFIG_GCRYPT 0
 #define CONFIG_GMP 0
 #define CONFIG_GNUTLS 0
 #define CONFIG_ICONV 0
 #define CONFIG_LADSPA 0
-#define CONFIG_LIBAACPLUS 0
 #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_LIBDCADEC 0
@@ -447,33 +448,31 @@
 #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_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
-#define CONFIG_LIBQUVI 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
 #define CONFIG_LIBSOXR 0
 #define CONFIG_LIBSPEEX 0
 #define CONFIG_LIBSSH 0
 #define CONFIG_LIBTESSERACT 0
 #define CONFIG_LIBTHEORA 0
 #define CONFIG_LIBTWOLAME 0
 #define CONFIG_LIBUTVIDEO 0
 #define CONFIG_LIBV4L2 0
 #define CONFIG_LIBVIDSTAB 0
-#define CONFIG_LIBVO_AACENC 0
 #define CONFIG_LIBVO_AMRWBENC 0
 #define CONFIG_LIBVORBIS 0
 #define CONFIG_LIBVPX 0
 #define CONFIG_LIBWAVPACK 0
 #define CONFIG_LIBWEBP 0
 #define CONFIG_LIBX264 0
 #define CONFIG_LIBX265 0
 #define CONFIG_LIBXAVS 0
@@ -583,18 +582,18 @@
 #define CONFIG_HUFFYUVDSP 0
 #define CONFIG_HUFFYUVENCDSP 0
 #define CONFIG_IDCTDSP 0
 #define CONFIG_IIRFILTER 0
 #define CONFIG_IMDCT15 0
 #define CONFIG_INTRAX8 0
 #define CONFIG_IVIDSP 0
 #define CONFIG_JPEGTABLES 0
+#define CONFIG_LGPLV3 0
 #define CONFIG_LIBX262 0
-#define CONFIG_LGPLV3 0
 #define CONFIG_LLAUDDSP 0
 #define CONFIG_LLVIDDSP 0
 #define CONFIG_LPC 0
 #define CONFIG_LZF 0
 #define CONFIG_ME_CMP 0
 #define CONFIG_MPEG_ER 0
 #define CONFIG_MPEGAUDIO 0
 #define CONFIG_MPEGAUDIODSP 0
@@ -659,29 +658,31 @@
 #define CONFIG_BINK_DECODER 0
 #define CONFIG_BMP_DECODER 0
 #define CONFIG_BMV_VIDEO_DECODER 0
 #define CONFIG_BRENDER_PIX_DECODER 0
 #define CONFIG_C93_DECODER 0
 #define CONFIG_CAVS_DECODER 0
 #define CONFIG_CDGRAPHICS_DECODER 0
 #define CONFIG_CDXL_DECODER 0
+#define CONFIG_CFHD_DECODER 0
 #define CONFIG_CINEPAK_DECODER 0
 #define CONFIG_CLJR_DECODER 0
 #define CONFIG_CLLC_DECODER 0
 #define CONFIG_COMFORTNOISE_DECODER 0
 #define CONFIG_CPIA_DECODER 0
 #define CONFIG_CSCD_DECODER 0
 #define CONFIG_CYUV_DECODER 0
 #define CONFIG_DDS_DECODER 0
 #define CONFIG_DFA_DECODER 0
 #define CONFIG_DIRAC_DECODER 0
 #define CONFIG_DNXHD_DECODER 0
 #define CONFIG_DPX_DECODER 0
 #define CONFIG_DSICINVIDEO_DECODER 0
+#define CONFIG_DVAUDIO_DECODER 0
 #define CONFIG_DVVIDEO_DECODER 0
 #define CONFIG_DXA_DECODER 0
 #define CONFIG_DXTORY_DECODER 0
 #define CONFIG_DXV_DECODER 0
 #define CONFIG_EACMV_DECODER 0
 #define CONFIG_EAMAD_DECODER 0
 #define CONFIG_EATGQ_DECODER 0
 #define CONFIG_EATGV_DECODER 0
@@ -741,16 +742,17 @@
 #define CONFIG_MJPEGB_DECODER 0
 #define CONFIG_MMVIDEO_DECODER 0
 #define CONFIG_MOTIONPIXELS_DECODER 0
 #define CONFIG_MPEG_XVMC_DECODER 0
 #define CONFIG_MPEG1VIDEO_DECODER 0
 #define CONFIG_MPEG2VIDEO_DECODER 0
 #define CONFIG_MPEG4_DECODER 0
 #define CONFIG_MPEG4_CRYSTALHD_DECODER 0
+#define CONFIG_MPEG4_MMAL_DECODER 0
 #define CONFIG_MPEG4_VDPAU_DECODER 0
 #define CONFIG_MPEGVIDEO_DECODER 0
 #define CONFIG_MPEG_VDPAU_DECODER 0
 #define CONFIG_MPEG1_VDPAU_DECODER 0
 #define CONFIG_MPEG2_MMAL_DECODER 0
 #define CONFIG_MPEG2_CRYSTALHD_DECODER 0
 #define CONFIG_MPEG2_QSV_DECODER 0
 #define CONFIG_MSA1_DECODER 0
@@ -1317,17 +1319,16 @@
 #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_LIBQUVI_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
@@ -1385,16 +1386,17 @@
 #define CONFIG_SVQ1_ENCODER 0
 #define CONFIG_TARGA_ENCODER 0
 #define CONFIG_TIFF_ENCODER 0
 #define CONFIG_UTVIDEO_ENCODER 0
 #define CONFIG_V210_ENCODER 0
 #define CONFIG_V308_ENCODER 0
 #define CONFIG_V408_ENCODER 0
 #define CONFIG_V410_ENCODER 0
+#define CONFIG_VC2_ENCODER 0
 #define CONFIG_WRAPPED_AVFRAME_ENCODER 0
 #define CONFIG_WMV1_ENCODER 0
 #define CONFIG_WMV2_ENCODER 0
 #define CONFIG_XBM_ENCODER 0
 #define CONFIG_XFACE_ENCODER 0
 #define CONFIG_XWD_ENCODER 0
 #define CONFIG_Y41P_ENCODER 0
 #define CONFIG_YUV4_ENCODER 0
@@ -1474,52 +1476,52 @@
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
 #define CONFIG_LIBSCHROEDINGER_ENCODER 0
 #define CONFIG_LIBSHINE_ENCODER 0
 #define CONFIG_LIBSPEEX_ENCODER 0
 #define CONFIG_LIBTHEORA_ENCODER 0
 #define CONFIG_LIBTWOLAME_ENCODER 0
 #define CONFIG_LIBUTVIDEO_ENCODER 0
-#define CONFIG_LIBVO_AACENC_ENCODER 0
 #define CONFIG_LIBVO_AMRWBENC_ENCODER 0
 #define CONFIG_LIBVORBIS_ENCODER 0
 #define CONFIG_LIBVPX_VP8_ENCODER 0
 #define CONFIG_LIBVPX_VP9_ENCODER 0
 #define CONFIG_LIBWAVPACK_ENCODER 0
 #define CONFIG_LIBWEBP_ANIM_ENCODER 0
 #define CONFIG_LIBWEBP_ENCODER 0
 #define CONFIG_LIBX262_ENCODER 0
 #define CONFIG_LIBX264_ENCODER 0
 #define CONFIG_LIBX264RGB_ENCODER 0
 #define CONFIG_LIBX265_ENCODER 0
 #define CONFIG_LIBXAVS_ENCODER 0
 #define CONFIG_LIBXVID_ENCODER 0
-#define CONFIG_LIBAACPLUS_ENCODER 0
 #define CONFIG_LIBOPENH264_ENCODER 0
 #define CONFIG_H264_QSV_ENCODER 0
 #define CONFIG_NVENC_ENCODER 0
 #define CONFIG_NVENC_H264_ENCODER 0
 #define CONFIG_NVENC_HEVC_ENCODER 0
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_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
 #define CONFIG_AINTERLEAVE_FILTER 0
 #define CONFIG_ALIMITER_FILTER 0
 #define CONFIG_ALLPASS_FILTER 0
 #define CONFIG_AMERGE_FILTER 0
+#define CONFIG_AMETADATA_FILTER 0
 #define CONFIG_AMIX_FILTER 0
 #define CONFIG_ANEQUALIZER_FILTER 0
 #define CONFIG_ANULL_FILTER 0
 #define CONFIG_APAD_FILTER 0
 #define CONFIG_APERMS_FILTER 0
 #define CONFIG_APHASER_FILTER 0
 #define CONFIG_APULSATOR_FILTER 0
 #define CONFIG_AREALTIME_FILTER 0
@@ -1529,16 +1531,17 @@
 #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_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
 #define CONFIG_BANDREJECT_FILTER 0
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
@@ -1592,16 +1595,17 @@
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
 #define CONFIG_COLORBALANCE_FILTER 0
 #define CONFIG_COLORCHANNELMIXER_FILTER 0
 #define CONFIG_COLORKEY_FILTER 0
 #define CONFIG_COLORLEVELS_FILTER 0
 #define CONFIG_COLORMATRIX_FILTER 0
+#define CONFIG_CONVOLUTION_FILTER 0
 #define CONFIG_COPY_FILTER 0
 #define CONFIG_COVER_RECT_FILTER 0
 #define CONFIG_CROP_FILTER 0
 #define CONFIG_CROPDETECT_FILTER 0
 #define CONFIG_CURVES_FILTER 0
 #define CONFIG_DCTDNOIZ_FILTER 0
 #define CONFIG_DEBAND_FILTER 0
 #define CONFIG_DECIMATE_FILTER 0
@@ -1653,18 +1657,20 @@
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
 #define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_METADATA_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_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
 #define CONFIG_PAD_FILTER 0
@@ -1703,18 +1709,20 @@
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_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
 #define CONFIG_SWAPUV_FILTER 0
 #define CONFIG_TBLEND_FILTER 0
 #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
@@ -1745,26 +1753,28 @@
 #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_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_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
@@ -1784,16 +1794,17 @@
 #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_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_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
@@ -1989,16 +2000,17 @@
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
 #define CONFIG_CAVSVIDEO_PARSER 0
 #define CONFIG_COOK_PARSER 0
 #define CONFIG_DCA_PARSER 0
 #define CONFIG_DIRAC_PARSER 0
 #define CONFIG_DNXHD_PARSER 0
 #define CONFIG_DPX_PARSER 0
+#define CONFIG_DVAUDIO_PARSER 0
 #define CONFIG_DVBSUB_PARSER 0
 #define CONFIG_DVDSUB_PARSER 0
 #define CONFIG_DVD_NAV_PARSER 0
 #define CONFIG_FLAC_PARSER 0
 #define CONFIG_G729_PARSER 0
 #define CONFIG_GSM_PARSER 0
 #define CONFIG_H261_PARSER 0
 #define CONFIG_H263_PARSER 0
--- a/media/ffvpx/config_darwin64.asm
+++ b/media/ffvpx/config_darwin64.asm
@@ -196,16 +196,17 @@
 %define HAVE_DXVA_H 0
 %define HAVE_ES2_GL_H 0
 %define HAVE_GSM_H 0
 %define HAVE_IO_H 0
 %define HAVE_MACH_MACH_TIME_H 1
 %define HAVE_MACHINE_IOCTL_BT848_H 0
 %define HAVE_MACHINE_IOCTL_METEOR_H 0
 %define HAVE_MALLOC_H 0
+%define HAVE_OPENCV2_CORE_CORE_C_H 0
 %define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
 %define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
 %define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
 %define HAVE_OPENGL_GL3_H 0
 %define HAVE_POLL_H 1
 %define HAVE_SNDIO_H 0
 %define HAVE_SOUNDCARD_H 0
 %define HAVE_SYS_MMAN_H 1
@@ -229,16 +230,17 @@
 %define HAVE_CBRTF 1
 %define HAVE_COPYSIGN 1
 %define HAVE_COSF 1
 %define HAVE_ERF 1
 %define HAVE_EXP2 1
 %define HAVE_EXP2F 1
 %define HAVE_EXPF 1
 %define HAVE_HYPOT 1
+%define HAVE_ISFINITE 1
 %define HAVE_ISINF 1
 %define HAVE_ISNAN 1
 %define HAVE_LDEXPF 1
 %define HAVE_LLRINT 1
 %define HAVE_LLRINTF 1
 %define HAVE_LOG2 1
 %define HAVE_LOG2F 1
 %define HAVE_LOG10F 1
@@ -314,19 +316,19 @@
 %define HAVE_ASM_MOD_Q 0
 %define HAVE_ATTRIBUTE_MAY_ALIAS 1
 %define HAVE_ATTRIBUTE_PACKED 1
 %define HAVE_EBP_AVAILABLE 1
 %define HAVE_EBX_AVAILABLE 1
 %define HAVE_GNU_AS 0
 %define HAVE_GNU_WINDRES 0
 %define HAVE_IBM_ASM 0
+%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 %define HAVE_INLINE_ASM_LABELS 1
 %define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
-%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 %define HAVE_PRAGMA_DEPRECATED 1
 %define HAVE_RSYNC_CONTIMEOUT 0
 %define HAVE_SYMVER_ASM_LABEL 1
 %define HAVE_SYMVER_GNU_ASM 0
 %define HAVE_VFP_ARGS 0
 %define HAVE_XFORM_ASM 0
 %define HAVE_XMM_CLOBBERS 1
 %define HAVE_CONDITION_VARIABLE_PTR 0
@@ -340,32 +342,32 @@
 %define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
 %define HAVE_STRUCT_SOCKADDR_IN6 1
 %define HAVE_STRUCT_SOCKADDR_SA_LEN 1
 %define HAVE_STRUCT_SOCKADDR_STORAGE 1
 %define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0
 %define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0
 %define HAVE_ATOMICS_NATIVE 1
 %define HAVE_DOS_PATHS 0
+%define HAVE_DXVA2_LIB 0
 %define HAVE_DXVA2API_COBJ 0
-%define HAVE_DXVA2_LIB 0
-%define HAVE_WINRT 0
 %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_PERL 1
 %define HAVE_POD2MAN 1
 %define HAVE_SDL 0
 %define HAVE_SECTION_DATA_REL_RO 0
 %define HAVE_TEXI2HTML 0
 %define HAVE_THREADS 1
 %define HAVE_VAAPI_X11 0
 %define HAVE_VDPAU_X11 0
+%define HAVE_WINRT 0
 %define HAVE_XLIB 0
 %define CONFIG_BSFS 0
 %define CONFIG_DECODERS 1
 %define CONFIG_ENCODERS 0
 %define CONFIG_HWACCELS 0
 %define CONFIG_PARSERS 1
 %define CONFIG_INDEVS 0
 %define CONFIG_OUTDEVS 0
@@ -400,17 +402,16 @@
 %define CONFIG_CRYSTALHD 0
 %define CONFIG_DECKLINK 0
 %define CONFIG_FREI0R 0
 %define CONFIG_GCRYPT 0
 %define CONFIG_GMP 0
 %define CONFIG_GNUTLS 0
 %define CONFIG_ICONV 0
 %define CONFIG_LADSPA 0
-%define CONFIG_LIBAACPLUS 0
 %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_LIBDCADEC 0
@@ -431,33 +432,31 @@
 %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_LIBOPUS 0
 %define CONFIG_LIBPULSE 0
-%define CONFIG_LIBQUVI 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
 %define CONFIG_LIBSOXR 0
 %define CONFIG_LIBSPEEX 0
 %define CONFIG_LIBSSH 0
 %define CONFIG_LIBTESSERACT 0
 %define CONFIG_LIBTHEORA 0
 %define CONFIG_LIBTWOLAME 0
 %define CONFIG_LIBUTVIDEO 0
 %define CONFIG_LIBV4L2 0
 %define CONFIG_LIBVIDSTAB 0
-%define CONFIG_LIBVO_AACENC 0
 %define CONFIG_LIBVO_AMRWBENC 0
 %define CONFIG_LIBVORBIS 0
 %define CONFIG_LIBVPX 0
 %define CONFIG_LIBWAVPACK 0
 %define CONFIG_LIBWEBP 0
 %define CONFIG_LIBX264 0
 %define CONFIG_LIBX265 0
 %define CONFIG_LIBXAVS 0
@@ -567,18 +566,18 @@
 %define CONFIG_HUFFYUVDSP 0
 %define CONFIG_HUFFYUVENCDSP 0
 %define CONFIG_IDCTDSP 0
 %define CONFIG_IIRFILTER 0
 %define CONFIG_IMDCT15 0
 %define CONFIG_INTRAX8 0
 %define CONFIG_IVIDSP 0
 %define CONFIG_JPEGTABLES 0
+%define CONFIG_LGPLV3 0
 %define CONFIG_LIBX262 0
-%define CONFIG_LGPLV3 0
 %define CONFIG_LLAUDDSP 0
 %define CONFIG_LLVIDDSP 0
 %define CONFIG_LPC 0
 %define CONFIG_LZF 0
 %define CONFIG_ME_CMP 0
 %define CONFIG_MPEG_ER 0
 %define CONFIG_MPEGAUDIO 0
 %define CONFIG_MPEGAUDIODSP 0
@@ -643,29 +642,31 @@
 %define CONFIG_BINK_DECODER 0
 %define CONFIG_BMP_DECODER 0
 %define CONFIG_BMV_VIDEO_DECODER 0
 %define CONFIG_BRENDER_PIX_DECODER 0
 %define CONFIG_C93_DECODER 0
 %define CONFIG_CAVS_DECODER 0
 %define CONFIG_CDGRAPHICS_DECODER 0
 %define CONFIG_CDXL_DECODER 0
+%define CONFIG_CFHD_DECODER 0
 %define CONFIG_CINEPAK_DECODER 0
 %define CONFIG_CLJR_DECODER 0
 %define CONFIG_CLLC_DECODER 0
 %define CONFIG_COMFORTNOISE_DECODER 0
 %define CONFIG_CPIA_DECODER 0
 %define CONFIG_CSCD_DECODER 0
 %define CONFIG_CYUV_DECODER 0
 %define CONFIG_DDS_DECODER 0
 %define CONFIG_DFA_DECODER 0
 %define CONFIG_DIRAC_DECODER 0
 %define CONFIG_DNXHD_DECODER 0
 %define CONFIG_DPX_DECODER 0
 %define CONFIG_DSICINVIDEO_DECODER 0
+%define CONFIG_DVAUDIO_DECODER 0
 %define CONFIG_DVVIDEO_DECODER 0
 %define CONFIG_DXA_DECODER 0
 %define CONFIG_DXTORY_DECODER 0
 %define CONFIG_DXV_DECODER 0
 %define CONFIG_EACMV_DECODER 0
 %define CONFIG_EAMAD_DECODER 0
 %define CONFIG_EATGQ_DECODER 0
 %define CONFIG_EATGV_DECODER 0
@@ -725,16 +726,17 @@
 %define CONFIG_MJPEGB_DECODER 0
 %define CONFIG_MMVIDEO_DECODER 0
 %define CONFIG_MOTIONPIXELS_DECODER 0
 %define CONFIG_MPEG_XVMC_DECODER 0
 %define CONFIG_MPEG1VIDEO_DECODER 0
 %define CONFIG_MPEG2VIDEO_DECODER 0
 %define CONFIG_MPEG4_DECODER 0
 %define CONFIG_MPEG4_CRYSTALHD_DECODER 0
+%define CONFIG_MPEG4_MMAL_DECODER 0
 %define CONFIG_MPEG4_VDPAU_DECODER 0
 %define CONFIG_MPEGVIDEO_DECODER 0
 %define CONFIG_MPEG_VDPAU_DECODER 0
 %define CONFIG_MPEG1_VDPAU_DECODER 0
 %define CONFIG_MPEG2_MMAL_DECODER 0
 %define CONFIG_MPEG2_CRYSTALHD_DECODER 0
 %define CONFIG_MPEG2_QSV_DECODER 0
 %define CONFIG_MSA1_DECODER 0
@@ -1301,17 +1303,16 @@
 %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_LIBQUVI_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
@@ -1369,16 +1370,17 @@
 %define CONFIG_SVQ1_ENCODER 0
 %define CONFIG_TARGA_ENCODER 0
 %define CONFIG_TIFF_ENCODER 0
 %define CONFIG_UTVIDEO_ENCODER 0
 %define CONFIG_V210_ENCODER 0
 %define CONFIG_V308_ENCODER 0
 %define CONFIG_V408_ENCODER 0
 %define CONFIG_V410_ENCODER 0
+%define CONFIG_VC2_ENCODER 0
 %define CONFIG_WRAPPED_AVFRAME_ENCODER 0
 %define CONFIG_WMV1_ENCODER 0
 %define CONFIG_WMV2_ENCODER 0
 %define CONFIG_XBM_ENCODER 0
 %define CONFIG_XFACE_ENCODER 0
 %define CONFIG_XWD_ENCODER 0
 %define CONFIG_Y41P_ENCODER 0
 %define CONFIG_YUV4_ENCODER 0
@@ -1458,52 +1460,52 @@
 %define CONFIG_LIBOPENJPEG_ENCODER 0
 %define CONFIG_LIBOPUS_ENCODER 0
 %define CONFIG_LIBSCHROEDINGER_ENCODER 0
 %define CONFIG_LIBSHINE_ENCODER 0
 %define CONFIG_LIBSPEEX_ENCODER 0
 %define CONFIG_LIBTHEORA_ENCODER 0
 %define CONFIG_LIBTWOLAME_ENCODER 0
 %define CONFIG_LIBUTVIDEO_ENCODER 0
-%define CONFIG_LIBVO_AACENC_ENCODER 0
 %define CONFIG_LIBVO_AMRWBENC_ENCODER 0
 %define CONFIG_LIBVORBIS_ENCODER 0
 %define CONFIG_LIBVPX_VP8_ENCODER 0
 %define CONFIG_LIBVPX_VP9_ENCODER 0
 %define CONFIG_LIBWAVPACK_ENCODER 0
 %define CONFIG_LIBWEBP_ANIM_ENCODER 0
 %define CONFIG_LIBWEBP_ENCODER 0
 %define CONFIG_LIBX262_ENCODER 0
 %define CONFIG_LIBX264_ENCODER 0
 %define CONFIG_LIBX264RGB_ENCODER 0
 %define CONFIG_LIBX265_ENCODER 0
 %define CONFIG_LIBXAVS_ENCODER 0
 %define CONFIG_LIBXVID_ENCODER 0
-%define CONFIG_LIBAACPLUS_ENCODER 0
 %define CONFIG_LIBOPENH264_ENCODER 0
 %define CONFIG_H264_QSV_ENCODER 0
 %define CONFIG_NVENC_ENCODER 0
 %define CONFIG_NVENC_H264_ENCODER 0
 %define CONFIG_NVENC_HEVC_ENCODER 0
 %define CONFIG_HEVC_QSV_ENCODER 0
 %define CONFIG_LIBKVAZAAR_ENCODER 0
 %define CONFIG_MPEG2_QSV_ENCODER 0
 %define CONFIG_ACOMPRESSOR_FILTER 0
 %define CONFIG_ACROSSFADE_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
 %define CONFIG_AINTERLEAVE_FILTER 0
 %define CONFIG_ALIMITER_FILTER 0
 %define CONFIG_ALLPASS_FILTER 0
 %define CONFIG_AMERGE_FILTER 0
+%define CONFIG_AMETADATA_FILTER 0
 %define CONFIG_AMIX_FILTER 0
 %define CONFIG_ANEQUALIZER_FILTER 0
 %define CONFIG_ANULL_FILTER 0
 %define CONFIG_APAD_FILTER 0
 %define CONFIG_APERMS_FILTER 0
 %define CONFIG_APHASER_FILTER 0
 %define CONFIG_APULSATOR_FILTER 0
 %define CONFIG_AREALTIME_FILTER 0
@@ -1513,16 +1515,17 @@
 %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_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
 %define CONFIG_BANDREJECT_FILTER 0
 %define CONFIG_BASS_FILTER 0
 %define CONFIG_BIQUAD_FILTER 0
@@ -1576,16 +1579,17 @@
 %define CONFIG_BOXBLUR_FILTER 0
 %define CONFIG_CHROMAKEY_FILTER 0
 %define CONFIG_CODECVIEW_FILTER 0
 %define CONFIG_COLORBALANCE_FILTER 0
 %define CONFIG_COLORCHANNELMIXER_FILTER 0
 %define CONFIG_COLORKEY_FILTER 0
 %define CONFIG_COLORLEVELS_FILTER 0
 %define CONFIG_COLORMATRIX_FILTER 0
+%define CONFIG_CONVOLUTION_FILTER 0
 %define CONFIG_COPY_FILTER 0
 %define CONFIG_COVER_RECT_FILTER 0
 %define CONFIG_CROP_FILTER 0
 %define CONFIG_CROPDETECT_FILTER 0
 %define CONFIG_CURVES_FILTER 0
 %define CONFIG_DCTDNOIZ_FILTER 0
 %define CONFIG_DEBAND_FILTER 0
 %define CONFIG_DECIMATE_FILTER 0
@@ -1637,18 +1641,20 @@
 %define CONFIG_LENSCORRECTION_FILTER 0
 %define CONFIG_LUT3D_FILTER 0
 %define CONFIG_LUT_FILTER 0
 %define CONFIG_LUTRGB_FILTER 0
 %define CONFIG_LUTYUV_FILTER 0
 %define CONFIG_MASKEDMERGE_FILTER 0
 %define CONFIG_MCDEINT_FILTER 0
 %define CONFIG_MERGEPLANES_FILTER 0
+%define CONFIG_METADATA_FILTER 0
 %define CONFIG_MPDECIMATE_FILTER 0
 %define CONFIG_NEGATE_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
 %define CONFIG_PAD_FILTER 0
@@ -1687,18 +1693,20 @@
 %define CONFIG_SHUFFLEFRAMES_FILTER 0
 %define CONFIG_SHUFFLEPLANES_FILTER 0
 %define CONFIG_SIGNALSTATS_FILTER 0
 %define CONFIG_SMARTBLUR_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
 %define CONFIG_SWAPUV_FILTER 0
 %define CONFIG_TBLEND_FILTER 0
 %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
@@ -1729,26 +1737,28 @@
 %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_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_VAAPI_HWACCEL 0
 %define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_H264_D3D11VA_HWACCEL 0
 %define CONFIG_H264_DXVA2_HWACCEL 0
 %define CONFIG_H264_MMAL_HWACCEL 0
 %define CONFIG_H264_QSV_HWACCEL 0
@@ -1768,16 +1778,17 @@
 %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_MMAL_HWACCEL 0
 %define CONFIG_MPEG4_VAAPI_HWACCEL 0
 %define CONFIG_MPEG4_VDPAU_HWACCEL 0
 %define CONFIG_MPEG4_VIDEOTOOLBOX_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
@@ -1973,16 +1984,17 @@
 %define CONFIG_ADX_PARSER 0
 %define CONFIG_BMP_PARSER 0
 %define CONFIG_CAVSVIDEO_PARSER 0
 %define CONFIG_COOK_PARSER 0
 %define CONFIG_DCA_PARSER 0
 %define CONFIG_DIRAC_PARSER 0
 %define CONFIG_DNXHD_PARSER 0
 %define CONFIG_DPX_PARSER 0
+%define CONFIG_DVAUDIO_PARSER 0
 %define CONFIG_DVBSUB_PARSER 0
 %define CONFIG_DVDSUB_PARSER 0
 %define CONFIG_DVD_NAV_PARSER 0
 %define CONFIG_FLAC_PARSER 0
 %define CONFIG_G729_PARSER 0
 %define CONFIG_GSM_PARSER 0
 %define CONFIG_H261_PARSER 0
 %define CONFIG_H263_PARSER 0
--- a/media/ffvpx/config_darwin64.h
+++ b/media/ffvpx/config_darwin64.h
@@ -212,16 +212,17 @@
 #define HAVE_DXVA_H 0
 #define HAVE_ES2_GL_H 0
 #define HAVE_GSM_H 0
 #define HAVE_IO_H 0
 #define HAVE_MACH_MACH_TIME_H 1
 #define HAVE_MACHINE_IOCTL_BT848_H 0
 #define HAVE_MACHINE_IOCTL_METEOR_H 0
 #define HAVE_MALLOC_H 0
+#define HAVE_OPENCV2_CORE_CORE_C_H 0
 #define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
 #define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
 #define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
 #define HAVE_OPENGL_GL3_H 0
 #define HAVE_POLL_H 1
 #define HAVE_SNDIO_H 0
 #define HAVE_SOUNDCARD_H 0
 #define HAVE_SYS_MMAN_H 1
@@ -245,16 +246,17 @@
 #define HAVE_CBRTF 1
 #define HAVE_COPYSIGN 1
 #define HAVE_COSF 1
 #define HAVE_ERF 1
 #define HAVE_EXP2 1
 #define HAVE_EXP2F 1
 #define HAVE_EXPF 1
 #define HAVE_HYPOT 1
+#define HAVE_ISFINITE 1
 #define HAVE_ISINF 1
 #define HAVE_ISNAN 1
 #define HAVE_LDEXPF 1
 #define HAVE_LLRINT 1
 #define HAVE_LLRINTF 1
 #define HAVE_LOG2 1
 #define HAVE_LOG2F 1
 #define HAVE_LOG10F 1
@@ -330,19 +332,19 @@
 #define HAVE_ASM_MOD_Q 0
 #define HAVE_ATTRIBUTE_MAY_ALIAS 1
 #define HAVE_ATTRIBUTE_PACKED 1
 #define HAVE_EBP_AVAILABLE 1
 #define HAVE_EBX_AVAILABLE 1
 #define HAVE_GNU_AS 0
 #define HAVE_GNU_WINDRES 0
 #define HAVE_IBM_ASM 0
+#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 #define HAVE_INLINE_ASM_LABELS 1
 #define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
-#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 #define HAVE_PRAGMA_DEPRECATED 1
 #define HAVE_RSYNC_CONTIMEOUT 0
 #define HAVE_SYMVER_ASM_LABEL 1
 #define HAVE_SYMVER_GNU_ASM 0
 #define HAVE_VFP_ARGS 0
 #define HAVE_XFORM_ASM 0
 #define HAVE_XMM_CLOBBERS 1
 #define HAVE_CONDITION_VARIABLE_PTR 0
@@ -356,32 +358,32 @@
 #define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
 #define HAVE_STRUCT_SOCKADDR_IN6 1
 #define HAVE_STRUCT_SOCKADDR_SA_LEN 1
 #define HAVE_STRUCT_SOCKADDR_STORAGE 1
 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0
 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0
 #define HAVE_ATOMICS_NATIVE 1
 #define HAVE_DOS_PATHS 0
+#define HAVE_DXVA2_LIB 0
 #define HAVE_DXVA2API_COBJ 0
-#define HAVE_DXVA2_LIB 0
-#define HAVE_WINRT 0
 #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_PERL 1
 #define HAVE_POD2MAN 1
 #define HAVE_SDL 0
 #define HAVE_SECTION_DATA_REL_RO 0
 #define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
+#define HAVE_WINRT 0
 #define HAVE_XLIB 0
 #define CONFIG_BSFS 0
 #define CONFIG_DECODERS 1
 #define CONFIG_ENCODERS 0
 #define CONFIG_HWACCELS 0
 #define CONFIG_PARSERS 1
 #define CONFIG_INDEVS 0
 #define CONFIG_OUTDEVS 0
@@ -416,17 +418,16 @@
 #define CONFIG_CRYSTALHD 0
 #define CONFIG_DECKLINK 0
 #define CONFIG_FREI0R 0
 #define CONFIG_GCRYPT 0
 #define CONFIG_GMP 0
 #define CONFIG_GNUTLS 0
 #define CONFIG_ICONV 0
 #define CONFIG_LADSPA 0
-#define CONFIG_LIBAACPLUS 0
 #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_LIBDCADEC 0
@@ -447,33 +448,31 @@
 #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_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
-#define CONFIG_LIBQUVI 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
 #define CONFIG_LIBSOXR 0
 #define CONFIG_LIBSPEEX 0
 #define CONFIG_LIBSSH 0
 #define CONFIG_LIBTESSERACT 0
 #define CONFIG_LIBTHEORA 0
 #define CONFIG_LIBTWOLAME 0
 #define CONFIG_LIBUTVIDEO 0
 #define CONFIG_LIBV4L2 0
 #define CONFIG_LIBVIDSTAB 0
-#define CONFIG_LIBVO_AACENC 0
 #define CONFIG_LIBVO_AMRWBENC 0
 #define CONFIG_LIBVORBIS 0
 #define CONFIG_LIBVPX 0
 #define CONFIG_LIBWAVPACK 0
 #define CONFIG_LIBWEBP 0
 #define CONFIG_LIBX264 0
 #define CONFIG_LIBX265 0
 #define CONFIG_LIBXAVS 0
@@ -583,18 +582,18 @@
 #define CONFIG_HUFFYUVDSP 0
 #define CONFIG_HUFFYUVENCDSP 0
 #define CONFIG_IDCTDSP 0
 #define CONFIG_IIRFILTER 0
 #define CONFIG_IMDCT15 0
 #define CONFIG_INTRAX8 0
 #define CONFIG_IVIDSP 0
 #define CONFIG_JPEGTABLES 0
+#define CONFIG_LGPLV3 0
 #define CONFIG_LIBX262 0
-#define CONFIG_LGPLV3 0
 #define CONFIG_LLAUDDSP 0
 #define CONFIG_LLVIDDSP 0
 #define CONFIG_LPC 0
 #define CONFIG_LZF 0
 #define CONFIG_ME_CMP 0
 #define CONFIG_MPEG_ER 0
 #define CONFIG_MPEGAUDIO 0
 #define CONFIG_MPEGAUDIODSP 0
@@ -659,29 +658,31 @@
 #define CONFIG_BINK_DECODER 0
 #define CONFIG_BMP_DECODER 0
 #define CONFIG_BMV_VIDEO_DECODER 0
 #define CONFIG_BRENDER_PIX_DECODER 0
 #define CONFIG_C93_DECODER 0
 #define CONFIG_CAVS_DECODER 0
 #define CONFIG_CDGRAPHICS_DECODER 0
 #define CONFIG_CDXL_DECODER 0
+#define CONFIG_CFHD_DECODER 0
 #define CONFIG_CINEPAK_DECODER 0
 #define CONFIG_CLJR_DECODER 0
 #define CONFIG_CLLC_DECODER 0
 #define CONFIG_COMFORTNOISE_DECODER 0
 #define CONFIG_CPIA_DECODER 0
 #define CONFIG_CSCD_DECODER 0
 #define CONFIG_CYUV_DECODER 0
 #define CONFIG_DDS_DECODER 0
 #define CONFIG_DFA_DECODER 0
 #define CONFIG_DIRAC_DECODER 0
 #define CONFIG_DNXHD_DECODER 0
 #define CONFIG_DPX_DECODER 0
 #define CONFIG_DSICINVIDEO_DECODER 0
+#define CONFIG_DVAUDIO_DECODER 0
 #define CONFIG_DVVIDEO_DECODER 0
 #define CONFIG_DXA_DECODER 0
 #define CONFIG_DXTORY_DECODER 0
 #define CONFIG_DXV_DECODER 0
 #define CONFIG_EACMV_DECODER 0
 #define CONFIG_EAMAD_DECODER 0
 #define CONFIG_EATGQ_DECODER 0
 #define CONFIG_EATGV_DECODER 0
@@ -741,16 +742,17 @@
 #define CONFIG_MJPEGB_DECODER 0
 #define CONFIG_MMVIDEO_DECODER 0
 #define CONFIG_MOTIONPIXELS_DECODER 0
 #define CONFIG_MPEG_XVMC_DECODER 0
 #define CONFIG_MPEG1VIDEO_DECODER 0
 #define CONFIG_MPEG2VIDEO_DECODER 0
 #define CONFIG_MPEG4_DECODER 0
 #define CONFIG_MPEG4_CRYSTALHD_DECODER 0
+#define CONFIG_MPEG4_MMAL_DECODER 0
 #define CONFIG_MPEG4_VDPAU_DECODER 0
 #define CONFIG_MPEGVIDEO_DECODER 0
 #define CONFIG_MPEG_VDPAU_DECODER 0
 #define CONFIG_MPEG1_VDPAU_DECODER 0
 #define CONFIG_MPEG2_MMAL_DECODER 0
 #define CONFIG_MPEG2_CRYSTALHD_DECODER 0
 #define CONFIG_MPEG2_QSV_DECODER 0
 #define CONFIG_MSA1_DECODER 0
@@ -1317,17 +1319,16 @@
 #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_LIBQUVI_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
@@ -1385,16 +1386,17 @@
 #define CONFIG_SVQ1_ENCODER 0
 #define CONFIG_TARGA_ENCODER 0
 #define CONFIG_TIFF_ENCODER 0
 #define CONFIG_UTVIDEO_ENCODER 0
 #define CONFIG_V210_ENCODER 0
 #define CONFIG_V308_ENCODER 0
 #define CONFIG_V408_ENCODER 0
 #define CONFIG_V410_ENCODER 0
+#define CONFIG_VC2_ENCODER 0
 #define CONFIG_WRAPPED_AVFRAME_ENCODER 0
 #define CONFIG_WMV1_ENCODER 0
 #define CONFIG_WMV2_ENCODER 0
 #define CONFIG_XBM_ENCODER 0
 #define CONFIG_XFACE_ENCODER 0
 #define CONFIG_XWD_ENCODER 0
 #define CONFIG_Y41P_ENCODER 0
 #define CONFIG_YUV4_ENCODER 0
@@ -1474,52 +1476,52 @@
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
 #define CONFIG_LIBSCHROEDINGER_ENCODER 0
 #define CONFIG_LIBSHINE_ENCODER 0
 #define CONFIG_LIBSPEEX_ENCODER 0
 #define CONFIG_LIBTHEORA_ENCODER 0
 #define CONFIG_LIBTWOLAME_ENCODER 0
 #define CONFIG_LIBUTVIDEO_ENCODER 0
-#define CONFIG_LIBVO_AACENC_ENCODER 0
 #define CONFIG_LIBVO_AMRWBENC_ENCODER 0
 #define CONFIG_LIBVORBIS_ENCODER 0
 #define CONFIG_LIBVPX_VP8_ENCODER 0
 #define CONFIG_LIBVPX_VP9_ENCODER 0
 #define CONFIG_LIBWAVPACK_ENCODER 0
 #define CONFIG_LIBWEBP_ANIM_ENCODER 0
 #define CONFIG_LIBWEBP_ENCODER 0
 #define CONFIG_LIBX262_ENCODER 0
 #define CONFIG_LIBX264_ENCODER 0
 #define CONFIG_LIBX264RGB_ENCODER 0
 #define CONFIG_LIBX265_ENCODER 0
 #define CONFIG_LIBXAVS_ENCODER 0
 #define CONFIG_LIBXVID_ENCODER 0
-#define CONFIG_LIBAACPLUS_ENCODER 0
 #define CONFIG_LIBOPENH264_ENCODER 0
 #define CONFIG_H264_QSV_ENCODER 0
 #define CONFIG_NVENC_ENCODER 0
 #define CONFIG_NVENC_H264_ENCODER 0
 #define CONFIG_NVENC_HEVC_ENCODER 0
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_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
 #define CONFIG_AINTERLEAVE_FILTER 0
 #define CONFIG_ALIMITER_FILTER 0
 #define CONFIG_ALLPASS_FILTER 0
 #define CONFIG_AMERGE_FILTER 0
+#define CONFIG_AMETADATA_FILTER 0
 #define CONFIG_AMIX_FILTER 0
 #define CONFIG_ANEQUALIZER_FILTER 0
 #define CONFIG_ANULL_FILTER 0
 #define CONFIG_APAD_FILTER 0
 #define CONFIG_APERMS_FILTER 0
 #define CONFIG_APHASER_FILTER 0
 #define CONFIG_APULSATOR_FILTER 0
 #define CONFIG_AREALTIME_FILTER 0
@@ -1529,16 +1531,17 @@
 #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_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
 #define CONFIG_BANDREJECT_FILTER 0
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
@@ -1592,16 +1595,17 @@
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
 #define CONFIG_COLORBALANCE_FILTER 0
 #define CONFIG_COLORCHANNELMIXER_FILTER 0
 #define CONFIG_COLORKEY_FILTER 0
 #define CONFIG_COLORLEVELS_FILTER 0
 #define CONFIG_COLORMATRIX_FILTER 0
+#define CONFIG_CONVOLUTION_FILTER 0
 #define CONFIG_COPY_FILTER 0
 #define CONFIG_COVER_RECT_FILTER 0
 #define CONFIG_CROP_FILTER 0
 #define CONFIG_CROPDETECT_FILTER 0
 #define CONFIG_CURVES_FILTER 0
 #define CONFIG_DCTDNOIZ_FILTER 0
 #define CONFIG_DEBAND_FILTER 0
 #define CONFIG_DECIMATE_FILTER 0
@@ -1653,18 +1657,20 @@
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
 #define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_METADATA_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_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
 #define CONFIG_PAD_FILTER 0
@@ -1703,18 +1709,20 @@
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_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
 #define CONFIG_SWAPUV_FILTER 0
 #define CONFIG_TBLEND_FILTER 0
 #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
@@ -1745,26 +1753,28 @@
 #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_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_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
@@ -1784,16 +1794,17 @@
 #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_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_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
@@ -1989,16 +2000,17 @@
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
 #define CONFIG_CAVSVIDEO_PARSER 0
 #define CONFIG_COOK_PARSER 0
 #define CONFIG_DCA_PARSER 0
 #define CONFIG_DIRAC_PARSER 0
 #define CONFIG_DNXHD_PARSER 0
 #define CONFIG_DPX_PARSER 0
+#define CONFIG_DVAUDIO_PARSER 0
 #define CONFIG_DVBSUB_PARSER 0
 #define CONFIG_DVDSUB_PARSER 0
 #define CONFIG_DVD_NAV_PARSER 0
 #define CONFIG_FLAC_PARSER 0
 #define CONFIG_G729_PARSER 0
 #define CONFIG_GSM_PARSER 0
 #define CONFIG_H261_PARSER 0
 #define CONFIG_H263_PARSER 0
--- a/media/ffvpx/config_unix32.h
+++ b/media/ffvpx/config_unix32.h
@@ -1,17 +1,17 @@
 /* Automatically generated by configure - do not modify! */
 #ifndef FFMPEG_CONFIG_H
 #define FFMPEG_CONFIG_H
-#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 --disable-asm --disable-yasm --disable-avx2 --cc='gcc -m32'"
+#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.8 (Ubuntu 4.8.2-19ubuntu1)"
+#define CC_IDENT "gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)"
 #define av_restrict restrict
 #define EXTERN_PREFIX ""
 #define EXTERN_ASM 
 #define BUILDSUF ""
 #define SLIBSUF ".so"
 #define HAVE_MMX2 HAVE_MMXEXT
 #define SWS_MAX_FILTER_SIZE 256
 #define ARCH_AARCH64 0
@@ -174,17 +174,17 @@
 #define HAVE_LOCAL_ALIGNED_8 1
 #define HAVE_LOCAL_ALIGNED_16 1
 #define HAVE_LOCAL_ALIGNED_32 1
 #define HAVE_SIMD_ALIGN_16 0
 #define HAVE_ATOMICS_GCC 1
 #define HAVE_ATOMICS_SUNCC 0
 #define HAVE_ATOMICS_WIN32 0
 #define HAVE_ATOMIC_CAS_PTR 0
-#define HAVE_ATOMIC_COMPARE_EXCHANGE 1
+#define HAVE_ATOMIC_COMPARE_EXCHANGE 0
 #define HAVE_MACHINE_RW_BARRIER 0
 #define HAVE_MEMORYBARRIER 0
 #define HAVE_MM_EMPTY 0
 #define HAVE_RDTSC 0
 #define HAVE_SARESTART 1
 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
 #define HAVE_CABS 1
 #define HAVE_CEXP 1
@@ -212,16 +212,17 @@
 #define HAVE_DXVA_H 0
 #define HAVE_ES2_GL_H 0
 #define HAVE_GSM_H 0
 #define HAVE_IO_H 0
 #define HAVE_MACH_MACH_TIME_H 0
 #define HAVE_MACHINE_IOCTL_BT848_H 0
 #define HAVE_MACHINE_IOCTL_METEOR_H 0
 #define HAVE_MALLOC_H 1
+#define HAVE_OPENCV2_CORE_CORE_C_H 0
 #define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
 #define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
 #define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
 #define HAVE_OPENGL_GL3_H 0
 #define HAVE_POLL_H 1
 #define HAVE_SNDIO_H 0
 #define HAVE_SOUNDCARD_H 0
 #define HAVE_SYS_MMAN_H 1
@@ -245,16 +246,17 @@
 #define HAVE_CBRTF 1
 #define HAVE_COPYSIGN 1
 #define HAVE_COSF 1
 #define HAVE_ERF 1
 #define HAVE_EXP2 1
 #define HAVE_EXP2F 1
 #define HAVE_EXPF 1
 #define HAVE_HYPOT 1
+#define HAVE_ISFINITE 1
 #define HAVE_ISINF 1
 #define HAVE_ISNAN 1
 #define HAVE_LDEXPF 1
 #define HAVE_LLRINT 1
 #define HAVE_LLRINTF 1
 #define HAVE_LOG2 1
 #define HAVE_LOG2F 1
 #define HAVE_LOG10F 1
@@ -330,19 +332,19 @@
 #define HAVE_ASM_MOD_Q 0
 #define HAVE_ATTRIBUTE_MAY_ALIAS 1
 #define HAVE_ATTRIBUTE_PACKED 1
 #define HAVE_EBP_AVAILABLE 1
 #define HAVE_EBX_AVAILABLE 1
 #define HAVE_GNU_AS 0
 #define HAVE_GNU_WINDRES 0
 #define HAVE_IBM_ASM 0
+#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 #define HAVE_INLINE_ASM_LABELS 1
 #define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
-#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 #define HAVE_PRAGMA_DEPRECATED 1
 #define HAVE_RSYNC_CONTIMEOUT 1
 #define HAVE_SYMVER_ASM_LABEL 0
 #define HAVE_SYMVER_GNU_ASM 1
 #define HAVE_VFP_ARGS 0
 #define HAVE_XFORM_ASM 0
 #define HAVE_XMM_CLOBBERS 0
 #define HAVE_CONDITION_VARIABLE_PTR 0
@@ -356,46 +358,46 @@
 #define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
 #define HAVE_STRUCT_SOCKADDR_IN6 1
 #define HAVE_STRUCT_SOCKADDR_SA_LEN 0
 #define HAVE_STRUCT_SOCKADDR_STORAGE 1
 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1
 #define HAVE_ATOMICS_NATIVE 1
 #define HAVE_DOS_PATHS 0
+#define HAVE_DXVA2_LIB 0
 #define HAVE_DXVA2API_COBJ 0
-#define HAVE_DXVA2_LIB 0
-#define HAVE_WINRT 0
 #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_PERL 1
 #define HAVE_POD2MAN 1
 #define HAVE_SDL 0
 #define HAVE_SECTION_DATA_REL_RO 1
-#define HAVE_TEXI2HTML 1
+#define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
+#define HAVE_WINRT 0
 #define HAVE_XLIB 0
 #define CONFIG_BSFS 0
 #define CONFIG_DECODERS 1
 #define CONFIG_ENCODERS 0
 #define CONFIG_HWACCELS 0
 #define CONFIG_PARSERS 1
 #define CONFIG_INDEVS 0
 #define CONFIG_OUTDEVS 0
 #define CONFIG_FILTERS 0
 #define CONFIG_DEMUXERS 0
 #define CONFIG_MUXERS 0
 #define CONFIG_PROTOCOLS 0
 #define CONFIG_DOC 0
-#define CONFIG_HTMLPAGES 1
+#define CONFIG_HTMLPAGES 0
 #define CONFIG_MANPAGES 1
 #define CONFIG_PODPAGES 1
 #define CONFIG_TXTPAGES 0
 #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
@@ -416,17 +418,16 @@
 #define CONFIG_CRYSTALHD 0
 #define CONFIG_DECKLINK 0
 #define CONFIG_FREI0R 0
 #define CONFIG_GCRYPT 0
 #define CONFIG_GMP 0
 #define CONFIG_GNUTLS 0
 #define CONFIG_ICONV 0
 #define CONFIG_LADSPA 0
-#define CONFIG_LIBAACPLUS 0
 #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_LIBDCADEC 0
@@ -447,33 +448,31 @@
 #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_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
-#define CONFIG_LIBQUVI 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
 #define CONFIG_LIBSOXR 0
 #define CONFIG_LIBSPEEX 0
 #define CONFIG_LIBSSH 0
 #define CONFIG_LIBTESSERACT 0
 #define CONFIG_LIBTHEORA 0
 #define CONFIG_LIBTWOLAME 0
 #define CONFIG_LIBUTVIDEO 0
 #define CONFIG_LIBV4L2 0
 #define CONFIG_LIBVIDSTAB 0
-#define CONFIG_LIBVO_AACENC 0
 #define CONFIG_LIBVO_AMRWBENC 0
 #define CONFIG_LIBVORBIS 0
 #define CONFIG_LIBVPX 0
 #define CONFIG_LIBWAVPACK 0
 #define CONFIG_LIBWEBP 0
 #define CONFIG_LIBX264 0
 #define CONFIG_LIBX265 0
 #define CONFIG_LIBXAVS 0
@@ -509,17 +508,17 @@
 #define CONFIG_STATIC 0
 #define CONFIG_SWSCALE_ALPHA 1
 #define CONFIG_D3D11VA 0
 #define CONFIG_DXVA2 0
 #define CONFIG_VAAPI 0
 #define CONFIG_VDA 0
 #define CONFIG_VDPAU 0
 #define CONFIG_VIDEOTOOLBOX 0
-#define CONFIG_XVMC 1
+#define CONFIG_XVMC 0
 #define CONFIG_GPL 0
 #define CONFIG_NONFREE 0
 #define CONFIG_VERSION3 0
 #define CONFIG_AVCODEC 1
 #define CONFIG_AVDEVICE 0
 #define CONFIG_AVFILTER 0
 #define CONFIG_AVFORMAT 0
 #define CONFIG_AVRESAMPLE 0
@@ -583,18 +582,18 @@
 #define CONFIG_HUFFYUVDSP 0
 #define CONFIG_HUFFYUVENCDSP 0
 #define CONFIG_IDCTDSP 0
 #define CONFIG_IIRFILTER 0
 #define CONFIG_IMDCT15 0
 #define CONFIG_INTRAX8 0
 #define CONFIG_IVIDSP 0
 #define CONFIG_JPEGTABLES 0
+#define CONFIG_LGPLV3 0
 #define CONFIG_LIBX262 0
-#define CONFIG_LGPLV3 0
 #define CONFIG_LLAUDDSP 0
 #define CONFIG_LLVIDDSP 0
 #define CONFIG_LPC 0
 #define CONFIG_LZF 0
 #define CONFIG_ME_CMP 0
 #define CONFIG_MPEG_ER 0
 #define CONFIG_MPEGAUDIO 0
 #define CONFIG_MPEGAUDIODSP 0
@@ -659,29 +658,31 @@
 #define CONFIG_BINK_DECODER 0
 #define CONFIG_BMP_DECODER 0
 #define CONFIG_BMV_VIDEO_DECODER 0
 #define CONFIG_BRENDER_PIX_DECODER 0
 #define CONFIG_C93_DECODER 0
 #define CONFIG_CAVS_DECODER 0
 #define CONFIG_CDGRAPHICS_DECODER 0
 #define CONFIG_CDXL_DECODER 0
+#define CONFIG_CFHD_DECODER 0
 #define CONFIG_CINEPAK_DECODER 0
 #define CONFIG_CLJR_DECODER 0
 #define CONFIG_CLLC_DECODER 0
 #define CONFIG_COMFORTNOISE_DECODER 0
 #define CONFIG_CPIA_DECODER 0
 #define CONFIG_CSCD_DECODER 0
 #define CONFIG_CYUV_DECODER 0
 #define CONFIG_DDS_DECODER 0
 #define CONFIG_DFA_DECODER 0
 #define CONFIG_DIRAC_DECODER 0
 #define CONFIG_DNXHD_DECODER 0
 #define CONFIG_DPX_DECODER 0
 #define CONFIG_DSICINVIDEO_DECODER 0
+#define CONFIG_DVAUDIO_DECODER 0
 #define CONFIG_DVVIDEO_DECODER 0
 #define CONFIG_DXA_DECODER 0
 #define CONFIG_DXTORY_DECODER 0
 #define CONFIG_DXV_DECODER 0
 #define CONFIG_EACMV_DECODER 0
 #define CONFIG_EAMAD_DECODER 0
 #define CONFIG_EATGQ_DECODER 0
 #define CONFIG_EATGV_DECODER 0
@@ -741,16 +742,17 @@
 #define CONFIG_MJPEGB_DECODER 0
 #define CONFIG_MMVIDEO_DECODER 0
 #define CONFIG_MOTIONPIXELS_DECODER 0
 #define CONFIG_MPEG_XVMC_DECODER 0
 #define CONFIG_MPEG1VIDEO_DECODER 0
 #define CONFIG_MPEG2VIDEO_DECODER 0
 #define CONFIG_MPEG4_DECODER 0
 #define CONFIG_MPEG4_CRYSTALHD_DECODER 0
+#define CONFIG_MPEG4_MMAL_DECODER 0
 #define CONFIG_MPEG4_VDPAU_DECODER 0
 #define CONFIG_MPEGVIDEO_DECODER 0
 #define CONFIG_MPEG_VDPAU_DECODER 0
 #define CONFIG_MPEG1_VDPAU_DECODER 0
 #define CONFIG_MPEG2_MMAL_DECODER 0
 #define CONFIG_MPEG2_CRYSTALHD_DECODER 0
 #define CONFIG_MPEG2_QSV_DECODER 0
 #define CONFIG_MSA1_DECODER 0
@@ -1317,17 +1319,16 @@
 #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_LIBQUVI_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
@@ -1385,16 +1386,17 @@
 #define CONFIG_SVQ1_ENCODER 0
 #define CONFIG_TARGA_ENCODER 0
 #define CONFIG_TIFF_ENCODER 0
 #define CONFIG_UTVIDEO_ENCODER 0
 #define CONFIG_V210_ENCODER 0
 #define CONFIG_V308_ENCODER 0
 #define CONFIG_V408_ENCODER 0
 #define CONFIG_V410_ENCODER 0
+#define CONFIG_VC2_ENCODER 0
 #define CONFIG_WRAPPED_AVFRAME_ENCODER 0
 #define CONFIG_WMV1_ENCODER 0
 #define CONFIG_WMV2_ENCODER 0
 #define CONFIG_XBM_ENCODER 0
 #define CONFIG_XFACE_ENCODER 0
 #define CONFIG_XWD_ENCODER 0
 #define CONFIG_Y41P_ENCODER 0
 #define CONFIG_YUV4_ENCODER 0
@@ -1474,52 +1476,52 @@
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
 #define CONFIG_LIBSCHROEDINGER_ENCODER 0
 #define CONFIG_LIBSHINE_ENCODER 0
 #define CONFIG_LIBSPEEX_ENCODER 0
 #define CONFIG_LIBTHEORA_ENCODER 0
 #define CONFIG_LIBTWOLAME_ENCODER 0
 #define CONFIG_LIBUTVIDEO_ENCODER 0
-#define CONFIG_LIBVO_AACENC_ENCODER 0
 #define CONFIG_LIBVO_AMRWBENC_ENCODER 0
 #define CONFIG_LIBVORBIS_ENCODER 0
 #define CONFIG_LIBVPX_VP8_ENCODER 0
 #define CONFIG_LIBVPX_VP9_ENCODER 0
 #define CONFIG_LIBWAVPACK_ENCODER 0
 #define CONFIG_LIBWEBP_ANIM_ENCODER 0
 #define CONFIG_LIBWEBP_ENCODER 0
 #define CONFIG_LIBX262_ENCODER 0
 #define CONFIG_LIBX264_ENCODER 0
 #define CONFIG_LIBX264RGB_ENCODER 0
 #define CONFIG_LIBX265_ENCODER 0
 #define CONFIG_LIBXAVS_ENCODER 0
 #define CONFIG_LIBXVID_ENCODER 0
-#define CONFIG_LIBAACPLUS_ENCODER 0
 #define CONFIG_LIBOPENH264_ENCODER 0
 #define CONFIG_H264_QSV_ENCODER 0
 #define CONFIG_NVENC_ENCODER 0
 #define CONFIG_NVENC_H264_ENCODER 0
 #define CONFIG_NVENC_HEVC_ENCODER 0
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_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
 #define CONFIG_AINTERLEAVE_FILTER 0
 #define CONFIG_ALIMITER_FILTER 0
 #define CONFIG_ALLPASS_FILTER 0
 #define CONFIG_AMERGE_FILTER 0
+#define CONFIG_AMETADATA_FILTER 0
 #define CONFIG_AMIX_FILTER 0
 #define CONFIG_ANEQUALIZER_FILTER 0
 #define CONFIG_ANULL_FILTER 0
 #define CONFIG_APAD_FILTER 0
 #define CONFIG_APERMS_FILTER 0
 #define CONFIG_APHASER_FILTER 0
 #define CONFIG_APULSATOR_FILTER 0
 #define CONFIG_AREALTIME_FILTER 0
@@ -1529,16 +1531,17 @@
 #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_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
 #define CONFIG_BANDREJECT_FILTER 0
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
@@ -1592,16 +1595,17 @@
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
 #define CONFIG_COLORBALANCE_FILTER 0
 #define CONFIG_COLORCHANNELMIXER_FILTER 0
 #define CONFIG_COLORKEY_FILTER 0
 #define CONFIG_COLORLEVELS_FILTER 0
 #define CONFIG_COLORMATRIX_FILTER 0
+#define CONFIG_CONVOLUTION_FILTER 0
 #define CONFIG_COPY_FILTER 0
 #define CONFIG_COVER_RECT_FILTER 0
 #define CONFIG_CROP_FILTER 0
 #define CONFIG_CROPDETECT_FILTER 0
 #define CONFIG_CURVES_FILTER 0
 #define CONFIG_DCTDNOIZ_FILTER 0
 #define CONFIG_DEBAND_FILTER 0
 #define CONFIG_DECIMATE_FILTER 0
@@ -1653,18 +1657,20 @@
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
 #define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_METADATA_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_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
 #define CONFIG_PAD_FILTER 0
@@ -1703,18 +1709,20 @@
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_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
 #define CONFIG_SWAPUV_FILTER 0
 #define CONFIG_TBLEND_FILTER 0
 #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
@@ -1745,26 +1753,28 @@
 #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_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_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
@@ -1784,16 +1794,17 @@
 #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_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_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
@@ -1989,16 +2000,17 @@
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
 #define CONFIG_CAVSVIDEO_PARSER 0
 #define CONFIG_COOK_PARSER 0
 #define CONFIG_DCA_PARSER 0
 #define CONFIG_DIRAC_PARSER 0
 #define CONFIG_DNXHD_PARSER 0
 #define CONFIG_DPX_PARSER 0
+#define CONFIG_DVAUDIO_PARSER 0
 #define CONFIG_DVBSUB_PARSER 0
 #define CONFIG_DVDSUB_PARSER 0
 #define CONFIG_DVD_NAV_PARSER 0
 #define CONFIG_FLAC_PARSER 0
 #define CONFIG_G729_PARSER 0
 #define CONFIG_GSM_PARSER 0
 #define CONFIG_H261_PARSER 0
 #define CONFIG_H263_PARSER 0
--- a/media/ffvpx/config_unix64.asm
+++ b/media/ffvpx/config_unix64.asm
@@ -158,17 +158,17 @@
 %define HAVE_LOCAL_ALIGNED_8 1
 %define HAVE_LOCAL_ALIGNED_16 1
 %define HAVE_LOCAL_ALIGNED_32 1
 %define HAVE_SIMD_ALIGN_16 1
 %define HAVE_ATOMICS_GCC 1
 %define HAVE_ATOMICS_SUNCC 0
 %define HAVE_ATOMICS_WIN32 0
 %define HAVE_ATOMIC_CAS_PTR 0
-%define HAVE_ATOMIC_COMPARE_EXCHANGE 1
+%define HAVE_ATOMIC_COMPARE_EXCHANGE 0
 %define HAVE_MACHINE_RW_BARRIER 0
 %define HAVE_MEMORYBARRIER 0
 %define HAVE_MM_EMPTY 1
 %define HAVE_RDTSC 0
 %define HAVE_SARESTART 1
 %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
 %define HAVE_CABS 1
 %define HAVE_CEXP 1
@@ -196,16 +196,17 @@
 %define HAVE_DXVA_H 0
 %define HAVE_ES2_GL_H 0
 %define HAVE_GSM_H 0
 %define HAVE_IO_H 0
 %define HAVE_MACH_MACH_TIME_H 0
 %define HAVE_MACHINE_IOCTL_BT848_H 0
 %define HAVE_MACHINE_IOCTL_METEOR_H 0
 %define HAVE_MALLOC_H 1
+%define HAVE_OPENCV2_CORE_CORE_C_H 0
 %define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
 %define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
 %define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
 %define HAVE_OPENGL_GL3_H 0
 %define HAVE_POLL_H 1
 %define HAVE_SNDIO_H 0
 %define HAVE_SOUNDCARD_H 0
 %define HAVE_SYS_MMAN_H 1
@@ -229,16 +230,17 @@
 %define HAVE_CBRTF 1
 %define HAVE_COPYSIGN 1
 %define HAVE_COSF 1
 %define HAVE_ERF 1
 %define HAVE_EXP2 1
 %define HAVE_EXP2F 1
 %define HAVE_EXPF 1
 %define HAVE_HYPOT 1
+%define HAVE_ISFINITE 1
 %define HAVE_ISINF 1
 %define HAVE_ISNAN 1
 %define HAVE_LDEXPF 1
 %define HAVE_LLRINT 1
 %define HAVE_LLRINTF 1
 %define HAVE_LOG2 1
 %define HAVE_LOG2F 1
 %define HAVE_LOG10F 1
@@ -295,17 +297,17 @@
 %define HAVE_SCHED_GETAFFINITY 1
 %define HAVE_SETCONSOLETEXTATTRIBUTE 0
 %define HAVE_SETCONSOLECTRLHANDLER 0
 %define HAVE_SETMODE 0
 %define HAVE_SETRLIMIT 1
 %define HAVE_SLEEP 0
 %define HAVE_STRERROR_R 1
 %define HAVE_SYSCONF 1
-%define HAVE_SYSCTL 0
+%define HAVE_SYSCTL 1
 %define HAVE_USLEEP 1
 %define HAVE_UTGETOSTYPEFROMSTRING 0
 %define HAVE_VIRTUALALLOC 0
 %define HAVE_WGLGETPROCADDRESS 0
 %define HAVE_PTHREADS 1
 %define HAVE_OS2THREADS 0
 %define HAVE_W32THREADS 0
 %define HAVE_AS_DN_DIRECTIVE 0
@@ -314,19 +316,19 @@
 %define HAVE_ASM_MOD_Q 0
 %define HAVE_ATTRIBUTE_MAY_ALIAS 1
 %define HAVE_ATTRIBUTE_PACKED 1
 %define HAVE_EBP_AVAILABLE 1
 %define HAVE_EBX_AVAILABLE 1
 %define HAVE_GNU_AS 0
 %define HAVE_GNU_WINDRES 0
 %define HAVE_IBM_ASM 0
+%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 %define HAVE_INLINE_ASM_LABELS 1
 %define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
-%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 %define HAVE_PRAGMA_DEPRECATED 1
 %define HAVE_RSYNC_CONTIMEOUT 1
 %define HAVE_SYMVER_ASM_LABEL 0
 %define HAVE_SYMVER_GNU_ASM 1
 %define HAVE_VFP_ARGS 0
 %define HAVE_XFORM_ASM 0
 %define HAVE_XMM_CLOBBERS 1
 %define HAVE_CONDITION_VARIABLE_PTR 0
@@ -340,46 +342,46 @@
 %define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
 %define HAVE_STRUCT_SOCKADDR_IN6 1
 %define HAVE_STRUCT_SOCKADDR_SA_LEN 0
 %define HAVE_STRUCT_SOCKADDR_STORAGE 1
 %define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
 %define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1
 %define HAVE_ATOMICS_NATIVE 1
 %define HAVE_DOS_PATHS 0
+%define HAVE_DXVA2_LIB 0
 %define HAVE_DXVA2API_COBJ 0
-%define HAVE_DXVA2_LIB 0
-%define HAVE_WINRT 0
 %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_PERL 1
 %define HAVE_POD2MAN 1
 %define HAVE_SDL 0
 %define HAVE_SECTION_DATA_REL_RO 1
-%define HAVE_TEXI2HTML 1
+%define HAVE_TEXI2HTML 0
 %define HAVE_THREADS 1
 %define HAVE_VAAPI_X11 0
 %define HAVE_VDPAU_X11 0
+%define HAVE_WINRT 0
 %define HAVE_XLIB 1
 %define CONFIG_BSFS 0
 %define CONFIG_DECODERS 1
 %define CONFIG_ENCODERS 0
 %define CONFIG_HWACCELS 0
 %define CONFIG_PARSERS 1
 %define CONFIG_INDEVS 0
 %define CONFIG_OUTDEVS 0
 %define CONFIG_FILTERS 0
 %define CONFIG_DEMUXERS 0
 %define CONFIG_MUXERS 0
 %define CONFIG_PROTOCOLS 0
 %define CONFIG_DOC 0
-%define CONFIG_HTMLPAGES 1
+%define CONFIG_HTMLPAGES 0
 %define CONFIG_MANPAGES 1
 %define CONFIG_PODPAGES 1
 %define CONFIG_TXTPAGES 0
 %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
@@ -400,17 +402,16 @@
 %define CONFIG_CRYSTALHD 0
 %define CONFIG_DECKLINK 0
 %define CONFIG_FREI0R 0
 %define CONFIG_GCRYPT 0
 %define CONFIG_GMP 0
 %define CONFIG_GNUTLS 0
 %define CONFIG_ICONV 0
 %define CONFIG_LADSPA 0
-%define CONFIG_LIBAACPLUS 0
 %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_LIBDCADEC 0
@@ -431,33 +432,31 @@
 %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_LIBOPUS 0
 %define CONFIG_LIBPULSE 0
-%define CONFIG_LIBQUVI 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
 %define CONFIG_LIBSOXR 0
 %define CONFIG_LIBSPEEX 0
 %define CONFIG_LIBSSH 0
 %define CONFIG_LIBTESSERACT 0
 %define CONFIG_LIBTHEORA 0
 %define CONFIG_LIBTWOLAME 0
 %define CONFIG_LIBUTVIDEO 0
 %define CONFIG_LIBV4L2 0
 %define CONFIG_LIBVIDSTAB 0
-%define CONFIG_LIBVO_AACENC 0
 %define CONFIG_LIBVO_AMRWBENC 0
 %define CONFIG_LIBVORBIS 0
 %define CONFIG_LIBVPX 0
 %define CONFIG_LIBWAVPACK 0
 %define CONFIG_LIBWEBP 0
 %define CONFIG_LIBX264 0
 %define CONFIG_LIBX265 0
 %define CONFIG_LIBXAVS 0
@@ -493,17 +492,17 @@
 %define CONFIG_STATIC 0
 %define CONFIG_SWSCALE_ALPHA 1
 %define CONFIG_D3D11VA 0
 %define CONFIG_DXVA2 0
 %define CONFIG_VAAPI 0
 %define CONFIG_VDA 0
 %define CONFIG_VDPAU 0
 %define CONFIG_VIDEOTOOLBOX 0
-%define CONFIG_XVMC 1
+%define CONFIG_XVMC 0
 %define CONFIG_GPL 0
 %define CONFIG_NONFREE 0
 %define CONFIG_VERSION3 0
 %define CONFIG_AVCODEC 1
 %define CONFIG_AVDEVICE 0
 %define CONFIG_AVFILTER 0
 %define CONFIG_AVFORMAT 0
 %define CONFIG_AVRESAMPLE 0
@@ -567,18 +566,18 @@
 %define CONFIG_HUFFYUVDSP 0
 %define CONFIG_HUFFYUVENCDSP 0
 %define CONFIG_IDCTDSP 0
 %define CONFIG_IIRFILTER 0
 %define CONFIG_IMDCT15 0
 %define CONFIG_INTRAX8 0
 %define CONFIG_IVIDSP 0
 %define CONFIG_JPEGTABLES 0
+%define CONFIG_LGPLV3 0
 %define CONFIG_LIBX262 0
-%define CONFIG_LGPLV3 0
 %define CONFIG_LLAUDDSP 0
 %define CONFIG_LLVIDDSP 0
 %define CONFIG_LPC 0
 %define CONFIG_LZF 0
 %define CONFIG_ME_CMP 0
 %define CONFIG_MPEG_ER 0
 %define CONFIG_MPEGAUDIO 0
 %define CONFIG_MPEGAUDIODSP 0
@@ -643,29 +642,31 @@
 %define CONFIG_BINK_DECODER 0
 %define CONFIG_BMP_DECODER 0
 %define CONFIG_BMV_VIDEO_DECODER 0
 %define CONFIG_BRENDER_PIX_DECODER 0
 %define CONFIG_C93_DECODER 0
 %define CONFIG_CAVS_DECODER 0
 %define CONFIG_CDGRAPHICS_DECODER 0
 %define CONFIG_CDXL_DECODER 0
+%define CONFIG_CFHD_DECODER 0
 %define CONFIG_CINEPAK_DECODER 0
 %define CONFIG_CLJR_DECODER 0
 %define CONFIG_CLLC_DECODER 0
 %define CONFIG_COMFORTNOISE_DECODER 0
 %define CONFIG_CPIA_DECODER 0
 %define CONFIG_CSCD_DECODER 0
 %define CONFIG_CYUV_DECODER 0
 %define CONFIG_DDS_DECODER 0
 %define CONFIG_DFA_DECODER 0
 %define CONFIG_DIRAC_DECODER 0
 %define CONFIG_DNXHD_DECODER 0
 %define CONFIG_DPX_DECODER 0
 %define CONFIG_DSICINVIDEO_DECODER 0
+%define CONFIG_DVAUDIO_DECODER 0
 %define CONFIG_DVVIDEO_DECODER 0
 %define CONFIG_DXA_DECODER 0
 %define CONFIG_DXTORY_DECODER 0
 %define CONFIG_DXV_DECODER 0
 %define CONFIG_EACMV_DECODER 0
 %define CONFIG_EAMAD_DECODER 0
 %define CONFIG_EATGQ_DECODER 0
 %define CONFIG_EATGV_DECODER 0
@@ -725,16 +726,17 @@
 %define CONFIG_MJPEGB_DECODER 0
 %define CONFIG_MMVIDEO_DECODER 0
 %define CONFIG_MOTIONPIXELS_DECODER 0
 %define CONFIG_MPEG_XVMC_DECODER 0
 %define CONFIG_MPEG1VIDEO_DECODER 0
 %define CONFIG_MPEG2VIDEO_DECODER 0
 %define CONFIG_MPEG4_DECODER 0
 %define CONFIG_MPEG4_CRYSTALHD_DECODER 0
+%define CONFIG_MPEG4_MMAL_DECODER 0
 %define CONFIG_MPEG4_VDPAU_DECODER 0
 %define CONFIG_MPEGVIDEO_DECODER 0
 %define CONFIG_MPEG_VDPAU_DECODER 0
 %define CONFIG_MPEG1_VDPAU_DECODER 0
 %define CONFIG_MPEG2_MMAL_DECODER 0
 %define CONFIG_MPEG2_CRYSTALHD_DECODER 0
 %define CONFIG_MPEG2_QSV_DECODER 0
 %define CONFIG_MSA1_DECODER 0
@@ -1301,17 +1303,16 @@
 %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_LIBQUVI_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
@@ -1369,16 +1370,17 @@
 %define CONFIG_SVQ1_ENCODER 0
 %define CONFIG_TARGA_ENCODER 0
 %define CONFIG_TIFF_ENCODER 0
 %define CONFIG_UTVIDEO_ENCODER 0
 %define CONFIG_V210_ENCODER 0
 %define CONFIG_V308_ENCODER 0
 %define CONFIG_V408_ENCODER 0
 %define CONFIG_V410_ENCODER 0
+%define CONFIG_VC2_ENCODER 0
 %define CONFIG_WRAPPED_AVFRAME_ENCODER 0
 %define CONFIG_WMV1_ENCODER 0
 %define CONFIG_WMV2_ENCODER 0
 %define CONFIG_XBM_ENCODER 0
 %define CONFIG_XFACE_ENCODER 0
 %define CONFIG_XWD_ENCODER 0
 %define CONFIG_Y41P_ENCODER 0
 %define CONFIG_YUV4_ENCODER 0
@@ -1458,52 +1460,52 @@
 %define CONFIG_LIBOPENJPEG_ENCODER 0
 %define CONFIG_LIBOPUS_ENCODER 0
 %define CONFIG_LIBSCHROEDINGER_ENCODER 0
 %define CONFIG_LIBSHINE_ENCODER 0
 %define CONFIG_LIBSPEEX_ENCODER 0
 %define CONFIG_LIBTHEORA_ENCODER 0
 %define CONFIG_LIBTWOLAME_ENCODER 0
 %define CONFIG_LIBUTVIDEO_ENCODER 0
-%define CONFIG_LIBVO_AACENC_ENCODER 0
 %define CONFIG_LIBVO_AMRWBENC_ENCODER 0
 %define CONFIG_LIBVORBIS_ENCODER 0
 %define CONFIG_LIBVPX_VP8_ENCODER 0
 %define CONFIG_LIBVPX_VP9_ENCODER 0
 %define CONFIG_LIBWAVPACK_ENCODER 0
 %define CONFIG_LIBWEBP_ANIM_ENCODER 0
 %define CONFIG_LIBWEBP_ENCODER 0
 %define CONFIG_LIBX262_ENCODER 0
 %define CONFIG_LIBX264_ENCODER 0
 %define CONFIG_LIBX264RGB_ENCODER 0
 %define CONFIG_LIBX265_ENCODER 0
 %define CONFIG_LIBXAVS_ENCODER 0
 %define CONFIG_LIBXVID_ENCODER 0
-%define CONFIG_LIBAACPLUS_ENCODER 0
 %define CONFIG_LIBOPENH264_ENCODER 0
 %define CONFIG_H264_QSV_ENCODER 0
 %define CONFIG_NVENC_ENCODER 0
 %define CONFIG_NVENC_H264_ENCODER 0
 %define CONFIG_NVENC_HEVC_ENCODER 0
 %define CONFIG_HEVC_QSV_ENCODER 0
 %define CONFIG_LIBKVAZAAR_ENCODER 0
 %define CONFIG_MPEG2_QSV_ENCODER 0
 %define CONFIG_ACOMPRESSOR_FILTER 0
 %define CONFIG_ACROSSFADE_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
 %define CONFIG_AINTERLEAVE_FILTER 0
 %define CONFIG_ALIMITER_FILTER 0
 %define CONFIG_ALLPASS_FILTER 0
 %define CONFIG_AMERGE_FILTER 0
+%define CONFIG_AMETADATA_FILTER 0
 %define CONFIG_AMIX_FILTER 0
 %define CONFIG_ANEQUALIZER_FILTER 0
 %define CONFIG_ANULL_FILTER 0
 %define CONFIG_APAD_FILTER 0
 %define CONFIG_APERMS_FILTER 0
 %define CONFIG_APHASER_FILTER 0
 %define CONFIG_APULSATOR_FILTER 0
 %define CONFIG_AREALTIME_FILTER 0
@@ -1513,16 +1515,17 @@
 %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_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
 %define CONFIG_BANDREJECT_FILTER 0
 %define CONFIG_BASS_FILTER 0
 %define CONFIG_BIQUAD_FILTER 0
@@ -1576,16 +1579,17 @@
 %define CONFIG_BOXBLUR_FILTER 0
 %define CONFIG_CHROMAKEY_FILTER 0
 %define CONFIG_CODECVIEW_FILTER 0
 %define CONFIG_COLORBALANCE_FILTER 0
 %define CONFIG_COLORCHANNELMIXER_FILTER 0
 %define CONFIG_COLORKEY_FILTER 0
 %define CONFIG_COLORLEVELS_FILTER 0
 %define CONFIG_COLORMATRIX_FILTER 0
+%define CONFIG_CONVOLUTION_FILTER 0
 %define CONFIG_COPY_FILTER 0
 %define CONFIG_COVER_RECT_FILTER 0
 %define CONFIG_CROP_FILTER 0
 %define CONFIG_CROPDETECT_FILTER 0
 %define CONFIG_CURVES_FILTER 0
 %define CONFIG_DCTDNOIZ_FILTER 0
 %define CONFIG_DEBAND_FILTER 0
 %define CONFIG_DECIMATE_FILTER 0
@@ -1637,18 +1641,20 @@
 %define CONFIG_LENSCORRECTION_FILTER 0
 %define CONFIG_LUT3D_FILTER 0
 %define CONFIG_LUT_FILTER 0
 %define CONFIG_LUTRGB_FILTER 0
 %define CONFIG_LUTYUV_FILTER 0
 %define CONFIG_MASKEDMERGE_FILTER 0
 %define CONFIG_MCDEINT_FILTER 0
 %define CONFIG_MERGEPLANES_FILTER 0
+%define CONFIG_METADATA_FILTER 0
 %define CONFIG_MPDECIMATE_FILTER 0
 %define CONFIG_NEGATE_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
 %define CONFIG_PAD_FILTER 0
@@ -1687,18 +1693,20 @@
 %define CONFIG_SHUFFLEFRAMES_FILTER 0
 %define CONFIG_SHUFFLEPLANES_FILTER 0
 %define CONFIG_SIGNALSTATS_FILTER 0
 %define CONFIG_SMARTBLUR_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
 %define CONFIG_SWAPUV_FILTER 0
 %define CONFIG_TBLEND_FILTER 0
 %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
@@ -1729,26 +1737,28 @@
 %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_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_VAAPI_HWACCEL 0
 %define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_H264_D3D11VA_HWACCEL 0
 %define CONFIG_H264_DXVA2_HWACCEL 0
 %define CONFIG_H264_MMAL_HWACCEL 0
 %define CONFIG_H264_QSV_HWACCEL 0
@@ -1768,16 +1778,17 @@
 %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_MMAL_HWACCEL 0
 %define CONFIG_MPEG4_VAAPI_HWACCEL 0
 %define CONFIG_MPEG4_VDPAU_HWACCEL 0
 %define CONFIG_MPEG4_VIDEOTOOLBOX_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
@@ -1973,16 +1984,17 @@
 %define CONFIG_ADX_PARSER 0
 %define CONFIG_BMP_PARSER 0
 %define CONFIG_CAVSVIDEO_PARSER 0
 %define CONFIG_COOK_PARSER 0
 %define CONFIG_DCA_PARSER 0
 %define CONFIG_DIRAC_PARSER 0
 %define CONFIG_DNXHD_PARSER 0
 %define CONFIG_DPX_PARSER 0
+%define CONFIG_DVAUDIO_PARSER 0
 %define CONFIG_DVBSUB_PARSER 0
 %define CONFIG_DVDSUB_PARSER 0
 %define CONFIG_DVD_NAV_PARSER 0
 %define CONFIG_FLAC_PARSER 0
 %define CONFIG_G729_PARSER 0
 %define CONFIG_GSM_PARSER 0
 %define CONFIG_H261_PARSER 0
 %define CONFIG_H263_PARSER 0
--- a/media/ffvpx/config_unix64.h
+++ b/media/ffvpx/config_unix64.h
@@ -1,17 +1,17 @@
 /* Automatically generated by configure - do not modify! */
 #ifndef FFMPEG_CONFIG_H
 #define FFMPEG_CONFIG_H
-#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 --disable-avx2"
+#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.8 (Ubuntu 4.8.2-19ubuntu1)"
+#define CC_IDENT "gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)"
 #define av_restrict restrict
 #define EXTERN_PREFIX ""
 #define EXTERN_ASM 
 #define BUILDSUF ""
 #define SLIBSUF ".so"
 #define HAVE_MMX2 HAVE_MMXEXT
 #define SWS_MAX_FILTER_SIZE 256
 #define ARCH_AARCH64 0
@@ -174,17 +174,17 @@
 #define HAVE_LOCAL_ALIGNED_8 1
 #define HAVE_LOCAL_ALIGNED_16 1
 #define HAVE_LOCAL_ALIGNED_32 1
 #define HAVE_SIMD_ALIGN_16 1
 #define HAVE_ATOMICS_GCC 1
 #define HAVE_ATOMICS_SUNCC 0
 #define HAVE_ATOMICS_WIN32 0
 #define HAVE_ATOMIC_CAS_PTR 0
-#define HAVE_ATOMIC_COMPARE_EXCHANGE 1
+#define HAVE_ATOMIC_COMPARE_EXCHANGE 0
 #define HAVE_MACHINE_RW_BARRIER 0
 #define HAVE_MEMORYBARRIER 0
 #define HAVE_MM_EMPTY 1
 #define HAVE_RDTSC 0
 #define HAVE_SARESTART 1
 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
 #define HAVE_CABS 1
 #define HAVE_CEXP 1
@@ -212,16 +212,17 @@
 #define HAVE_DXVA_H 0
 #define HAVE_ES2_GL_H 0
 #define HAVE_GSM_H 0
 #define HAVE_IO_H 0
 #define HAVE_MACH_MACH_TIME_H 0
 #define HAVE_MACHINE_IOCTL_BT848_H 0
 #define HAVE_MACHINE_IOCTL_METEOR_H 0
 #define HAVE_MALLOC_H 1
+#define HAVE_OPENCV2_CORE_CORE_C_H 0
 #define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
 #define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
 #define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
 #define HAVE_OPENGL_GL3_H 0
 #define HAVE_POLL_H 1
 #define HAVE_SNDIO_H 0
 #define HAVE_SOUNDCARD_H 0
 #define HAVE_SYS_MMAN_H 1
@@ -245,16 +246,17 @@
 #define HAVE_CBRTF 1
 #define HAVE_COPYSIGN 1
 #define HAVE_COSF 1
 #define HAVE_ERF 1
 #define HAVE_EXP2 1
 #define HAVE_EXP2F 1
 #define HAVE_EXPF 1
 #define HAVE_HYPOT 1
+#define HAVE_ISFINITE 1
 #define HAVE_ISINF 1
 #define HAVE_ISNAN 1
 #define HAVE_LDEXPF 1
 #define HAVE_LLRINT 1
 #define HAVE_LLRINTF 1
 #define HAVE_LOG2 1
 #define HAVE_LOG2F 1
 #define HAVE_LOG10F 1
@@ -330,19 +332,19 @@
 #define HAVE_ASM_MOD_Q 0
 #define HAVE_ATTRIBUTE_MAY_ALIAS 1
 #define HAVE_ATTRIBUTE_PACKED 1
 #define HAVE_EBP_AVAILABLE 1
 #define HAVE_EBX_AVAILABLE 1
 #define HAVE_GNU_AS 0
 #define HAVE_GNU_WINDRES 0
 #define HAVE_IBM_ASM 0
+#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 #define HAVE_INLINE_ASM_LABELS 1
 #define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
-#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
 #define HAVE_PRAGMA_DEPRECATED 1
 #define HAVE_RSYNC_CONTIMEOUT 1
 #define HAVE_SYMVER_ASM_LABEL 0
 #define HAVE_SYMVER_GNU_ASM 1
 #define HAVE_VFP_ARGS 0
 #define HAVE_XFORM_ASM 0
 #define HAVE_XMM_CLOBBERS 1
 #define HAVE_CONDITION_VARIABLE_PTR 0
@@ -356,46 +358,46 @@
 #define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
 #define HAVE_STRUCT_SOCKADDR_IN6 1
 #define HAVE_STRUCT_SOCKADDR_SA_LEN 0
 #define HAVE_STRUCT_SOCKADDR_STORAGE 1
 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1
 #define HAVE_ATOMICS_NATIVE 1
 #define HAVE_DOS_PATHS 0
+#define HAVE_DXVA2_LIB 0
 #define HAVE_DXVA2API_COBJ 0
-#define HAVE_DXVA2_LIB 0
-#define HAVE_WINRT 0
 #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_PERL 1
 #define HAVE_POD2MAN 1
 #define HAVE_SDL 0
 #define HAVE_SECTION_DATA_REL_RO 1
-#define HAVE_TEXI2HTML 1
+#define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
+#define HAVE_WINRT 0
 #define HAVE_XLIB 1
 #define CONFIG_BSFS 0
 #define CONFIG_DECODERS 1
 #define CONFIG_ENCODERS 0
 #define CONFIG_HWACCELS 0
 #define CONFIG_PARSERS 1
 #define CONFIG_INDEVS 0
 #define CONFIG_OUTDEVS 0
 #define CONFIG_FILTERS 0
 #define CONFIG_DEMUXERS 0
 #define CONFIG_MUXERS 0
 #define CONFIG_PROTOCOLS 0
 #define CONFIG_DOC 0
-#define CONFIG_HTMLPAGES 1
+#define CONFIG_HTMLPAGES 0
 #define CONFIG_MANPAGES 1
 #define CONFIG_PODPAGES 1
 #define CONFIG_TXTPAGES 0
 #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
@@ -416,17 +418,16 @@
 #define CONFIG_CRYSTALHD 0
 #define CONFIG_DECKLINK 0
 #define CONFIG_FREI0R 0
 #define CONFIG_GCRYPT 0
 #define CONFIG_GMP 0
 #define CONFIG_GNUTLS 0
 #define CONFIG_ICONV 0
 #define CONFIG_LADSPA 0
-#define CONFIG_LIBAACPLUS 0
 #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_LIBDCADEC 0
@@ -447,33 +448,31 @@
 #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_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
-#define CONFIG_LIBQUVI 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
 #define CONFIG_LIBSOXR 0
 #define CONFIG_LIBSPEEX 0
 #define CONFIG_LIBSSH 0
 #define CONFIG_LIBTESSERACT 0
 #define CONFIG_LIBTHEORA 0
 #define CONFIG_LIBTWOLAME 0
 #define CONFIG_LIBUTVIDEO 0
 #define CONFIG_LIBV4L2 0
 #define CONFIG_LIBVIDSTAB 0
-#define CONFIG_LIBVO_AACENC 0
 #define CONFIG_LIBVO_AMRWBENC 0
 #define CONFIG_LIBVORBIS 0
 #define CONFIG_LIBVPX 0
 #define CONFIG_LIBWAVPACK 0
 #define CONFIG_LIBWEBP 0
 #define CONFIG_LIBX264 0
 #define CONFIG_LIBX265 0
 #define CONFIG_LIBXAVS 0
@@ -509,17 +508,17 @@
 #define CONFIG_STATIC 0
 #define CONFIG_SWSCALE_ALPHA 1
 #define CONFIG_D3D11VA 0
 #define CONFIG_DXVA2 0
 #define CONFIG_VAAPI 0
 #define CONFIG_VDA 0
 #define CONFIG_VDPAU 0
 #define CONFIG_VIDEOTOOLBOX 0
-#define CONFIG_XVMC 1
+#define CONFIG_XVMC 0
 #define CONFIG_GPL 0
 #define CONFIG_NONFREE 0
 #define CONFIG_VERSION3 0
 #define CONFIG_AVCODEC 1
 #define CONFIG_AVDEVICE 0
 #define CONFIG_AVFILTER 0
 #define CONFIG_AVFORMAT 0
 #define CONFIG_AVRESAMPLE 0
@@ -583,18 +582,18 @@
 #define CONFIG_HUFFYUVDSP 0
 #define CONFIG_HUFFYUVENCDSP 0
 #define CONFIG_IDCTDSP 0
 #define CONFIG_IIRFILTER 0
 #define CONFIG_IMDCT15 0
 #define CONFIG_INTRAX8 0
 #define CONFIG_IVIDSP 0
 #define CONFIG_JPEGTABLES 0
+#define CONFIG_LGPLV3 0
 #define CONFIG_LIBX262 0
-#define CONFIG_LGPLV3 0
 #define CONFIG_LLAUDDSP 0
 #define CONFIG_LLVIDDSP 0
 #define CONFIG_LPC 0
 #define CONFIG_LZF 0
 #define CONFIG_ME_CMP 0
 #define CONFIG_MPEG_ER 0
 #define CONFIG_MPEGAUDIO 0
 #define CONFIG_MPEGAUDIODSP 0
@@ -659,29 +658,31 @@
 #define CONFIG_BINK_DECODER 0
 #define CONFIG_BMP_DECODER 0
 #define CONFIG_BMV_VIDEO_DECODER 0
 #define CONFIG_BRENDER_PIX_DECODER 0
 #define CONFIG_C93_DECODER 0
 #define CONFIG_CAVS_DECODER 0
 #define CONFIG_CDGRAPHICS_DECODER 0
 #define CONFIG_CDXL_DECODER 0
+#define CONFIG_CFHD_DECODER 0
 #define CONFIG_CINEPAK_DECODER 0
 #define CONFIG_CLJR_DECODER 0
 #define CONFIG_CLLC_DECODER 0
 #define CONFIG_COMFORTNOISE_DECODER 0
 #define CONFIG_CPIA_DECODER 0
 #define CONFIG_CSCD_DECODER 0
 #define CONFIG_CYUV_DECODER 0
 #define CONFIG_DDS_DECODER 0
 #define CONFIG_DFA_DECODER 0
 #define CONFIG_DIRAC_DECODER 0
 #define CONFIG_DNXHD_DECODER 0
 #define CONFIG_DPX_DECODER 0
 #define CONFIG_DSICINVIDEO_DECODER 0
+#define CONFIG_DVAUDIO_DECODER 0
 #define CONFIG_DVVIDEO_DECODER 0
 #define CONFIG_DXA_DECODER 0
 #define CONFIG_DXTORY_DECODER 0
 #define CONFIG_DXV_DECODER 0
 #define CONFIG_EACMV_DECODER 0
 #define CONFIG_EAMAD_DECODER 0
 #define CONFIG_EATGQ_DECODER 0
 #define CONFIG_EATGV_DECODER 0
@@ -741,16 +742,17 @@
 #define CONFIG_MJPEGB_DECODER 0
 #define CONFIG_MMVIDEO_DECODER 0
 #define CONFIG_MOTIONPIXELS_DECODER 0
 #define CONFIG_MPEG_XVMC_DECODER 0
 #define CONFIG_MPEG1VIDEO_DECODER 0
 #define CONFIG_MPEG2VIDEO_DECODER 0
 #define CONFIG_MPEG4_DECODER 0
 #define CONFIG_MPEG4_CRYSTALHD_DECODER 0
+#define CONFIG_MPEG4_MMAL_DECODER 0
 #define CONFIG_MPEG4_VDPAU_DECODER 0
 #define CONFIG_MPEGVIDEO_DECODER 0
 #define CONFIG_MPEG_VDPAU_DECODER 0
 #define CONFIG_MPEG1_VDPAU_DECODER 0
 #define CONFIG_MPEG2_MMAL_DECODER 0
 #define CONFIG_MPEG2_CRYSTALHD_DECODER 0
 #define CONFIG_MPEG2_QSV_DECODER 0
 #define CONFIG_MSA1_DECODER 0
@@ -1317,17 +1319,16 @@
 #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_LIBQUVI_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
@@ -1385,16 +1386,17 @@
 #define CONFIG_SVQ1_ENCODER 0
 #define CONFIG_TARGA_ENCODER 0
 #define CONFIG_TIFF_ENCODER 0
 #define CONFIG_UTVIDEO_ENCODER 0
 #define CONFIG_V210_ENCODER 0
 #define CONFIG_V308_ENCODER 0
 #define CONFIG_V408_ENCODER 0
 #define CONFIG_V410_ENCODER 0
+#define CONFIG_VC2_ENCODER 0
 #define CONFIG_WRAPPED_AVFRAME_ENCODER 0
 #define CONFIG_WMV1_ENCODER 0
 #define CONFIG_WMV2_ENCODER 0
 #define CONFIG_XBM_ENCODER 0
 #define CONFIG_XFACE_ENCODER 0
 #define CONFIG_XWD_ENCODER 0
 #define CONFIG_Y41P_ENCODER 0
 #define CONFIG_YUV4_ENCODER 0
@@ -1474,52 +1476,52 @@
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
 #define CONFIG_LIBSCHROEDINGER_ENCODER 0
 #define CONFIG_LIBSHINE_ENCODER 0
 #define CONFIG_LIBSPEEX_ENCODER 0
 #define CONFIG_LIBTHEORA_ENCODER 0
 #define CONFIG_LIBTWOLAME_ENCODER 0
 #define CONFIG_LIBUTVIDEO_ENCODER 0
-#define CONFIG_LIBVO_AACENC_ENCODER 0
 #define CONFIG_LIBVO_AMRWBENC_ENCODER 0
 #define CONFIG_LIBVORBIS_ENCODER 0
 #define CONFIG_LIBVPX_VP8_ENCODER 0
 #define CONFIG_LIBVPX_VP9_ENCODER 0
 #define CONFIG_LIBWAVPACK_ENCODER 0
 #define CONFIG_LIBWEBP_ANIM_ENCODER 0
 #define CONFIG_LIBWEBP_ENCODER 0
 #define CONFIG_LIBX262_ENCODER 0
 #define CONFIG_LIBX264_ENCODER 0
 #define CONFIG_LIBX264RGB_ENCODER 0
 #define CONFIG_LIBX265_ENCODER 0
 #define CONFIG_LIBXAVS_ENCODER 0
 #define CONFIG_LIBXVID_ENCODER 0
-#define CONFIG_LIBAACPLUS_ENCODER 0
 #define CONFIG_LIBOPENH264_ENCODER 0
 #define CONFIG_H264_QSV_ENCODER 0
 #define CONFIG_NVENC_ENCODER 0
 #define CONFIG_NVENC_H264_ENCODER 0
 #define CONFIG_NVENC_HEVC_ENCODER 0
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_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
 #define CONFIG_AINTERLEAVE_FILTER 0
 #define CONFIG_ALIMITER_FILTER 0
 #define CONFIG_ALLPASS_FILTER 0
 #define CONFIG_AMERGE_FILTER 0
+#define CONFIG_AMETADATA_FILTER 0
 #define CONFIG_AMIX_FILTER 0
 #define CONFIG_ANEQUALIZER_FILTER 0
 #define CONFIG_ANULL_FILTER 0
 #define CONFIG_APAD_FILTER 0
 #define CONFIG_APERMS_FILTER 0
 #define CONFIG_APHASER_FILTER 0
 #define CONFIG_APULSATOR_FILTER 0
 #define CONFIG_AREALTIME_FILTER 0
@@ -1529,16 +1531,17 @@
 #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_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
 #define CONFIG_BANDREJECT_FILTER 0
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
@@ -1592,16 +1595,17 @@
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
 #define CONFIG_COLORBALANCE_FILTER 0
 #define CONFIG_COLORCHANNELMIXER_FILTER 0
 #define CONFIG_COLORKEY_FILTER 0
 #define CONFIG_COLORLEVELS_FILTER 0
 #define CONFIG_COLORMATRIX_FILTER 0
+#define CONFIG_CONVOLUTION_FILTER 0
 #define CONFIG_COPY_FILTER 0
 #define CONFIG_COVER_RECT_FILTER 0
 #define CONFIG_CROP_FILTER 0
 #define CONFIG_CROPDETECT_FILTER 0
 #define CONFIG_CURVES_FILTER 0
 #define CONFIG_DCTDNOIZ_FILTER 0
 #define CONFIG_DEBAND_FILTER 0
 #define CONFIG_DECIMATE_FILTER 0
@@ -1653,18 +1657,20 @@
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
 #define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_METADATA_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_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
 #define CONFIG_PAD_FILTER 0
@@ -1703,18 +1709,20 @@
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_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
 #define CONFIG_SWAPUV_FILTER 0
 #define CONFIG_TBLEND_FILTER 0
 #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
@@ -1745,26 +1753,28 @@
 #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_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_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
@@ -1784,16 +1794,17 @@
 #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_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_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
@@ -1989,16 +2000,17 @@
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
 #define CONFIG_CAVSVIDEO_PARSER 0
 #define CONFIG_COOK_PARSER 0
 #define CONFIG_DCA_PARSER 0
 #define CONFIG_DIRAC_PARSER 0
 #define CONFIG_DNXHD_PARSER 0
 #define CONFIG_DPX_PARSER 0
+#define CONFIG_DVAUDIO_PARSER 0
 #define CONFIG_DVBSUB_PARSER 0
 #define CONFIG_DVDSUB_PARSER 0
 #define CONFIG_DVD_NAV_PARSER 0
 #define CONFIG_FLAC_PARSER 0
 #define CONFIG_G729_PARSER 0
 #define CONFIG_GSM_PARSER 0
 #define CONFIG_H261_PARSER 0
 #define CONFIG_H263_PARSER 0
--- a/media/ffvpx/config_win32.asm
+++ b/media/ffvpx/config_win32.asm
@@ -196,16 +196,17 @@
 %define HAVE_DXVA_H 1
 %define HAVE_ES2_GL_H 0
 %define HAVE_GSM_H 0
 %define HAVE_IO_H 1
 %define HAVE_MACH_MACH_TIME_H 0
 %define HAVE_MACHINE_IOCTL_BT848_H 0
 %define HAVE_MACHINE_IOCTL_METEOR_H 0
 %define HAVE_MALLOC_H 1
+%define HAVE_OPENCV2_CORE_CORE_C_H 0
 %define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
 %define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
 %define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
 %define HAVE_OPENGL_GL3_H 0
 %define HAVE_POLL_H 0
 %define HAVE_SNDIO_H 0
 %define HAVE_SOUNDCARD_H 0
 %define HAVE_SYS_MMAN_H 0
@@ -229,16 +230,17 @@
 %define HAVE_CBRTF 1
 %define HAVE_COPYSIGN 1
 %define HAVE_COSF 1
 %define HAVE_ERF 1
 %define HAVE_EXP2 1
 %define HAVE_EXP2F 1
 %define HAVE_EXPF 1
 %define HAVE_HYPOT 1
+%define HAVE_ISFINITE 1
 %define HAVE_ISINF 1
 %define HAVE_ISNAN 1
 %define HAVE_LDEXPF 1
 %define HAVE_LLRINT 1
 %define HAVE_LLRINTF 1
 %define HAVE_LOG2 1
 %define HAVE_LOG2F 1
 %define HAVE_LOG10F 1
@@ -314,19 +316,19 @@
 %define HAVE_ASM_MOD_Q 0
 %define HAVE_ATTRIBUTE_MAY_ALIAS 0
 %define HAVE_ATTRIBUTE_PACKED 0
 %define HAVE_EBP_AVAILABLE 0
 %define HAVE_EBX_AVAILABLE 0
 %define HAVE_GNU_AS 0
 %define HAVE_GNU_WINDRES 0
 %define HAVE_IBM_ASM 0
+%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
 %define HAVE_INLINE_ASM_LABELS 0
 %define HAVE_INLINE_ASM_NONLOCAL_LABELS 0
-%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
 %define HAVE_PRAGMA_DEPRECATED 1
 %define HAVE_RSYNC_CONTIMEOUT 0
 %define HAVE_SYMVER_ASM_LABEL 0
 %define HAVE_SYMVER_GNU_ASM 0
 %define HAVE_VFP_ARGS 0
 %define HAVE_XFORM_ASM 0
 %define HAVE_XMM_CLOBBERS 0
 %define HAVE_CONDITION_VARIABLE_PTR 1
@@ -340,32 +342,32 @@
 %define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
 %define HAVE_STRUCT_SOCKADDR_IN6 1
 %define HAVE_STRUCT_SOCKADDR_SA_LEN 0
 %define HAVE_STRUCT_SOCKADDR_STORAGE 1
 %define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0
 %define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0
 %define HAVE_ATOMICS_NATIVE 1
 %define HAVE_DOS_PATHS 1
+%define HAVE_DXVA2_LIB 0
 %define HAVE_DXVA2API_COBJ 1
-%define HAVE_DXVA2_LIB 0
-%define HAVE_WINRT 0
 %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_PERL 1
 %define HAVE_POD2MAN 1
 %define HAVE_SDL 0
 %define HAVE_SECTION_DATA_REL_RO 0
 %define HAVE_TEXI2HTML 0
 %define HAVE_THREADS 1
 %define HAVE_VAAPI_X11 0
 %define HAVE_VDPAU_X11 0
+%define HAVE_WINRT 0
 %define HAVE_XLIB 0
 %define CONFIG_BSFS 0
 %define CONFIG_DECODERS 1
 %define CONFIG_ENCODERS 0
 %define CONFIG_HWACCELS 0
 %define CONFIG_PARSERS 1
 %define CONFIG_INDEVS 0
 %define CONFIG_OUTDEVS 0
@@ -400,17 +402,16 @@
 %define CONFIG_CRYSTALHD 0
 %define CONFIG_DECKLINK 0
 %define CONFIG_FREI0R 0
 %define CONFIG_GCRYPT 0
 %define CONFIG_GMP 0
 %define CONFIG_GNUTLS 0
 %define CONFIG_ICONV 0
 %define CONFIG_LADSPA 0
-%define CONFIG_LIBAACPLUS 0
 %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_LIBDCADEC 0
@@ -431,33 +432,31 @@
 %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_LIBOPUS 0
 %define CONFIG_LIBPULSE 0
-%define CONFIG_LIBQUVI 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
 %define CONFIG_LIBSOXR 0
 %define CONFIG_LIBSPEEX 0
 %define CONFIG_LIBSSH 0
 %define CONFIG_LIBTESSERACT 0
 %define CONFIG_LIBTHEORA 0
 %define CONFIG_LIBTWOLAME 0
 %define CONFIG_LIBUTVIDEO 0
 %define CONFIG_LIBV4L2 0
 %define CONFIG_LIBVIDSTAB 0
-%define CONFIG_LIBVO_AACENC 0
 %define CONFIG_LIBVO_AMRWBENC 0
 %define CONFIG_LIBVORBIS 0
 %define CONFIG_LIBVPX 0
 %define CONFIG_LIBWAVPACK 0
 %define CONFIG_LIBWEBP 0
 %define CONFIG_LIBX264 0
 %define CONFIG_LIBX265 0
 %define CONFIG_LIBXAVS 0
@@ -567,18 +566,18 @@
 %define CONFIG_HUFFYUVDSP 0
 %define CONFIG_HUFFYUVENCDSP 0
 %define CONFIG_IDCTDSP 0
 %define CONFIG_IIRFILTER 0
 %define CONFIG_IMDCT15 0
 %define CONFIG_INTRAX8 0
 %define CONFIG_IVIDSP 0
 %define CONFIG_JPEGTABLES 0
+%define CONFIG_LGPLV3 0
 %define CONFIG_LIBX262 0
-%define CONFIG_LGPLV3 0
 %define CONFIG_LLAUDDSP 0
 %define CONFIG_LLVIDDSP 0
 %define CONFIG_LPC 0
 %define CONFIG_LZF 0
 %define CONFIG_ME_CMP 0
 %define CONFIG_MPEG_ER 0
 %define CONFIG_MPEGAUDIO 0
 %define CONFIG_MPEGAUDIODSP 0
@@ -643,29 +642,31 @@
 %define CONFIG_BINK_DECODER 0
 %define CONFIG_BMP_DECODER 0
 %define CONFIG_BMV_VIDEO_DECODER 0
 %define CONFIG_BRENDER_PIX_DECODER 0
 %define CONFIG_C93_DECODER 0
 %define CONFIG_CAVS_DECODER 0
 %define CONFIG_CDGRAPHICS_DECODER 0
 %define CONFIG_CDXL_DECODER 0
+%define CONFIG_CFHD_DECODER 0
 %define CONFIG_CINEPAK_DECODER 0
 %define CONFIG_CLJR_DECODER 0
 %define CONFIG_CLLC_DECODER 0
 %define CONFIG_COMFORTNOISE_DECODER 0
 %define CONFIG_CPIA_DECODER 0
 %define CONFIG_CSCD_DECODER 0
 %define CONFIG_CYUV_DECODER 0
 %define CONFIG_DDS_DECODER 0
 %define CONFIG_DFA_DECODER 0
 %define CONFIG_DIRAC_DECODER 0
 %define CONFIG_DNXHD_DECODER 0
 %define CONFIG_DPX_DECODER 0
 %define CONFIG_DSICINVIDEO_DECODER 0
+%define CONFIG_DVAUDIO_DECODER 0
 %define CONFIG_DVVIDEO_DECODER 0
 %define CONFIG_DXA_DECODER 0
 %define CONFIG_DXTORY_DECODER 0
 %define CONFIG_DXV_DECODER 0
 %define CONFIG_EACMV_DECODER 0
 %define CONFIG_EAMAD_DECODER 0
 %define CONFIG_EATGQ_DECODER 0
 %define CONFIG_EATGV_DECODER 0
@@ -725,16 +726,17 @@
 %define CONFIG_MJPEGB_DECODER 0
 %define CONFIG_MMVIDEO_DECODER 0
 %define CONFIG_MOTIONPIXELS_DECODER 0
 %define CONFIG_MPEG_XVMC_DECODER 0
 %define CONFIG_MPEG1VIDEO_DECODER 0
 %define CONFIG_MPEG2VIDEO_DECODER 0
 %define CONFIG_MPEG4_DECODER 0
 %define CONFIG_MPEG4_CRYSTALHD_DECODER 0
+%define CONFIG_MPEG4_MMAL_DECODER 0
 %define CONFIG_MPEG4_VDPAU_DECODER 0
 %define CONFIG_MPEGVIDEO_DECODER 0
 %define CONFIG_MPEG_VDPAU_DECODER 0
 %define CONFIG_MPEG1_VDPAU_DECODER 0
 %define CONFIG_MPEG2_MMAL_DECODER 0
 %define CONFIG_MPEG2_CRYSTALHD_DECODER 0
 %define CONFIG_MPEG2_QSV_DECODER 0
 %define CONFIG_MSA1_DECODER 0
@@ -1301,17 +1303,16 @@
 %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_LIBQUVI_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
@@ -1369,16 +1370,17 @@
 %define CONFIG_SVQ1_ENCODER 0
 %define CONFIG_TARGA_ENCODER 0
 %define CONFIG_TIFF_ENCODER 0
 %define CONFIG_UTVIDEO_ENCODER 0
 %define CONFIG_V210_ENCODER 0
 %define CONFIG_V308_ENCODER 0
 %define CONFIG_V408_ENCODER 0
 %define CONFIG_V410_ENCODER 0
+%define CONFIG_VC2_ENCODER 0
 %define CONFIG_WRAPPED_AVFRAME_ENCODER 0
 %define CONFIG_WMV1_ENCODER 0
 %define CONFIG_WMV2_ENCODER 0
 %define CONFIG_XBM_ENCODER 0
 %define CONFIG_XFACE_ENCODER 0
 %define CONFIG_XWD_ENCODER 0
 %define CONFIG_Y41P_ENCODER 0
 %define CONFIG_YUV4_ENCODER 0
@@ -1458,52 +1460,52 @@
 %define CONFIG_LIBOPENJPEG_ENCODER 0
 %define CONFIG_LIBOPUS_ENCODER 0
 %define CONFIG_LIBSCHROEDINGER_ENCODER 0
 %define CONFIG_LIBSHINE_ENCODER 0
 %define CONFIG_LIBSPEEX_ENCODER 0
 %define CONFIG_LIBTHEORA_ENCODER 0
 %define CONFIG_LIBTWOLAME_ENCODER 0
 %define CONFIG_LIBUTVIDEO_ENCODER 0
-%define CONFIG_LIBVO_AACENC_ENCODER 0
 %define CONFIG_LIBVO_AMRWBENC_ENCODER 0
 %define CONFIG_LIBVORBIS_ENCODER 0
 %define CONFIG_LIBVPX_VP8_ENCODER 0
 %define CONFIG_LIBVPX_VP9_ENCODER 0
 %define CONFIG_LIBWAVPACK_ENCODER 0
 %define CONFIG_LIBWEBP_ANIM_ENCODER 0
 %define CONFIG_LIBWEBP_ENCODER 0
 %define CONFIG_LIBX262_ENCODER 0
 %define CONFIG_LIBX264_ENCODER 0
 %define CONFIG_LIBX264RGB_ENCODER 0
 %define CONFIG_LIBX265_ENCODER 0
 %define CONFIG_LIBXAVS_ENCODER 0
 %define CONFIG_LIBXVID_ENCODER 0
-%define CONFIG_LIBAACPLUS_ENCODER 0
 %define CONFIG_LIBOPENH264_ENCODER 0
 %define CONFIG_H264_QSV_ENCODER 0
 %define CONFIG_NVENC_ENCODER 0
 %define CONFIG_NVENC_H264_ENCODER 0
 %define CONFIG_NVENC_HEVC_ENCODER 0
 %define CONFIG_HEVC_QSV_ENCODER 0
 %define CONFIG_LIBKVAZAAR_ENCODER 0
 %define CONFIG_MPEG2_QSV_ENCODER 0
 %define CONFIG_ACOMPRESSOR_FILTER 0
 %define CONFIG_ACROSSFADE_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
 %define CONFIG_AINTERLEAVE_FILTER 0
 %define CONFIG_ALIMITER_FILTER 0
 %define CONFIG_ALLPASS_FILTER 0
 %define CONFIG_AMERGE_FILTER 0
+%define CONFIG_AMETADATA_FILTER 0
 %define CONFIG_AMIX_FILTER 0
 %define CONFIG_ANEQUALIZER_FILTER 0
 %define CONFIG_ANULL_FILTER 0
 %define CONFIG_APAD_FILTER 0
 %define CONFIG_APERMS_FILTER 0
 %define CONFIG_APHASER_FILTER 0
 %define CONFIG_APULSATOR_FILTER 0
 %define CONFIG_AREALTIME_FILTER 0
@@ -1513,16 +1515,17 @@
 %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_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
 %define CONFIG_BANDREJECT_FILTER 0
 %define CONFIG_BASS_FILTER 0
 %define CONFIG_BIQUAD_FILTER 0
@@ -1576,16 +1579,17 @@
 %define CONFIG_BOXBLUR_FILTER 0
 %define CONFIG_CHROMAKEY_FILTER 0
 %define CONFIG_CODECVIEW_FILTER 0
 %define CONFIG_COLORBALANCE_FILTER 0
 %define CONFIG_COLORCHANNELMIXER_FILTER 0
 %define CONFIG_COLORKEY_FILTER 0
 %define CONFIG_COLORLEVELS_FILTER 0
 %define CONFIG_COLORMATRIX_FILTER 0
+%define CONFIG_CONVOLUTION_FILTER 0
 %define CONFIG_COPY_FILTER 0
 %define CONFIG_COVER_RECT_FILTER 0
 %define CONFIG_CROP_FILTER 0
 %define CONFIG_CROPDETECT_FILTER 0
 %define CONFIG_CURVES_FILTER 0
 %define CONFIG_DCTDNOIZ_FILTER 0
 %define CONFIG_DEBAND_FILTER 0
 %define CONFIG_DECIMATE_FILTER 0
@@ -1637,18 +1641,20 @@
 %define CONFIG_LENSCORRECTION_FILTER 0
 %define CONFIG_LUT3D_FILTER 0
 %define CONFIG_LUT_FILTER 0
 %define CONFIG_LUTRGB_FILTER 0
 %define CONFIG_LUTYUV_FILTER 0
 %define CONFIG_MASKEDMERGE_FILTER 0
 %define CONFIG_MCDEINT_FILTER 0
 %define CONFIG_MERGEPLANES_FILTER 0
+%define CONFIG_METADATA_FILTER 0
 %define CONFIG_MPDECIMATE_FILTER 0
 %define CONFIG_NEGATE_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
 %define CONFIG_PAD_FILTER 0
@@ -1687,18 +1693,20 @@
 %define CONFIG_SHUFFLEFRAMES_FILTER 0
 %define CONFIG_SHUFFLEPLANES_FILTER 0
 %define CONFIG_SIGNALSTATS_FILTER 0
 %define CONFIG_SMARTBLUR_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
 %define CONFIG_SWAPUV_FILTER 0
 %define CONFIG_TBLEND_FILTER 0
 %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
@@ -1729,26 +1737,28 @@
 %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_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_VAAPI_HWACCEL 0
 %define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_H264_D3D11VA_HWACCEL 0
 %define CONFIG_H264_DXVA2_HWACCEL 0
 %define CONFIG_H264_MMAL_HWACCEL 0
 %define CONFIG_H264_QSV_HWACCEL 0
@@ -1768,16 +1778,17 @@
 %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_MMAL_HWACCEL 0
 %define CONFIG_MPEG4_VAAPI_HWACCEL 0
 %define CONFIG_MPEG4_VDPAU_HWACCEL 0
 %define CONFIG_MPEG4_VIDEOTOOLBOX_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
@@ -1973,16 +1984,17 @@
 %define CONFIG_ADX_PARSER 0
 %define CONFIG_BMP_PARSER 0
 %define CONFIG_CAVSVIDEO_PARSER 0
 %define CONFIG_COOK_PARSER 0
 %define CONFIG_DCA_PARSER 0
 %define CONFIG_DIRAC_PARSER 0
 %define CONFIG_DNXHD_PARSER 0
 %define CONFIG_DPX_PARSER 0
+%define CONFIG_DVAUDIO_PARSER 0
 %define CONFIG_DVBSUB_PARSER 0
 %define CONFIG_DVDSUB_PARSER 0
 %define CONFIG_DVD_NAV_PARSER 0
 %define CONFIG_FLAC_PARSER 0
 %define CONFIG_G729_PARSER 0
 %define CONFIG_GSM_PARSER 0
 %define CONFIG_H261_PARSER 0
 %define CONFIG_H263_PARSER 0
--- a/media/ffvpx/config_win32.h
+++ b/media/ffvpx/config_win32.h
@@ -1,17 +1,17 @@
 /* Automatically generated by configure - do not modify! */
 #ifndef FFMPEG_CONFIG_H
 #define FFMPEG_CONFIG_H
 #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 18.00.40629 for x86"
+#define CC_IDENT "Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x86"
 #define av_restrict __restrict
 #define EXTERN_PREFIX "_"
 #define EXTERN_ASM _
 #define BUILDSUF ""
 #define SLIBSUF ".dll"
 #define HAVE_MMX2 HAVE_MMXEXT
 #define SWS_MAX_FILTER_SIZE 256
 #define ARCH_AARCH64 0
@@ -212,16 +212,17 @@
 #define HAVE_DXVA_H 1
 #define HAVE_ES2_GL_H 0
 #define HAVE_GSM_H 0
 #define HAVE_IO_H 1
 #define HAVE_MACH_MACH_TIME_H 0
 #define HAVE_MACHINE_IOCTL_BT848_H 0
 #define HAVE_MACHINE_IOCTL_METEOR_H 0
 #define HAVE_MALLOC_H 1
+#define HAVE_OPENCV2_CORE_CORE_C_H 0
 #define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
 #define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
 #define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
 #define HAVE_OPENGL_GL3_H 0
 #define HAVE_POLL_H 0
 #define HAVE_SNDIO_H 0
 #define HAVE_SOUNDCARD_H 0
 #define HAVE_SYS_MMAN_H 0
@@ -245,16 +246,17 @@
 #define HAVE_CBRTF 1
 #define HAVE_COPYSIGN 1
 #define HAVE_COSF 1
 #define HAVE_ERF 1
 #define HAVE_EXP2 1
 #define HAVE_EXP2F 1
 #define HAVE_EXPF 1
 #define HAVE_HYPOT 1
+#define HAVE_ISFINITE 1
 #define HAVE_ISINF 1
 #define HAVE_ISNAN 1
 #define HAVE_LDEXPF 1
 #define HAVE_LLRINT 1
 #define HAVE_LLRINTF 1
 #define HAVE_LOG2 1
 #define HAVE_LOG2F 1
 #define HAVE_LOG10F 1
@@ -330,19 +332,19 @@
 #define HAVE_ASM_MOD_Q 0
 #define HAVE_ATTRIBUTE_MAY_ALIAS 0
 #define HAVE_ATTRIBUTE_PACKED 0
 #define HAVE_EBP_AVAILABLE 0
 #define HAVE_EBX_AVAILABLE 0
 #define HAVE_GNU_AS 0
 #define HAVE_GNU_WINDRES 0
 #define HAVE_IBM_ASM 0
+#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
 #define HAVE_INLINE_ASM_LABELS 0
 #define HAVE_INLINE_ASM_NONLOCAL_LABELS 0
-#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
 #define HAVE_PRAGMA_DEPRECATED 1
 #define HAVE_RSYNC_CONTIMEOUT 0
 #define HAVE_SYMVER_ASM_LABEL 0
 #define HAVE_SYMVER_GNU_ASM 0
 #define HAVE_VFP_ARGS 0
 #define HAVE_XFORM_ASM 0
 #define HAVE_XMM_CLOBBERS 0
 #define HAVE_CONDITION_VARIABLE_PTR 1
@@ -356,32 +358,32 @@
 #define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
 #define HAVE_STRUCT_SOCKADDR_IN6 1
 #define HAVE_STRUCT_SOCKADDR_SA_LEN 0
 #define HAVE_STRUCT_SOCKADDR_STORAGE 1
 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0
 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0
 #define HAVE_ATOMICS_NATIVE 1
 #define HAVE_DOS_PATHS 1
+#define HAVE_DXVA2_LIB 0
 #define HAVE_DXVA2API_COBJ 1
-#define HAVE_DXVA2_LIB 0
-#define HAVE_WINRT 0
 #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_PERL 1
 #define HAVE_POD2MAN 1
 #define HAVE_SDL 0
 #define HAVE_SECTION_DATA_REL_RO 0
 #define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
+#define HAVE_WINRT 0
 #define HAVE_XLIB 0
 #define CONFIG_BSFS 0
 #define CONFIG_DECODERS 1
 #define CONFIG_ENCODERS 0
 #define CONFIG_HWACCELS 0
 #define CONFIG_PARSERS 1
 #define CONFIG_INDEVS 0
 #define CONFIG_OUTDEVS 0
@@ -416,17 +418,16 @@
 #define CONFIG_CRYSTALHD 0
 #define CONFIG_DECKLINK 0
 #define CONFIG_FREI0R 0
 #define CONFIG_GCRYPT 0
 #define CONFIG_GMP 0
 #define CONFIG_GNUTLS 0
 #define CONFIG_ICONV 0
 #define CONFIG_LADSPA 0
-#define CONFIG_LIBAACPLUS 0
 #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_LIBDCADEC 0
@@ -447,33 +448,31 @@
 #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_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
-#define CONFIG_LIBQUVI 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
 #define CONFIG_LIBSOXR 0
 #define CONFIG_LIBSPEEX 0
 #define CONFIG_LIBSSH 0
 #define CONFIG_LIBTESSERACT 0
 #define CONFIG_LIBTHEORA 0
 #define CONFIG_LIBTWOLAME 0
 #define CONFIG_LIBUTVIDEO 0
 #define CONFIG_LIBV4L2 0
 #define CONFIG_LIBVIDSTAB 0
-#define CONFIG_LIBVO_AACENC 0
 #define CONFIG_LIBVO_AMRWBENC 0
 #define CONFIG_LIBVORBIS 0
 #define CONFIG_LIBVPX 0
 #define CONFIG_LIBWAVPACK 0
 #define CONFIG_LIBWEBP 0
 #define CONFIG_LIBX264 0
 #define CONFIG_LIBX265 0
 #define CONFIG_LIBXAVS 0
@@ -583,18 +582,18 @@
 #define CONFIG_HUFFYUVDSP 0
 #define CONFIG_HUFFYUVENCDSP 0
 #define CONFIG_IDCTDSP 0
 #define CONFIG_IIRFILTER 0
 #define CONFIG_IMDCT15 0
 #define CONFIG_INTRAX8 0
 #define CONFIG_IVIDSP 0
 #define CONFIG_JPEGTABLES 0
+#define CONFIG_LGPLV3 0
 #define CONFIG_LIBX262 0
-#define CONFIG_LGPLV3 0
 #define CONFIG_LLAUDDSP 0
 #define CONFIG_LLVIDDSP 0
 #define CONFIG_LPC 0
 #define CONFIG_LZF 0
 #define CONFIG_ME_CMP 0
 #define CONFIG_MPEG_ER 0
 #define CONFIG_MPEGAUDIO 0
 #define CONFIG_MPEGAUDIODSP 0
@@ -659,29 +658,31 @@
 #define CONFIG_BINK_DECODER 0
 #define CONFIG_BMP_DECODER 0
 #define CONFIG_BMV_VIDEO_DECODER 0
 #define CONFIG_BRENDER_PIX_DECODER 0
 #define CONFIG_C93_DECODER 0
 #define CONFIG_CAVS_DECODER 0
 #define CONFIG_CDGRAPHICS_DECODER 0
 #define CONFIG_CDXL_DECODER 0
+#define CONFIG_CFHD_DECODER 0
 #define CONFIG_CINEPAK_DECODER 0
 #define CONFIG_CLJR_DECODER 0
 #define CONFIG_CLLC_DECODER 0
 #define CONFIG_COMFORTNOISE_DECODER 0
 #define CONFIG_CPIA_DECODER 0
 #define CONFIG_CSCD_DECODER 0
 #define CONFIG_CYUV_DECODER 0
 #define CONFIG_DDS_DECODER 0
 #define CONFIG_DFA_DECODER 0
 #define CONFIG_DIRAC_DECODER 0
 #define CONFIG_DNXHD_DECODER 0
 #define CONFIG_DPX_DECODER 0
 #define CONFIG_DSICINVIDEO_DECODER 0
+#define CONFIG_DVAUDIO_DECODER 0
 #define CONFIG_DVVIDEO_DECODER 0
 #define CONFIG_DXA_DECODER 0
 #define CONFIG_DXTORY_DECODER 0
 #define CONFIG_DXV_DECODER 0
 #define CONFIG_EACMV_DECODER 0
 #define CONFIG_EAMAD_DECODER 0
 #define CONFIG_EATGQ_DECODER 0
 #define CONFIG_EATGV_DECODER 0
@@ -741,16 +742,17 @@
 #define CONFIG_MJPEGB_DECODER 0
 #define CONFIG_MMVIDEO_DECODER 0
 #define CONFIG_MOTIONPIXELS_DECODER 0
 #define CONFIG_MPEG_XVMC_DECODER 0
 #define CONFIG_MPEG1VIDEO_DECODER 0
 #define CONFIG_MPEG2VIDEO_DECODER 0
 #define CONFIG_MPEG4_DECODER 0
 #define CONFIG_MPEG4_CRYSTALHD_DECODER 0
+#define CONFIG_MPEG4_MMAL_DECODER 0
 #define CONFIG_MPEG4_VDPAU_DECODER 0
 #define CONFIG_MPEGVIDEO_DECODER 0
 #define CONFIG_MPEG_VDPAU_DECODER 0
 #define CONFIG_MPEG1_VDPAU_DECODER 0
 #define CONFIG_MPEG2_MMAL_DECODER 0
 #define CONFIG_MPEG2_CRYSTALHD_DECODER 0
 #define CONFIG_MPEG2_QSV_DECODER 0
 #define CONFIG_MSA1_DECODER 0
@@ -1317,17 +1319,16 @@
 #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_LIBQUVI_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
@@ -1385,16 +1386,17 @@
 #define CONFIG_SVQ1_ENCODER 0
 #define CONFIG_TARGA_ENCODER 0
 #define CONFIG_TIFF_ENCODER 0
 #define CONFIG_UTVIDEO_ENCODER 0
 #define CONFIG_V210_ENCODER 0
 #define CONFIG_V308_ENCODER 0
 #define CONFIG_V408_ENCODER 0
 #define CONFIG_V410_ENCODER 0
+#define CONFIG_VC2_ENCODER 0
 #define CONFIG_WRAPPED_AVFRAME_ENCODER 0
 #define CONFIG_WMV1_ENCODER 0
 #define CONFIG_WMV2_ENCODER 0
 #define CONFIG_XBM_ENCODER 0
 #define CONFIG_XFACE_ENCODER 0
 #define CONFIG_XWD_ENCODER 0
 #define CONFIG_Y41P_ENCODER 0
 #define CONFIG_YUV4_ENCODER 0
@@ -1474,52 +1476,52 @@
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
 #define CONFIG_LIBSCHROEDINGER_ENCODER 0
 #define CONFIG_LIBSHINE_ENCODER 0
 #define CONFIG_LIBSPEEX_ENCODER 0
 #define CONFIG_LIBTHEORA_ENCODER 0
 #define CONFIG_LIBTWOLAME_ENCODER 0
 #define CONFIG_LIBUTVIDEO_ENCODER 0
-#define CONFIG_LIBVO_AACENC_ENCODER 0
 #define CONFIG_LIBVO_AMRWBENC_ENCODER 0
 #define CONFIG_LIBVORBIS_ENCODER 0
 #define CONFIG_LIBVPX_VP8_ENCODER 0
 #define CONFIG_LIBVPX_VP9_ENCODER 0
 #define CONFIG_LIBWAVPACK_ENCODER 0
 #define CONFIG_LIBWEBP_ANIM_ENCODER 0
 #define CONFIG_LIBWEBP_ENCODER 0
 #define CONFIG_LIBX262_ENCODER 0
 #define CONFIG_LIBX264_ENCODER 0
 #define CONFIG_LIBX264RGB_ENCODER 0
 #define CONFIG_LIBX265_ENCODER 0
 #define CONFIG_LIBXAVS_ENCODER 0
 #define CONFIG_LIBXVID_ENCODER 0
-#define CONFIG_LIBAACPLUS_ENCODER 0
 #define CONFIG_LIBOPENH264_ENCODER 0
 #define CONFIG_H264_QSV_ENCODER 0
 #define CONFIG_NVENC_ENCODER 0
 #define CONFIG_NVENC_H264_ENCODER 0
 #define CONFIG_NVENC_HEVC_ENCODER 0
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_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
 #define CONFIG_AINTERLEAVE_FILTER 0
 #define CONFIG_ALIMITER_FILTER 0
 #define CONFIG_ALLPASS_FILTER 0
 #define CONFIG_AMERGE_FILTER 0
+#define CONFIG_AMETADATA_FILTER 0
 #define CONFIG_AMIX_FILTER 0
 #define CONFIG_ANEQUALIZER_FILTER 0
 #define CONFIG_ANULL_FILTER 0
 #define CONFIG_APAD_FILTER 0
 #define CONFIG_APERMS_FILTER 0
 #define CONFIG_APHASER_FILTER 0
 #define CONFIG_APULSATOR_FILTER 0
 #define CONFIG_AREALTIME_FILTER 0
@@ -1529,16 +1531,17 @@
 #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_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
 #define CONFIG_BANDREJECT_FILTER 0
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
@@ -1592,16 +1595,17 @@
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
 #define CONFIG_COLORBALANCE_FILTER 0
 #define CONFIG_COLORCHANNELMIXER_FILTER 0
 #define CONFIG_COLORKEY_FILTER 0
 #define CONFIG_COLORLEVELS_FILTER 0
 #define CONFIG_COLORMATRIX_FILTER 0
+#define CONFIG_CONVOLUTION_FILTER 0
 #define CONFIG_COPY_FILTER 0
 #define CONFIG_COVER_RECT_FILTER 0
 #define CONFIG_CROP_FILTER 0
 #define CONFIG_CROPDETECT_FILTER 0
 #define CONFIG_CURVES_FILTER 0
 #define CONFIG_DCTDNOIZ_FILTER 0
 #define CONFIG_DEBAND_FILTER 0
 #define CONFIG_DECIMATE_FILTER 0
@@ -1653,18 +1657,20 @@
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
 #define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_METADATA_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_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
 #define CONFIG_PAD_FILTER 0
@@ -1703,18 +1709,20 @@
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_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
 #define CONFIG_SWAPUV_FILTER 0
 #define CONFIG_TBLEND_FILTER 0
 #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
@@ -1745,26 +1753,28 @@
 #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_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_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
@@ -1784,16 +1794,17 @@
 #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_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_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
@@ -1989,16 +2000,17 @@
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
 #define CONFIG_CAVSVIDEO_PARSER 0
 #define CONFIG_COOK_PARSER 0
 #define CONFIG_DCA_PARSER 0
 #define CONFIG_DIRAC_PARSER 0
 #define CONFIG_DNXHD_PARSER 0
 #define CONFIG_DPX_PARSER 0
+#define CONFIG_DVAUDIO_PARSER 0
 #define CONFIG_DVBSUB_PARSER 0
 #define CONFIG_DVDSUB_PARSER 0
 #define CONFIG_DVD_NAV_PARSER 0
 #define CONFIG_FLAC_PARSER 0
 #define CONFIG_G729_PARSER 0
 #define CONFIG_GSM_PARSER 0
 #define CONFIG_H261_PARSER 0
 #define CONFIG_H263_PARSER 0
--- a/media/ffvpx/config_win64.asm
+++ b/media/ffvpx/config_win64.asm
@@ -196,16 +196,17 @@
 %define HAVE_DXVA_H 1
 %define HAVE_ES2_GL_H 0
 %define HAVE_GSM_H 0
 %define HAVE_IO_H 1
 %define HAVE_MACH_MACH_TIME_H 0
 %define HAVE_MACHINE_IOCTL_BT848_H 0
 %define HAVE_MACHINE_IOCTL_METEOR_H 0
 %define HAVE_MALLOC_H 1
+%define HAVE_OPENCV2_CORE_CORE_C_H 0
 %define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
 %define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
 %define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
 %define HAVE_OPENGL_GL3_H 0
 %define HAVE_POLL_H 0
 %define HAVE_SNDIO_H 0
 %define HAVE_SOUNDCARD_H 0
 %define HAVE_SYS_MMAN_H 0
@@ -229,16 +230,17 @@
 %define HAVE_CBRTF 1
 %define HAVE_COPYSIGN 1
 %define HAVE_COSF 1
 %define HAVE_ERF 1
 %define HAVE_EXP2 1
 %define HAVE_EXP2F 1
 %define HAVE_EXPF 1
 %define HAVE_HYPOT 1
+%define HAVE_ISFINITE 1
 %define HAVE_ISINF 1
 %define HAVE_ISNAN 1
 %define HAVE_LDEXPF 1
 %define HAVE_LLRINT 1
 %define HAVE_LLRINTF 1
 %define HAVE_LOG2 1
 %define HAVE_LOG2F 1
 %define HAVE_LOG10F 1
@@ -314,19 +316,19 @@
 %define HAVE_ASM_MOD_Q 0
 %define HAVE_ATTRIBUTE_MAY_ALIAS 0
 %define HAVE_ATTRIBUTE_PACKED 0
 %define HAVE_EBP_AVAILABLE 0
 %define HAVE_EBX_AVAILABLE 0
 %define HAVE_GNU_AS 0
 %define HAVE_GNU_WINDRES 0
 %define HAVE_IBM_ASM 0
+%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
 %define HAVE_INLINE_ASM_LABELS 0
 %define HAVE_INLINE_ASM_NONLOCAL_LABELS 0
-%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
 %define HAVE_PRAGMA_DEPRECATED 1
 %define HAVE_RSYNC_CONTIMEOUT 0
 %define HAVE_SYMVER_ASM_LABEL 0
 %define HAVE_SYMVER_GNU_ASM 0
 %define HAVE_VFP_ARGS 0
 %define HAVE_XFORM_ASM 0
 %define HAVE_XMM_CLOBBERS 0
 %define HAVE_CONDITION_VARIABLE_PTR 1
@@ -340,32 +342,32 @@
 %define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
 %define HAVE_STRUCT_SOCKADDR_IN6 1
 %define HAVE_STRUCT_SOCKADDR_SA_LEN 0
 %define HAVE_STRUCT_SOCKADDR_STORAGE 1
 %define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0
 %define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0
 %define HAVE_ATOMICS_NATIVE 1
 %define HAVE_DOS_PATHS 1
+%define HAVE_DXVA2_LIB 0
 %define HAVE_DXVA2API_COBJ 1
-%define HAVE_DXVA2_LIB 0
-%define HAVE_WINRT 0
 %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_PERL 1
 %define HAVE_POD2MAN 1
 %define HAVE_SDL 0
 %define HAVE_SECTION_DATA_REL_RO 0
 %define HAVE_TEXI2HTML 0
 %define HAVE_THREADS 1
 %define HAVE_VAAPI_X11 0
 %define HAVE_VDPAU_X11 0
+%define HAVE_WINRT 0
 %define HAVE_XLIB 0
 %define CONFIG_BSFS 0
 %define CONFIG_DECODERS 1
 %define CONFIG_ENCODERS 0
 %define CONFIG_HWACCELS 0
 %define CONFIG_PARSERS 1
 %define CONFIG_INDEVS 0
 %define CONFIG_OUTDEVS 0
@@ -400,17 +402,16 @@
 %define CONFIG_CRYSTALHD 0
 %define CONFIG_DECKLINK 0
 %define CONFIG_FREI0R 0
 %define CONFIG_GCRYPT 0
 %define CONFIG_GMP 0
 %define CONFIG_GNUTLS 0
 %define CONFIG_ICONV 0
 %define CONFIG_LADSPA 0
-%define CONFIG_LIBAACPLUS 0
 %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_LIBDCADEC 0
@@ -431,33 +432,31 @@
 %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_LIBOPUS 0
 %define CONFIG_LIBPULSE 0
-%define CONFIG_LIBQUVI 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
 %define CONFIG_LIBSOXR 0
 %define CONFIG_LIBSPEEX 0
 %define CONFIG_LIBSSH 0
 %define CONFIG_LIBTESSERACT 0
 %define CONFIG_LIBTHEORA 0
 %define CONFIG_LIBTWOLAME 0
 %define CONFIG_LIBUTVIDEO 0
 %define CONFIG_LIBV4L2 0
 %define CONFIG_LIBVIDSTAB 0
-%define CONFIG_LIBVO_AACENC 0
 %define CONFIG_LIBVO_AMRWBENC 0
 %define CONFIG_LIBVORBIS 0
 %define CONFIG_LIBVPX 0
 %define CONFIG_LIBWAVPACK 0
 %define CONFIG_LIBWEBP 0
 %define CONFIG_LIBX264 0
 %define CONFIG_LIBX265 0
 %define CONFIG_LIBXAVS 0
@@ -567,18 +566,18 @@
 %define CONFIG_HUFFYUVDSP 0
 %define CONFIG_HUFFYUVENCDSP 0
 %define CONFIG_IDCTDSP 0
 %define CONFIG_IIRFILTER 0
 %define CONFIG_IMDCT15 0
 %define CONFIG_INTRAX8 0
 %define CONFIG_IVIDSP 0
 %define CONFIG_JPEGTABLES 0
+%define CONFIG_LGPLV3 0
 %define CONFIG_LIBX262 0
-%define CONFIG_LGPLV3 0
 %define CONFIG_LLAUDDSP 0
 %define CONFIG_LLVIDDSP 0
 %define CONFIG_LPC 0
 %define CONFIG_LZF 0
 %define CONFIG_ME_CMP 0
 %define CONFIG_MPEG_ER 0
 %define CONFIG_MPEGAUDIO 0
 %define CONFIG_MPEGAUDIODSP 0
@@ -643,29 +642,31 @@
 %define CONFIG_BINK_DECODER 0
 %define CONFIG_BMP_DECODER 0
 %define CONFIG_BMV_VIDEO_DECODER 0
 %define CONFIG_BRENDER_PIX_DECODER 0
 %define CONFIG_C93_DECODER 0
 %define CONFIG_CAVS_DECODER 0
 %define CONFIG_CDGRAPHICS_DECODER 0
 %define CONFIG_CDXL_DECODER 0
+%define CONFIG_CFHD_DECODER 0
 %define CONFIG_CINEPAK_DECODER 0
 %define CONFIG_CLJR_DECODER 0
 %define CONFIG_CLLC_DECODER 0
 %define CONFIG_COMFORTNOISE_DECODER 0
 %define CONFIG_CPIA_DECODER 0
 %define CONFIG_CSCD_DECODER 0
 %define CONFIG_CYUV_DECODER 0
 %define CONFIG_DDS_DECODER 0
 %define CONFIG_DFA_DECODER 0
 %define CONFIG_DIRAC_DECODER 0
 %define CONFIG_DNXHD_DECODER 0
 %define CONFIG_DPX_DECODER 0
 %define CONFIG_DSICINVIDEO_DECODER 0
+%define CONFIG_DVAUDIO_DECODER 0
 %define CONFIG_DVVIDEO_DECODER 0
 %define CONFIG_DXA_DECODER 0
 %define CONFIG_DXTORY_DECODER 0
 %define CONFIG_DXV_DECODER 0
 %define CONFIG_EACMV_DECODER 0
 %define CONFIG_EAMAD_DECODER 0
 %define CONFIG_EATGQ_DECODER 0
 %define CONFIG_EATGV_DECODER 0
@@ -725,16 +726,17 @@
 %define CONFIG_MJPEGB_DECODER 0
 %define CONFIG_MMVIDEO_DECODER 0
 %define CONFIG_MOTIONPIXELS_DECODER 0
 %define CONFIG_MPEG_XVMC_DECODER 0
 %define CONFIG_MPEG1VIDEO_DECODER 0
 %define CONFIG_MPEG2VIDEO_DECODER 0
 %define CONFIG_MPEG4_DECODER 0
 %define CONFIG_MPEG4_CRYSTALHD_DECODER 0
+%define CONFIG_MPEG4_MMAL_DECODER 0
 %define CONFIG_MPEG4_VDPAU_DECODER 0
 %define CONFIG_MPEGVIDEO_DECODER 0
 %define CONFIG_MPEG_VDPAU_DECODER 0
 %define CONFIG_MPEG1_VDPAU_DECODER 0
 %define CONFIG_MPEG2_MMAL_DECODER 0
 %define CONFIG_MPEG2_CRYSTALHD_DECODER 0
 %define CONFIG_MPEG2_QSV_DECODER 0
 %define CONFIG_MSA1_DECODER 0
@@ -1301,17 +1303,16 @@
 %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_LIBQUVI_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
@@ -1369,16 +1370,17 @@
 %define CONFIG_SVQ1_ENCODER 0
 %define CONFIG_TARGA_ENCODER 0
 %define CONFIG_TIFF_ENCODER 0
 %define CONFIG_UTVIDEO_ENCODER 0
 %define CONFIG_V210_ENCODER 0
 %define CONFIG_V308_ENCODER 0
 %define CONFIG_V408_ENCODER 0
 %define CONFIG_V410_ENCODER 0
+%define CONFIG_VC2_ENCODER 0
 %define CONFIG_WRAPPED_AVFRAME_ENCODER 0
 %define CONFIG_WMV1_ENCODER 0
 %define CONFIG_WMV2_ENCODER 0
 %define CONFIG_XBM_ENCODER 0
 %define CONFIG_XFACE_ENCODER 0
 %define CONFIG_XWD_ENCODER 0
 %define CONFIG_Y41P_ENCODER 0
 %define CONFIG_YUV4_ENCODER 0
@@ -1458,52 +1460,52 @@
 %define CONFIG_LIBOPENJPEG_ENCODER 0
 %define CONFIG_LIBOPUS_ENCODER 0
 %define CONFIG_LIBSCHROEDINGER_ENCODER 0
 %define CONFIG_LIBSHINE_ENCODER 0
 %define CONFIG_LIBSPEEX_ENCODER 0
 %define CONFIG_LIBTHEORA_ENCODER 0
 %define CONFIG_LIBTWOLAME_ENCODER 0
 %define CONFIG_LIBUTVIDEO_ENCODER 0
-%define CONFIG_LIBVO_AACENC_ENCODER 0
 %define CONFIG_LIBVO_AMRWBENC_ENCODER 0
 %define CONFIG_LIBVORBIS_ENCODER 0
 %define CONFIG_LIBVPX_VP8_ENCODER 0
 %define CONFIG_LIBVPX_VP9_ENCODER 0
 %define CONFIG_LIBWAVPACK_ENCODER 0
 %define CONFIG_LIBWEBP_ANIM_ENCODER 0
 %define CONFIG_LIBWEBP_ENCODER 0
 %define CONFIG_LIBX262_ENCODER 0
 %define CONFIG_LIBX264_ENCODER 0
 %define CONFIG_LIBX264RGB_ENCODER 0
 %define CONFIG_LIBX265_ENCODER 0
 %define CONFIG_LIBXAVS_ENCODER 0
 %define CONFIG_LIBXVID_ENCODER 0
-%define CONFIG_LIBAACPLUS_ENCODER 0
 %define CONFIG_LIBOPENH264_ENCODER 0
 %define CONFIG_H264_QSV_ENCODER 0
 %define CONFIG_NVENC_ENCODER 0
 %define CONFIG_NVENC_H264_ENCODER 0
 %define CONFIG_NVENC_HEVC_ENCODER 0
 %define CONFIG_HEVC_QSV_ENCODER 0
 %define CONFIG_LIBKVAZAAR_ENCODER 0
 %define CONFIG_MPEG2_QSV_ENCODER 0
 %define CONFIG_ACOMPRESSOR_FILTER 0
 %define CONFIG_ACROSSFADE_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
 %define CONFIG_AINTERLEAVE_FILTER 0
 %define CONFIG_ALIMITER_FILTER 0
 %define CONFIG_ALLPASS_FILTER 0
 %define CONFIG_AMERGE_FILTER 0
+%define CONFIG_AMETADATA_FILTER 0
 %define CONFIG_AMIX_FILTER 0
 %define CONFIG_ANEQUALIZER_FILTER 0
 %define CONFIG_ANULL_FILTER 0
 %define CONFIG_APAD_FILTER 0
 %define CONFIG_APERMS_FILTER 0
 %define CONFIG_APHASER_FILTER 0
 %define CONFIG_APULSATOR_FILTER 0
 %define CONFIG_AREALTIME_FILTER 0
@@ -1513,16 +1515,17 @@
 %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_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
 %define CONFIG_BANDREJECT_FILTER 0
 %define CONFIG_BASS_FILTER 0
 %define CONFIG_BIQUAD_FILTER 0
@@ -1576,16 +1579,17 @@
 %define CONFIG_BOXBLUR_FILTER 0
 %define CONFIG_CHROMAKEY_FILTER 0
 %define CONFIG_CODECVIEW_FILTER 0
 %define CONFIG_COLORBALANCE_FILTER 0
 %define CONFIG_COLORCHANNELMIXER_FILTER 0
 %define CONFIG_COLORKEY_FILTER 0
 %define CONFIG_COLORLEVELS_FILTER 0
 %define CONFIG_COLORMATRIX_FILTER 0
+%define CONFIG_CONVOLUTION_FILTER 0
 %define CONFIG_COPY_FILTER 0
 %define CONFIG_COVER_RECT_FILTER 0
 %define CONFIG_CROP_FILTER 0
 %define CONFIG_CROPDETECT_FILTER 0
 %define CONFIG_CURVES_FILTER 0
 %define CONFIG_DCTDNOIZ_FILTER 0
 %define CONFIG_DEBAND_FILTER 0
 %define CONFIG_DECIMATE_FILTER 0
@@ -1637,18 +1641,20 @@
 %define CONFIG_LENSCORRECTION_FILTER 0
 %define CONFIG_LUT3D_FILTER 0
 %define CONFIG_LUT_FILTER 0
 %define CONFIG_LUTRGB_FILTER 0
 %define CONFIG_LUTYUV_FILTER 0
 %define CONFIG_MASKEDMERGE_FILTER 0
 %define CONFIG_MCDEINT_FILTER 0
 %define CONFIG_MERGEPLANES_FILTER 0
+%define CONFIG_METADATA_FILTER 0
 %define CONFIG_MPDECIMATE_FILTER 0
 %define CONFIG_NEGATE_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
 %define CONFIG_PAD_FILTER 0
@@ -1687,18 +1693,20 @@
 %define CONFIG_SHUFFLEFRAMES_FILTER 0
 %define CONFIG_SHUFFLEPLANES_FILTER 0
 %define CONFIG_SIGNALSTATS_FILTER 0
 %define CONFIG_SMARTBLUR_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
 %define CONFIG_SWAPUV_FILTER 0
 %define CONFIG_TBLEND_FILTER 0
 %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
@@ -1729,26 +1737,28 @@
 %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_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_VAAPI_HWACCEL 0
 %define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 %define CONFIG_H264_D3D11VA_HWACCEL 0
 %define CONFIG_H264_DXVA2_HWACCEL 0
 %define CONFIG_H264_MMAL_HWACCEL 0
 %define CONFIG_H264_QSV_HWACCEL 0
@@ -1768,16 +1778,17 @@
 %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_MMAL_HWACCEL 0
 %define CONFIG_MPEG4_VAAPI_HWACCEL 0
 %define CONFIG_MPEG4_VDPAU_HWACCEL 0
 %define CONFIG_MPEG4_VIDEOTOOLBOX_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
@@ -1973,16 +1984,17 @@
 %define CONFIG_ADX_PARSER 0
 %define CONFIG_BMP_PARSER 0
 %define CONFIG_CAVSVIDEO_PARSER 0
 %define CONFIG_COOK_PARSER 0
 %define CONFIG_DCA_PARSER 0
 %define CONFIG_DIRAC_PARSER 0
 %define CONFIG_DNXHD_PARSER 0
 %define CONFIG_DPX_PARSER 0
+%define CONFIG_DVAUDIO_PARSER 0
 %define CONFIG_DVBSUB_PARSER 0
 %define CONFIG_DVDSUB_PARSER 0
 %define CONFIG_DVD_NAV_PARSER 0
 %define CONFIG_FLAC_PARSER 0
 %define CONFIG_G729_PARSER 0
 %define CONFIG_GSM_PARSER 0
 %define CONFIG_H261_PARSER 0
 %define CONFIG_H263_PARSER 0
--- a/media/ffvpx/config_win64.h
+++ b/media/ffvpx/config_win64.h
@@ -212,16 +212,17 @@
 #define HAVE_DXVA_H 1
 #define HAVE_ES2_GL_H 0
 #define HAVE_GSM_H 0
 #define HAVE_IO_H 1
 #define HAVE_MACH_MACH_TIME_H 0
 #define HAVE_MACHINE_IOCTL_BT848_H 0
 #define HAVE_MACHINE_IOCTL_METEOR_H 0
 #define HAVE_MALLOC_H 1
+#define HAVE_OPENCV2_CORE_CORE_C_H 0
 #define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
 #define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
 #define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
 #define HAVE_OPENGL_GL3_H 0
 #define HAVE_POLL_H 0
 #define HAVE_SNDIO_H 0
 #define HAVE_SOUNDCARD_H 0
 #define HAVE_SYS_MMAN_H 0
@@ -245,16 +246,17 @@
 #define HAVE_CBRTF 1
 #define HAVE_COPYSIGN 1
 #define HAVE_COSF 1
 #define HAVE_ERF 1
 #define HAVE_EXP2 1
 #define HAVE_EXP2F 1
 #define HAVE_EXPF 1
 #define HAVE_HYPOT 1
+#define HAVE_ISFINITE 1
 #define HAVE_ISINF 1
 #define HAVE_ISNAN 1
 #define HAVE_LDEXPF 1
 #define HAVE_LLRINT 1
 #define HAVE_LLRINTF 1
 #define HAVE_LOG2 1
 #define HAVE_LOG2F 1
 #define HAVE_LOG10F 1
@@ -330,19 +332,19 @@
 #define HAVE_ASM_MOD_Q 0
 #define HAVE_ATTRIBUTE_MAY_ALIAS 0
 #define HAVE_ATTRIBUTE_PACKED 0
 #define HAVE_EBP_AVAILABLE 0
 #define HAVE_EBX_AVAILABLE 0
 #define HAVE_GNU_AS 0
 #define HAVE_GNU_WINDRES 0
 #define HAVE_IBM_ASM 0
+#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
 #define HAVE_INLINE_ASM_LABELS 0
 #define HAVE_INLINE_ASM_NONLOCAL_LABELS 0
-#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
 #define HAVE_PRAGMA_DEPRECATED 1
 #define HAVE_RSYNC_CONTIMEOUT 0
 #define HAVE_SYMVER_ASM_LABEL 0
 #define HAVE_SYMVER_GNU_ASM 0
 #define HAVE_VFP_ARGS 0
 #define HAVE_XFORM_ASM 0
 #define HAVE_XMM_CLOBBERS 0
 #define HAVE_CONDITION_VARIABLE_PTR 1
@@ -356,32 +358,32 @@
 #define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
 #define HAVE_STRUCT_SOCKADDR_IN6 1
 #define HAVE_STRUCT_SOCKADDR_SA_LEN 0
 #define HAVE_STRUCT_SOCKADDR_STORAGE 1
 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0
 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0
 #define HAVE_ATOMICS_NATIVE 1
 #define HAVE_DOS_PATHS 1
+#define HAVE_DXVA2_LIB 0
 #define HAVE_DXVA2API_COBJ 1
-#define HAVE_DXVA2_LIB 0
-#define HAVE_WINRT 0
 #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_PERL 1
 #define HAVE_POD2MAN 1
 #define HAVE_SDL 0
 #define HAVE_SECTION_DATA_REL_RO 0
 #define HAVE_TEXI2HTML 0
 #define HAVE_THREADS 1
 #define HAVE_VAAPI_X11 0
 #define HAVE_VDPAU_X11 0
+#define HAVE_WINRT 0
 #define HAVE_XLIB 0
 #define CONFIG_BSFS 0
 #define CONFIG_DECODERS 1
 #define CONFIG_ENCODERS 0
 #define CONFIG_HWACCELS 0
 #define CONFIG_PARSERS 1
 #define CONFIG_INDEVS 0
 #define CONFIG_OUTDEVS 0
@@ -416,17 +418,16 @@
 #define CONFIG_CRYSTALHD 0
 #define CONFIG_DECKLINK 0
 #define CONFIG_FREI0R 0
 #define CONFIG_GCRYPT 0
 #define CONFIG_GMP 0
 #define CONFIG_GNUTLS 0
 #define CONFIG_ICONV 0
 #define CONFIG_LADSPA 0
-#define CONFIG_LIBAACPLUS 0
 #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_LIBDCADEC 0
@@ -447,33 +448,31 @@
 #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_LIBOPUS 0
 #define CONFIG_LIBPULSE 0
-#define CONFIG_LIBQUVI 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
 #define CONFIG_LIBSOXR 0
 #define CONFIG_LIBSPEEX 0
 #define CONFIG_LIBSSH 0
 #define CONFIG_LIBTESSERACT 0
 #define CONFIG_LIBTHEORA 0
 #define CONFIG_LIBTWOLAME 0
 #define CONFIG_LIBUTVIDEO 0
 #define CONFIG_LIBV4L2 0
 #define CONFIG_LIBVIDSTAB 0
-#define CONFIG_LIBVO_AACENC 0
 #define CONFIG_LIBVO_AMRWBENC 0
 #define CONFIG_LIBVORBIS 0
 #define CONFIG_LIBVPX 0
 #define CONFIG_LIBWAVPACK 0
 #define CONFIG_LIBWEBP 0
 #define CONFIG_LIBX264 0
 #define CONFIG_LIBX265 0
 #define CONFIG_LIBXAVS 0
@@ -583,18 +582,18 @@
 #define CONFIG_HUFFYUVDSP 0
 #define CONFIG_HUFFYUVENCDSP 0
 #define CONFIG_IDCTDSP 0
 #define CONFIG_IIRFILTER 0
 #define CONFIG_IMDCT15 0
 #define CONFIG_INTRAX8 0
 #define CONFIG_IVIDSP 0
 #define CONFIG_JPEGTABLES 0
+#define CONFIG_LGPLV3 0
 #define CONFIG_LIBX262 0
-#define CONFIG_LGPLV3 0
 #define CONFIG_LLAUDDSP 0
 #define CONFIG_LLVIDDSP 0
 #define CONFIG_LPC 0
 #define CONFIG_LZF 0
 #define CONFIG_ME_CMP 0
 #define CONFIG_MPEG_ER 0
 #define CONFIG_MPEGAUDIO 0
 #define CONFIG_MPEGAUDIODSP 0
@@ -659,29 +658,31 @@
 #define CONFIG_BINK_DECODER 0
 #define CONFIG_BMP_DECODER 0
 #define CONFIG_BMV_VIDEO_DECODER 0
 #define CONFIG_BRENDER_PIX_DECODER 0
 #define CONFIG_C93_DECODER 0
 #define CONFIG_CAVS_DECODER 0
 #define CONFIG_CDGRAPHICS_DECODER 0
 #define CONFIG_CDXL_DECODER 0
+#define CONFIG_CFHD_DECODER 0
 #define CONFIG_CINEPAK_DECODER 0
 #define CONFIG_CLJR_DECODER 0
 #define CONFIG_CLLC_DECODER 0
 #define CONFIG_COMFORTNOISE_DECODER 0
 #define CONFIG_CPIA_DECODER 0
 #define CONFIG_CSCD_DECODER 0
 #define CONFIG_CYUV_DECODER 0
 #define CONFIG_DDS_DECODER 0
 #define CONFIG_DFA_DECODER 0
 #define CONFIG_DIRAC_DECODER 0
 #define CONFIG_DNXHD_DECODER 0
 #define CONFIG_DPX_DECODER 0
 #define CONFIG_DSICINVIDEO_DECODER 0
+#define CONFIG_DVAUDIO_DECODER 0
 #define CONFIG_DVVIDEO_DECODER 0
 #define CONFIG_DXA_DECODER 0
 #define CONFIG_DXTORY_DECODER 0
 #define CONFIG_DXV_DECODER 0
 #define CONFIG_EACMV_DECODER 0
 #define CONFIG_EAMAD_DECODER 0
 #define CONFIG_EATGQ_DECODER 0
 #define CONFIG_EATGV_DECODER 0
@@ -741,16 +742,17 @@
 #define CONFIG_MJPEGB_DECODER 0
 #define CONFIG_MMVIDEO_DECODER 0
 #define CONFIG_MOTIONPIXELS_DECODER 0
 #define CONFIG_MPEG_XVMC_DECODER 0
 #define CONFIG_MPEG1VIDEO_DECODER 0
 #define CONFIG_MPEG2VIDEO_DECODER 0
 #define CONFIG_MPEG4_DECODER 0
 #define CONFIG_MPEG4_CRYSTALHD_DECODER 0
+#define CONFIG_MPEG4_MMAL_DECODER 0
 #define CONFIG_MPEG4_VDPAU_DECODER 0
 #define CONFIG_MPEGVIDEO_DECODER 0
 #define CONFIG_MPEG_VDPAU_DECODER 0
 #define CONFIG_MPEG1_VDPAU_DECODER 0
 #define CONFIG_MPEG2_MMAL_DECODER 0
 #define CONFIG_MPEG2_CRYSTALHD_DECODER 0
 #define CONFIG_MPEG2_QSV_DECODER 0
 #define CONFIG_MSA1_DECODER 0
@@ -1317,17 +1319,16 @@
 #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_LIBQUVI_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
@@ -1385,16 +1386,17 @@
 #define CONFIG_SVQ1_ENCODER 0
 #define CONFIG_TARGA_ENCODER 0
 #define CONFIG_TIFF_ENCODER 0
 #define CONFIG_UTVIDEO_ENCODER 0
 #define CONFIG_V210_ENCODER 0
 #define CONFIG_V308_ENCODER 0
 #define CONFIG_V408_ENCODER 0
 #define CONFIG_V410_ENCODER 0
+#define CONFIG_VC2_ENCODER 0
 #define CONFIG_WRAPPED_AVFRAME_ENCODER 0
 #define CONFIG_WMV1_ENCODER 0
 #define CONFIG_WMV2_ENCODER 0
 #define CONFIG_XBM_ENCODER 0
 #define CONFIG_XFACE_ENCODER 0
 #define CONFIG_XWD_ENCODER 0
 #define CONFIG_Y41P_ENCODER 0
 #define CONFIG_YUV4_ENCODER 0
@@ -1474,52 +1476,52 @@
 #define CONFIG_LIBOPENJPEG_ENCODER 0
 #define CONFIG_LIBOPUS_ENCODER 0
 #define CONFIG_LIBSCHROEDINGER_ENCODER 0
 #define CONFIG_LIBSHINE_ENCODER 0
 #define CONFIG_LIBSPEEX_ENCODER 0
 #define CONFIG_LIBTHEORA_ENCODER 0
 #define CONFIG_LIBTWOLAME_ENCODER 0
 #define CONFIG_LIBUTVIDEO_ENCODER 0
-#define CONFIG_LIBVO_AACENC_ENCODER 0
 #define CONFIG_LIBVO_AMRWBENC_ENCODER 0
 #define CONFIG_LIBVORBIS_ENCODER 0
 #define CONFIG_LIBVPX_VP8_ENCODER 0
 #define CONFIG_LIBVPX_VP9_ENCODER 0
 #define CONFIG_LIBWAVPACK_ENCODER 0
 #define CONFIG_LIBWEBP_ANIM_ENCODER 0
 #define CONFIG_LIBWEBP_ENCODER 0
 #define CONFIG_LIBX262_ENCODER 0
 #define CONFIG_LIBX264_ENCODER 0
 #define CONFIG_LIBX264RGB_ENCODER 0
 #define CONFIG_LIBX265_ENCODER 0
 #define CONFIG_LIBXAVS_ENCODER 0
 #define CONFIG_LIBXVID_ENCODER 0
-#define CONFIG_LIBAACPLUS_ENCODER 0
 #define CONFIG_LIBOPENH264_ENCODER 0
 #define CONFIG_H264_QSV_ENCODER 0
 #define CONFIG_NVENC_ENCODER 0
 #define CONFIG_NVENC_H264_ENCODER 0
 #define CONFIG_NVENC_HEVC_ENCODER 0
 #define CONFIG_HEVC_QSV_ENCODER 0
 #define CONFIG_LIBKVAZAAR_ENCODER 0
 #define CONFIG_MPEG2_QSV_ENCODER 0
 #define CONFIG_ACOMPRESSOR_FILTER 0
 #define CONFIG_ACROSSFADE_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
 #define CONFIG_AINTERLEAVE_FILTER 0
 #define CONFIG_ALIMITER_FILTER 0
 #define CONFIG_ALLPASS_FILTER 0
 #define CONFIG_AMERGE_FILTER 0
+#define CONFIG_AMETADATA_FILTER 0
 #define CONFIG_AMIX_FILTER 0
 #define CONFIG_ANEQUALIZER_FILTER 0
 #define CONFIG_ANULL_FILTER 0
 #define CONFIG_APAD_FILTER 0
 #define CONFIG_APERMS_FILTER 0
 #define CONFIG_APHASER_FILTER 0
 #define CONFIG_APULSATOR_FILTER 0
 #define CONFIG_AREALTIME_FILTER 0
@@ -1529,16 +1531,17 @@
 #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_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
 #define CONFIG_BANDREJECT_FILTER 0
 #define CONFIG_BASS_FILTER 0
 #define CONFIG_BIQUAD_FILTER 0
@@ -1592,16 +1595,17 @@
 #define CONFIG_BOXBLUR_FILTER 0
 #define CONFIG_CHROMAKEY_FILTER 0
 #define CONFIG_CODECVIEW_FILTER 0
 #define CONFIG_COLORBALANCE_FILTER 0
 #define CONFIG_COLORCHANNELMIXER_FILTER 0
 #define CONFIG_COLORKEY_FILTER 0
 #define CONFIG_COLORLEVELS_FILTER 0
 #define CONFIG_COLORMATRIX_FILTER 0
+#define CONFIG_CONVOLUTION_FILTER 0
 #define CONFIG_COPY_FILTER 0
 #define CONFIG_COVER_RECT_FILTER 0
 #define CONFIG_CROP_FILTER 0
 #define CONFIG_CROPDETECT_FILTER 0
 #define CONFIG_CURVES_FILTER 0
 #define CONFIG_DCTDNOIZ_FILTER 0
 #define CONFIG_DEBAND_FILTER 0
 #define CONFIG_DECIMATE_FILTER 0
@@ -1653,18 +1657,20 @@
 #define CONFIG_LENSCORRECTION_FILTER 0
 #define CONFIG_LUT3D_FILTER 0
 #define CONFIG_LUT_FILTER 0
 #define CONFIG_LUTRGB_FILTER 0
 #define CONFIG_LUTYUV_FILTER 0
 #define CONFIG_MASKEDMERGE_FILTER 0
 #define CONFIG_MCDEINT_FILTER 0
 #define CONFIG_MERGEPLANES_FILTER 0
+#define CONFIG_METADATA_FILTER 0
 #define CONFIG_MPDECIMATE_FILTER 0
 #define CONFIG_NEGATE_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
 #define CONFIG_PAD_FILTER 0
@@ -1703,18 +1709,20 @@
 #define CONFIG_SHUFFLEFRAMES_FILTER 0
 #define CONFIG_SHUFFLEPLANES_FILTER 0
 #define CONFIG_SIGNALSTATS_FILTER 0
 #define CONFIG_SMARTBLUR_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
 #define CONFIG_SWAPUV_FILTER 0
 #define CONFIG_TBLEND_FILTER 0
 #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
@@ -1745,26 +1753,28 @@
 #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_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_VAAPI_HWACCEL 0
 #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
 #define CONFIG_H264_D3D11VA_HWACCEL 0
 #define CONFIG_H264_DXVA2_HWACCEL 0
 #define CONFIG_H264_MMAL_HWACCEL 0
 #define CONFIG_H264_QSV_HWACCEL 0
@@ -1784,16 +1794,17 @@
 #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_MMAL_HWACCEL 0
 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
 #define CONFIG_MPEG4_VDPAU_HWACCEL 0
 #define CONFIG_MPEG4_VIDEOTOOLBOX_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
@@ -1989,16 +2000,17 @@
 #define CONFIG_ADX_PARSER 0
 #define CONFIG_BMP_PARSER 0
 #define CONFIG_CAVSVIDEO_PARSER 0
 #define CONFIG_COOK_PARSER 0
 #define CONFIG_DCA_PARSER 0
 #define CONFIG_DIRAC_PARSER 0
 #define CONFIG_DNXHD_PARSER 0
 #define CONFIG_DPX_PARSER 0
+#define CONFIG_DVAUDIO_PARSER 0
 #define CONFIG_DVBSUB_PARSER 0
 #define CONFIG_DVDSUB_PARSER 0
 #define CONFIG_DVD_NAV_PARSER 0
 #define CONFIG_FLAC_PARSER 0
 #define CONFIG_G729_PARSER 0
 #define CONFIG_GSM_PARSER 0
 #define CONFIG_H261_PARSER 0
 #define CONFIG_H263_PARSER 0
--- a/media/ffvpx/libavcodec/allcodecs.c
+++ b/media/ffvpx/libavcodec/allcodecs.c
@@ -96,16 +96,17 @@ void avcodec_register_all(void)
     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_MMAL,        mpeg4_mmal);
     REGISTER_HWACCEL(MPEG4_VAAPI,       mpeg4_vaapi);
     REGISTER_HWACCEL(MPEG4_VDPAU,       mpeg4_vdpau);
     REGISTER_HWACCEL(MPEG4_VIDEOTOOLBOX, mpeg4_videotoolbox);
     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);
@@ -142,29 +143,31 @@ void avcodec_register_all(void)
     REGISTER_DECODER(BINK,              bink);
     REGISTER_ENCDEC (BMP,               bmp);
     REGISTER_DECODER(BMV_VIDEO,         bmv_video);
     REGISTER_DECODER(BRENDER_PIX,       brender_pix);
     REGISTER_DECODER(C93,               c93);
     REGISTER_DECODER(CAVS,              cavs);
     REGISTER_DECODER(CDGRAPHICS,        cdgraphics);
     REGISTER_DECODER(CDXL,              cdxl);
+    REGISTER_DECODER(CFHD,              cfhd);
     REGISTER_ENCDEC (CINEPAK,           cinepak);
     REGISTER_ENCDEC (CLJR,              cljr);
     REGISTER_DECODER(CLLC,              cllc);
     REGISTER_ENCDEC (COMFORTNOISE,      comfortnoise);
     REGISTER_DECODER(CPIA,              cpia);
     REGISTER_DECODER(CSCD,              cscd);
     REGISTER_DECODER(CYUV,              cyuv);
     REGISTER_DECODER(DDS,               dds);
     REGISTER_DECODER(DFA,               dfa);
     REGISTER_DECODER(DIRAC,             dirac);
     REGISTER_ENCDEC (DNXHD,             dnxhd);
     REGISTER_ENCDEC (DPX,               dpx);
     REGISTER_DECODER(DSICINVIDEO,       dsicinvideo);
+    REGISTER_DECODER(DVAUDIO,           dvaudio);
     REGISTER_ENCDEC (DVVIDEO,           dvvideo);
     REGISTER_DECODER(DXA,               dxa);
     REGISTER_DECODER(DXTORY,            dxtory);
     REGISTER_DECODER(DXV,               dxv);
     REGISTER_DECODER(EACMV,             eacmv);
     REGISTER_DECODER(EAMAD,             eamad);
     REGISTER_DECODER(EATGQ,             eatgq);
     REGISTER_DECODER(EATGV,             eatgv);
@@ -229,16 +232,17 @@ void avcodec_register_all(void)
     REGISTER_DECODER(MOTIONPIXELS,      motionpixels);
 #if FF_API_XVMC
     REGISTER_DECODER(MPEG_XVMC,         mpeg_xvmc);
 #endif /* FF_API_XVMC */
     REGISTER_ENCDEC (MPEG1VIDEO,        mpeg1video);
     REGISTER_ENCDEC (MPEG2VIDEO,        mpeg2video);
     REGISTER_ENCDEC (MPEG4,             mpeg4);
     REGISTER_DECODER(MPEG4_CRYSTALHD,   mpeg4_crystalhd);
+    REGISTER_DECODER(MPEG4_MMAL,        mpeg4_mmal);
 #if FF_API_VDPAU
     REGISTER_DECODER(MPEG4_VDPAU,       mpeg4_vdpau);
 #endif
     REGISTER_DECODER(MPEGVIDEO,         mpegvideo);
 #if FF_API_VDPAU
     REGISTER_DECODER(MPEG_VDPAU,        mpeg_vdpau);
     REGISTER_DECODER(MPEG1_VDPAU,       mpeg1_vdpau);
 #endif
@@ -327,16 +331,17 @@ void avcodec_register_all(void)
     REGISTER_DECODER(VC1,               vc1);
     REGISTER_DECODER(VC1_CRYSTALHD,     vc1_crystalhd);
 #if FF_API_VDPAU
     REGISTER_DECODER(VC1_VDPAU,         vc1_vdpau);
 #endif
     REGISTER_DECODER(VC1IMAGE,          vc1image);
     REGISTER_DECODER(VC1_MMAL,          vc1_mmal);
     REGISTER_DECODER(VC1_QSV,           vc1_qsv);
+    REGISTER_ENCODER(VC2,               vc2);
     REGISTER_DECODER(VCR1,              vcr1);
     REGISTER_DECODER(VMDVIDEO,          vmdvideo);
     REGISTER_DECODER(VMNC,              vmnc);
     REGISTER_DECODER(VP3,               vp3);
     REGISTER_DECODER(VP5,               vp5);
     REGISTER_DECODER(VP6,               vp6);
     REGISTER_DECODER(VP6A,              vp6a);
     REGISTER_DECODER(VP6F,              vp6f);
@@ -570,32 +575,30 @@ void avcodec_register_all(void)
     REGISTER_ENCDEC (LIBOPENJPEG,       libopenjpeg);
     REGISTER_ENCDEC (LIBOPUS,           libopus);
     REGISTER_ENCDEC (LIBSCHROEDINGER,   libschroedinger);
     REGISTER_ENCODER(LIBSHINE,          libshine);
     REGISTER_ENCDEC (LIBSPEEX,          libspeex);
     REGISTER_ENCODER(LIBTHEORA,         libtheora);
     REGISTER_ENCODER(LIBTWOLAME,        libtwolame);
     REGISTER_ENCDEC (LIBUTVIDEO,        libutvideo);
-    REGISTER_ENCODER(LIBVO_AACENC,      libvo_aacenc);
     REGISTER_ENCODER(LIBVO_AMRWBENC,    libvo_amrwbenc);
     REGISTER_ENCDEC (LIBVORBIS,         libvorbis);
     REGISTER_ENCDEC (LIBVPX_VP8,        libvpx_vp8);
     REGISTER_ENCDEC (LIBVPX_VP9,        libvpx_vp9);
     REGISTER_ENCODER(LIBWAVPACK,        libwavpack);
     REGISTER_ENCODER(LIBWEBP_ANIM,      libwebp_anim);  /* preferred over libwebp */
     REGISTER_ENCODER(LIBWEBP,           libwebp);
     REGISTER_ENCODER(LIBX262,           libx262);
     REGISTER_ENCODER(LIBX264,           libx264);
     REGISTER_ENCODER(LIBX264RGB,        libx264rgb);
     REGISTER_ENCODER(LIBX265,           libx265);
     REGISTER_ENCODER(LIBXAVS,           libxavs);
     REGISTER_ENCODER(LIBXVID,           libxvid);
     REGISTER_DECODER(LIBZVBI_TELETEXT,  libzvbi_teletext);
-    REGISTER_ENCODER(LIBAACPLUS,        libaacplus);
 
     /* 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 */
@@ -615,16 +618,17 @@ void avcodec_register_all(void)
     REGISTER_PARSER(ADX,                adx);
     REGISTER_PARSER(BMP,                bmp);
     REGISTER_PARSER(CAVSVIDEO,          cavsvideo);
     REGISTER_PARSER(COOK,               cook);
     REGISTER_PARSER(DCA,                dca);
     REGISTER_PARSER(DIRAC,              dirac);
     REGISTER_PARSER(DNXHD,              dnxhd);
     REGISTER_PARSER(DPX,                dpx);
+    REGISTER_PARSER(DVAUDIO,            dvaudio);
     REGISTER_PARSER(DVBSUB,             dvbsub);
     REGISTER_PARSER(DVDSUB,             dvdsub);
     REGISTER_PARSER(DVD_NAV,            dvd_nav);
     REGISTER_PARSER(FLAC,               flac);
     REGISTER_PARSER(G729,               g729);
     REGISTER_PARSER(GSM,                gsm);
     REGISTER_PARSER(H261,               h261);
     REGISTER_PARSER(H263,               h263);
--- a/media/ffvpx/libavcodec/avcodec.h
+++ b/media/ffvpx/libavcodec/avcodec.h
@@ -310,16 +310,17 @@ enum AVCodecID {
     AV_CODEC_ID_YUV4,
     AV_CODEC_ID_AVRN,
     AV_CODEC_ID_CPIA,
     AV_CODEC_ID_XFACE,
     AV_CODEC_ID_SNOW,
     AV_CODEC_ID_SMVJPEG,
     AV_CODEC_ID_APNG,
     AV_CODEC_ID_DAALA,
+    AV_CODEC_ID_CFHD,
 
     /* various PCM "codecs" */
     AV_CODEC_ID_FIRST_AUDIO = 0x10000,     ///< A dummy id pointing at the start of audio codecs
     AV_CODEC_ID_PCM_S16LE = 0x10000,
     AV_CODEC_ID_PCM_S16BE,
     AV_CODEC_ID_PCM_U16LE,
     AV_CODEC_ID_PCM_U16BE,
     AV_CODEC_ID_PCM_S8,
@@ -1818,39 +1819,42 @@ typedef struct AVCodecContext {
     float b_quant_factor;
 
 #if FF_API_RC_STRATEGY
     /** @deprecated use codec private option instead */
     attribute_deprecated int rc_strategy;
 #define FF_RC_STRATEGY_XVID 1
 #endif
 
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int b_frame_strategy;
+#endif
 
     /**
      * qscale offset between IP and B-frames
      * - encoding: Set by user.
      * - decoding: unused
      */
     float b_quant_offset;
 
     /**
      * Size of the frame reordering buffer in the decoder.
      * For MPEG-2 it is 1 IPB or 0 low delay IP.
      * - encoding: Set by libavcodec.
      * - decoding: Set by libavcodec.
      */
     int has_b_frames;
 
-    /**
-     * 0-> h263 quant 1-> mpeg quant
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int mpeg_quant;
+#endif
 
     /**
      * qscale factor between P and I-frames
      * If > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset).
      * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).
      * - encoding: Set by user.
      * - decoding: unused
      */
@@ -1899,25 +1903,25 @@ typedef struct AVCodecContext {
     float dark_masking;
 
     /**
      * slice count
      * - encoding: Set by libavcodec.
      * - decoding: Set by user (or 0).
      */
     int slice_count;
-    /**
-     * prediction method (needed for huffyuv)
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
      int prediction_method;
 #define FF_PRED_LEFT   0
 #define FF_PRED_PLANE  1
 #define FF_PRED_MEDIAN 2
+#endif
 
     /**
      * slice offsets in the frame in bytes
      * - encoding: Set/allocated by libavcodec.
      * - decoding: Set/allocated by user (or NULL).
      */
     int *slice_offset;
 
@@ -1980,22 +1984,21 @@ typedef struct AVCodecContext {
 
     /**
      * amount of previous MV predictors (2a+1 x 2a+1 square)
      * - encoding: Set by user.
      * - decoding: unused
      */
     int last_predictor_count;
 
-    /**
-     * prepass for motion estimation
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int pre_me;
+#endif
 
     /**
      * motion estimation prepass comparison function
      * - encoding: Set by user.
      * - decoding: unused
      */
     int me_pre_cmp;
 
@@ -2094,30 +2097,25 @@ typedef struct AVCodecContext {
 
     /**
      * custom inter quantization matrix
      * - encoding: Set by user, can be NULL.
      * - decoding: Set by libavcodec.
      */
     uint16_t *inter_matrix;
 
-    /**
-     * scene change detection threshold
-     * 0 is default, larger means fewer detected scene changes.
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int scenechange_threshold;
 
-    /**
-     * noise reduction strength
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int noise_reduction;
+#endif
 
 #if FF_API_MPV_OPT
     /**
      * @deprecated this field is unused
      */
     attribute_deprecated
     int me_threshold;
 
@@ -2166,57 +2164,56 @@ typedef struct AVCodecContext {
 
     /**
      * maximum MB lagrange multipler
      * - encoding: Set by user.
      * - decoding: unused
      */
     int mb_lmax;
 
-    /**
-     *
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+#if FF_API_PRIVATE_OPT
+    /**
+     * @deprecated use encoder private options instead
+     */
+    attribute_deprecated
     int me_penalty_compensation;
+#endif
 
     /**
      *
      * - encoding: Set by user.
      * - decoding: unused
      */
     int bidir_refine;
 
-    /**
-     *
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int brd_scale;
+#endif
 
     /**
      * minimum GOP size
      * - encoding: Set by user.
      * - decoding: unused
      */
     int keyint_min;
 
     /**
      * number of reference frames
      * - encoding: Set by user.
      * - decoding: Set by lavc.
      */
     int refs;
 
-    /**
-     * chroma qp offset from luma
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int chromaoffset;
+#endif
 
 #if FF_API_UNUSED_MEMBERS
     /**
      * Multiplied by qscale for each frame and added to scene_change_score.
      * - encoding: Set by user.
      * - decoding: unused
      */
     attribute_deprecated int scenechange_factor;
@@ -2225,22 +2222,21 @@ typedef struct AVCodecContext {
     /**
      *
      * Note: Value depends upon the compare function used for fullpel ME.
      * - encoding: Set by user.
      * - decoding: unused
      */
     int mv0_threshold;
 
-    /**
-     * Adjust sensitivity of b_frame_strategy 1.
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int b_sensitivity;
+#endif
 
     /**
      * Chromaticity coordinates of the source primaries.
      * - encoding: Set by user
      * - decoding: Set by libavcodec
      */
     enum AVColorPrimaries color_primaries;
 
@@ -2575,111 +2571,99 @@ typedef struct AVCodecContext {
 #endif /* FF_API_UNUSED_MEMBERS */
     /**
      * @deprecated use encoder private options instead
      */
     attribute_deprecated
     int coder_type;
 #endif /* FF_API_CODER_TYPE */
 
-    /**
-     * context model
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int context_model;
+#endif
 
 #if FF_API_MPV_OPT
     /**
      * @deprecated use encoder private options instead
      */
     attribute_deprecated
     int lmin;
 
     /**
      * @deprecated use encoder private options instead
      */
     attribute_deprecated
     int lmax;
 #endif
 
-    /**
-     * frame skip threshold
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int frame_skip_threshold;
 
-    /**
-     * frame skip factor
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int frame_skip_factor;
 
-    /**
-     * frame skip exponent
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int frame_skip_exp;
 
-    /**
-     * frame skip comparison function
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int frame_skip_cmp;
+#endif /* FF_API_PRIVATE_OPT */
 
     /**
      * trellis RD quantization
      * - encoding: Set by user.
      * - decoding: unused
      */
     int trellis;
 
-    /**
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int min_prediction_order;
 
-    /**
-     * - encoding: Set by user.
-     * - decoding: unused
-     */
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int max_prediction_order;
 
-    /**
-     * GOP timecode frame start number
-     * - encoding: Set by user, in non drop frame format
-     * - decoding: Set by libavcodec (timecode in the 25 bits format, -1 if unset)
-     */
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int64_t timecode_frame_start;
+#endif
 
 #if FF_API_RTP_CALLBACK
     /**
      * @deprecated unused
      */
     /* The RTP callback: This function is called    */
     /* every time the encoder has a packet to send. */
     /* It depends on the encoder if the data starts */
     /* with a Start Code (it should). H.263 does.   */
     /* mb_nb contains the number of macroblocks     */
     /* encoded in the RTP payload.                  */
     attribute_deprecated
     void (*rtp_callback)(struct AVCodecContext *avctx, void *data, int size, int mb_nb);
 #endif
 
+#if FF_API_PRIVATE_OPT
+    /** @deprecated use encoder private options instead */
+    attribute_deprecated
     int rtp_payload_size;   /* The size of the RTP payload: the coder will  */
                             /* do its best to deliver a chunk with size     */
                             /* below rtp_payload_size, the chunk will start */
                             /* with a start code on some codecs like H.263. */
                             /* This doesn't take account of any particular  */
                             /* headers inside the transmitted RTP payload.  */
+#endif
 
 #if FF_API_STAT_BITS
     /* statistics, used for 2-pass encoding */
     attribute_deprecated
     int mv_bits;
     attribute_deprecated
     int header_bits;
     attribute_deprecated
--- a/media/ffvpx/libavcodec/codec_desc.c
+++ b/media/ffvpx/libavcodec/codec_desc.c
@@ -1516,16 +1516,23 @@ static const AVCodecDescriptor codec_des
     {
         .id        = AV_CODEC_ID_APNG,
         .type      = AVMEDIA_TYPE_VIDEO,
         .name      = "apng",
         .long_name = NULL_IF_CONFIG_SMALL("APNG (Animated Portable Network Graphics) image"),
         .props     = AV_CODEC_PROP_LOSSLESS,
         .mime_types= MT("image/png"),
     },
+    {
+        .id        = AV_CODEC_ID_CFHD,
+        .type      = AVMEDIA_TYPE_VIDEO,
+        .name      = "cfhd",
+        .long_name = NULL_IF_CONFIG_SMALL("Cineform HD"),
+        .props     = AV_CODEC_PROP_LOSSY,
+    },
 
     /* various PCM "codecs" */
     {
         .id        = AV_CODEC_ID_PCM_S16LE,
         .type      = AVMEDIA_TYPE_AUDIO,
         .name      = "pcm_s16le",
         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16-bit little-endian"),
         .props     = AV_CODEC_PROP_LOSSLESS,
@@ -2441,16 +2448,17 @@ static const AVCodecDescriptor codec_des
         .props     = AV_CODEC_PROP_LOSSY,
     },
     {
         .id        = AV_CODEC_ID_AAC_LATM,
         .type      = AVMEDIA_TYPE_AUDIO,
         .name      = "aac_latm",
         .long_name = NULL_IF_CONFIG_SMALL("AAC LATM (Advanced Audio Coding LATM syntax)"),
         .props     = AV_CODEC_PROP_LOSSY,
+        .profiles  = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
     },
     {
         .id        = AV_CODEC_ID_QDMC,
         .type      = AVMEDIA_TYPE_AUDIO,
         .name      = "qdmc",
         .long_name = NULL_IF_CONFIG_SMALL("QDesign Music"),
         .props     = AV_CODEC_PROP_LOSSY,
     },
--- a/media/ffvpx/libavcodec/dummy_funcs.c
+++ b/media/ffvpx/libavcodec/dummy_funcs.c
@@ -33,16 +33,17 @@ AVHWAccel ff_mpeg1_vdpau_hwaccel;
 AVHWAccel ff_mpeg1_videotoolbox_hwaccel;
 AVHWAccel ff_mpeg2_xvmc_hwaccel;
 AVHWAccel ff_mpeg2_d3d11va_hwaccel;
 AVHWAccel ff_mpeg2_dxva2_hwaccel;
 AVHWAccel ff_mpeg2_qsv_hwaccel;
 AVHWAccel ff_mpeg2_vaapi_hwaccel;
 AVHWAccel ff_mpeg2_vdpau_hwaccel;
 AVHWAccel ff_mpeg2_videotoolbox_hwaccel;
+AVHWAccel ff_mpeg4_mmal_hwaccel;
 AVHWAccel ff_mpeg4_vaapi_hwaccel;
 AVHWAccel ff_mpeg4_vdpau_hwaccel;
 AVHWAccel ff_mpeg4_videotoolbox_hwaccel;
 AVHWAccel ff_vc1_d3d11va_hwaccel;
 AVHWAccel ff_vc1_dxva2_hwaccel;
 AVHWAccel ff_vc1_vaapi_hwaccel;
 AVHWAccel ff_vc1_vdpau_hwaccel;
 AVHWAccel ff_vc1_qsv_hwaccel;
@@ -87,16 +88,17 @@ AVCodec ff_bink_decoder;
 AVCodec ff_bmp_encoder;
 AVCodec ff_bmp_decoder;
 AVCodec ff_bmv_video_decoder;
 AVCodec ff_brender_pix_decoder;
 AVCodec ff_c93_decoder;
 AVCodec ff_cavs_decoder;
 AVCodec ff_cdgraphics_decoder;
 AVCodec ff_cdxl_decoder;
+AVCodec ff_cfhd_decoder;
 AVCodec ff_cinepak_encoder;
 AVCodec ff_cinepak_decoder;
 AVCodec ff_cljr_encoder;
 AVCodec ff_cljr_decoder;
 AVCodec ff_cllc_decoder;
 AVCodec ff_comfortnoise_encoder;
 AVCodec ff_comfortnoise_decoder;
 AVCodec ff_cpia_decoder;
@@ -105,16 +107,17 @@ AVCodec ff_cyuv_decoder;
 AVCodec ff_dds_decoder;
 AVCodec ff_dfa_decoder;
 AVCodec ff_dirac_decoder;
 AVCodec ff_dnxhd_encoder;
 AVCodec ff_dnxhd_decoder;
 AVCodec ff_dpx_encoder;
 AVCodec ff_dpx_decoder;
 AVCodec ff_dsicinvideo_decoder;
+AVCodec ff_dvaudio_decoder;
 AVCodec ff_dvvideo_encoder;
 AVCodec ff_dvvideo_decoder;
 AVCodec ff_dxa_decoder;
 AVCodec ff_dxtory_decoder;
 AVCodec ff_eacmv_decoder;
 AVCodec ff_eamad_decoder;
 AVCodec ff_eatgq_decoder;
 AVCodec ff_eatgv_decoder;
@@ -193,16 +196,17 @@ AVCodec ff_motionpixels_decoder;
 AVCodec ff_mpeg_xvmc_decoder;
 AVCodec ff_mpeg1video_encoder;
 AVCodec ff_mpeg1video_decoder;
 AVCodec ff_mpeg2video_encoder;
 AVCodec ff_mpeg2video_decoder;
 AVCodec ff_mpeg4_encoder;
 AVCodec ff_mpeg4_decoder;
 AVCodec ff_mpeg4_crystalhd_decoder;
+AVCodec ff_mpeg4_mmal_decoder;
 AVCodec ff_mpeg4_vdpau_decoder;
 AVCodec ff_mpegvideo_decoder;
 AVCodec ff_mpeg_vdpau_decoder;
 AVCodec ff_mpeg1_vdpau_decoder;
 AVCodec ff_mpeg2_crystalhd_decoder;
 AVCodec ff_mpeg2_qsv_decoder;
 AVCodec ff_msa1_decoder;
 AVCodec ff_msmpeg4_crystalhd_decoder;
@@ -310,16 +314,17 @@ AVCodec ff_v410_encoder;
 AVCodec ff_v410_decoder;
 AVCodec ff_vb_decoder;
 AVCodec ff_vble_decoder;
 AVCodec ff_vc1_decoder;
 AVCodec ff_vc1_crystalhd_decoder;
 AVCodec ff_vc1_vdpau_decoder;
 AVCodec ff_vc1image_decoder;
 AVCodec ff_vc1_qsv_decoder;
+AVCodec ff_vc2_encoder;
 AVCodec ff_vcr1_decoder;
 AVCodec ff_vmdvideo_decoder;
 AVCodec ff_vmnc_decoder;
 AVCodec ff_vp3_decoder;
 AVCodec ff_vp5_decoder;
 AVCodec ff_vp6_decoder;
 AVCodec ff_vp6a_decoder;
 AVCodec ff_vp6f_decoder;
@@ -667,16 +672,17 @@ AVCodecParser ff_ac3_parser;
 AVCodecParser ff_adx_parser;
 AVCodecParser ff_bmp_parser;
 AVCodecParser ff_cavsvideo_parser;
 AVCodecParser ff_cook_parser;
 AVCodecParser ff_dca_parser;
 AVCodecParser ff_dirac_parser;
 AVCodecParser ff_dnxhd_parser;
 AVCodecParser ff_dpx_parser;
+AVCodecParser ff_dvaudio_parser;
 AVCodecParser ff_dvbsub_parser;
 AVCodecParser ff_dvdsub_parser;
 AVCodecParser ff_dvd_nav_parser;
 AVCodecParser ff_flac_parser;
 AVCodecParser ff_g729_parser;
 AVCodecParser ff_gsm_parser;
 AVCodecParser ff_h261_parser;
 AVCodecParser ff_h263_parser;
--- a/media/ffvpx/libavcodec/frame_thread_encoder.h
+++ b/media/ffvpx/libavcodec/frame_thread_encoder.h
@@ -13,14 +13,18 @@
  * 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
  */
 
+#ifndef AVCODEC_FRAME_THREAD_ENCODER_H
+#define AVCODEC_FRAME_THREAD_ENCODER_H
+
 #include "avcodec.h"
 
 int ff_frame_thread_encoder_init(AVCodecContext *avctx, AVDictionary *options);
 void ff_frame_thread_encoder_free(AVCodecContext *avctx);
 int ff_thread_video_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet_ptr);
 
+#endif /* AVCODEC_FRAME_THREAD_ENCODER_H */
--- a/media/ffvpx/libavcodec/imgconvert.c
+++ b/media/ffvpx/libavcodec/imgconvert.c
@@ -19,40 +19,35 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 /**
  * @file
  * misc image conversion routines
  */
 
-/* TODO:
- * - write 'ffimg' program to test all the image related stuff
- * - move all api to slice based system
- * - integrate deinterlacing, postprocessing and scaling in the conversion process
- */
-
 #include "avcodec.h"
-#include "imgconvert.h"
 #include "internal.h"
 #include "mathops.h"
 #include "libavutil/avassert.h"
 #include "libavutil/colorspace.h"
 #include "libavutil/common.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/internal.h"
 #include "libavutil/imgutils.h"
 
+#if FF_API_GETCHROMA
 void avcodec_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int *v_shift)
 {
     const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
     av_assert0(desc);
     *h_shift = desc->log2_chroma_w;
     *v_shift = desc->log2_chroma_h;
 }
+#endif
 
 int avcodec_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt,
                              enum AVPixelFormat src_pix_fmt,
                              int has_alpha)
 {
     return av_get_pix_fmt_loss(dst_pix_fmt, src_pix_fmt, has_alpha);
 }
 
@@ -84,102 +79,18 @@ enum AVPixelFormat avcodec_find_best_pix
     enum AVPixelFormat best = AV_PIX_FMT_NONE;
 
     for(i=0; pix_fmt_list[i] != AV_PIX_FMT_NONE; i++)
         best = avcodec_find_best_pix_fmt_of_2(best, pix_fmt_list[i], src_pix_fmt, has_alpha, loss_ptr);
 
     return best;
 }
 
-/* 2x2 -> 1x1 */
-void ff_shrink22(uint8_t *dst, int dst_wrap,
-                     const uint8_t *src, int src_wrap,
-                     int width, int height)
-{
-    int w;
-    const uint8_t *s1, *s2;
-    uint8_t *d;
-
-    for(;height > 0; height--) {
-        s1 = src;
-        s2 = s1 + src_wrap;
-        d = dst;
-        for(w = width;w >= 4; w-=4) {
-            d[0] = (s1[0] + s1[1] + s2[0] + s2[1] + 2) >> 2;
-            d[1] = (s1[2] + s1[3] + s2[2] + s2[3] + 2) >> 2;
-            d[2] = (s1[4] + s1[5] + s2[4] + s2[5] + 2) >> 2;
-            d[3] = (s1[6] + s1[7] + s2[6] + s2[7] + 2) >> 2;
-            s1 += 8;
-            s2 += 8;
-            d += 4;
-        }
-        for(;w > 0; w--) {
-            d[0] = (s1[0] + s1[1] + s2[0] + s2[1] + 2) >> 2;
-            s1 += 2;
-            s2 += 2;
-            d++;
-        }
-        src += 2 * src_wrap;
-        dst += dst_wrap;
-    }
-}
-
-/* 4x4 -> 1x1 */
-void ff_shrink44(uint8_t *dst, int dst_wrap,
-                     const uint8_t *src, int src_wrap,
-                     int width, int height)
-{
-    int w;
-    const uint8_t *s1, *s2, *s3, *s4;
-    uint8_t *d;
-
-    for(;height > 0; height--) {
-        s1 = src;
-        s2 = s1 + src_wrap;
-        s3 = s2 + src_wrap;
-        s4 = s3 + src_wrap;
-        d = dst;
-        for(w = width;w > 0; w--) {
-            d[0] = (s1[0] + s1[1] + s1[2] + s1[3] +
-                    s2[0] + s2[1] + s2[2] + s2[3] +
-                    s3[0] + s3[1] + s3[2] + s3[3] +
-                    s4[0] + s4[1] + s4[2] + s4[3] + 8) >> 4;
-            s1 += 4;
-            s2 += 4;
-            s3 += 4;
-            s4 += 4;
-            d++;
-        }
-        src += 4 * src_wrap;
-        dst += dst_wrap;
-    }
-}
-
-/* 8x8 -> 1x1 */
-void ff_shrink88(uint8_t *dst, int dst_wrap,
-                     const uint8_t *src, int src_wrap,
-                     int width, int height)
-{
-    int w, i;
-
-    for(;height > 0; height--) {
-        for(w = width;w > 0; w--) {
-            int tmp=0;
-            for(i=0; i<8; i++){
-                tmp += src[0] + src[1] + src[2] + src[3] + src[4] + src[5] + src[6] + src[7];
-                src += src_wrap;
-            }
-            *(dst++) = (tmp + 32)>>6;
-            src += 8 - 8*src_wrap;
-        }
-        src += 8*src_wrap - 8*width;
-        dst += dst_wrap - width;
-    }
-}
-
+#if FF_API_AVPICTURE
+FF_DISABLE_DEPRECATION_WARNINGS
 /* return true if yuv planar */
 static inline int is_yuv_planar(const AVPixFmtDescriptor *desc)
 {
     int i;
     int planes[4] = { 0 };
 
     if (     desc->flags & AV_PIX_FMT_FLAG_RGB
         || !(desc->flags & AV_PIX_FMT_FLAG_PLANAR))
@@ -191,19 +102,16 @@ static inline int is_yuv_planar(const AV
 
     /* if there is an unused plane, the format is not planar */
     for (i = 0; i < desc->nb_components; i++)
         if (!planes[i])
             return 0;
     return 1;
 }
 
-#if FF_API_AVPICTURE
-FF_DISABLE_DEPRECATION_WARNINGS
-
 int av_picture_crop(AVPicture *dst, const AVPicture *src,
                     enum AVPixelFormat pix_fmt, int top_band, int left_band)
 {
     const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
     int y_shift;
     int x_shift;
     int max_step[4];
 
deleted file mode 100644
--- a/media/ffvpx/libavcodec/imgconvert.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * 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
- */
-
-#ifndef AVCODEC_IMGCONVERT_H
-#define AVCODEC_IMGCONVERT_H
-
-#include <stdint.h>
-
-#include "version.h"
-
-/* 1/2^n downscaling functions */
-void ff_shrink22(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
-void ff_shrink44(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
-void ff_shrink88(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
-
-#endif /* AVCODEC_IMGCONVERT_H */
--- a/media/ffvpx/libavcodec/motion_est.h
+++ b/media/ffvpx/libavcodec/motion_est.h
@@ -13,28 +13,32 @@
  * 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
  */
 
-#ifndef AVCODEC_MOTIONEST_H
-#define AVCODEC_MOTIONEST_H
+#ifndef AVCODEC_MOTION_EST_H
+#define AVCODEC_MOTION_EST_H
 
 #include <stdint.h>
 
 #include "avcodec.h"
 #include "hpeldsp.h"
 #include "qpeldsp.h"
 
 struct MpegEncContext;
 
+#if ARCH_IA64 // Limit static arrays to avoid gcc failing "short data segment overflowed"
+#define MAX_MV 1024
+#else
 #define MAX_MV 4096
+#endif
 #define MAX_DMV (2*MAX_MV)
 #define ME_MAP_SIZE 64
 
 #define FF_ME_ZERO 0
 #define FF_ME_EPZS 1
 #define FF_ME_XONE 2
 
 /**
@@ -123,9 +127,9 @@ int ff_get_mb_score(struct MpegEncContex
 int ff_get_best_fcode(struct MpegEncContext *s,
                       int16_t (*mv_table)[2], int type);
 
 void ff_fix_long_p_mvs(struct MpegEncContext *s);
 void ff_fix_long_mvs(struct MpegEncContext *s, uint8_t *field_select_table,
                      int field_select, int16_t (*mv_table)[2], int f_code,
                      int type, int truncate);
 
-#endif /* AVCODEC_MOTIONEST_H */
+#endif /* AVCODEC_MOTION_EST_H */
--- a/media/ffvpx/libavcodec/mpegvideo.h
+++ b/media/ffvpx/libavcodec/mpegvideo.h
@@ -251,16 +251,18 @@ typedef struct MpegEncContext {
     int16_t (*p_field_mv_table[2][2])[2];   ///< MV table (2MV per MB) interlaced p-frame encoding
     int16_t (*b_field_mv_table[2][2][2])[2];///< MV table (4MV per MB) interlaced b-frame encoding
     uint8_t (*p_field_select_table[2]);
     uint8_t (*b_field_select_table[2][2]);
 #if FF_API_MOTION_EST
     int me_method;                       ///< ME algorithm
 #endif
     int motion_est;                      ///< ME algorithm
+    int me_penalty_compensation;
+    int me_pre;                          ///< prepass for motion estimation
     int mv_dir;
 #define MV_DIR_FORWARD   1
 #define MV_DIR_BACKWARD  2
 #define MV_DIRECT        4 ///< bidirectional mode where the difference equals the MV of the last P/S/I-Frame (mpeg4)
     int mv_type;
 #define MV_TYPE_16X16       0   ///< 1 vector for the whole mb
 #define MV_TYPE_8X8         1   ///< 4 vectors (h263, mpeg4 4MV)
 #define MV_TYPE_16X8        2   ///< 2 vectors, one per 16x8 block
@@ -414,16 +416,17 @@ typedef struct MpegEncContext {
 
     /* RV10 specific */
     int rv10_version; ///< RV10 version: 0 or 3
     int rv10_first_dc_coded[3];
 
     /* MJPEG specific */
     struct MJpegContext *mjpeg_ctx;
     int esc_pos;
+    int pred;
 
     /* MSMPEG4 specific */
     int mv_table_index;
     int rl_table_index;
     int rl_chroma_table_index;
     int dc_table_index;
     int use_skip_mb_code;
     int slice_height;      ///< in macroblocks
@@ -448,21 +451,23 @@ typedef struct MpegEncContext {
 
     /* MPEG-2-specific - I wished not to have to support this mess. */
     int progressive_sequence;
     int mpeg_f_code[2][2];
 
     // picture structure defines are loaded from mpegutils.h
     int picture_structure;
 
+    int64_t timecode_frame_start; ///< GOP timecode frame start number, in non drop frame format
     int intra_dc_precision;
     int frame_pred_frame_dct;
     int top_field_first;
     int concealment_motion_vectors;
     int q_scale_type;
+    int brd_scale;
     int intra_vlc_format;
     int alternate_scan;
     int seq_disp_ext;
     int repeat_first_field;
     int chroma_420_type;
     int chroma_format;
 #define CHROMA_420 1
 #define CHROMA_422 2
@@ -474,16 +479,17 @@ typedef struct MpegEncContext {
     int full_pel[2];
     int interlaced_dct;
     int first_field;         ///< is 1 for the first field of a field picture 0 otherwise
     int drop_frame_timecode; ///< timecode is in drop frame format.
     int scan_offset;         ///< reserve space for SVCD scan offset user data.
 
     /* RTP specific */
     int rtp_mode;
+    int rtp_payload_size;
 
     char *tc_opt_str;        ///< timecode option string
     AVTimecode tc;           ///< timecode context
 
     uint8_t *ptr_lastgob;
     int swap_uv;             //vcr2 codec is an MPEG-2 variant with U and V swapped
     int pack_pblocks;        //xvmc needs to keep blocks without gaps.
     int16_t (*pblocks[12])[64];
@@ -542,37 +548,65 @@ typedef struct MpegEncContext {
     int context_reinit;
 
     ERContext er;
 
     int error_rate;
 
     /* temporary frames used by b_frame_strategy = 2 */
     AVFrame *tmp_frames[MAX_B_FRAMES + 2];
+    int b_frame_strategy;
+    int b_sensitivity;
+
+    /* frame skip options for encoding */
+    int frame_skip_threshold;
+    int frame_skip_factor;
+    int frame_skip_exp;
+    int frame_skip_cmp;
+
+    int scenechange_threshold;
+    int noise_reduction;
 } MpegEncContext;
 
 /* mpegvideo_enc common options */
 #define FF_MPV_FLAG_SKIP_RD      0x0001
 #define FF_MPV_FLAG_STRICT_GOP   0x0002
 #define FF_MPV_FLAG_QP_RD        0x0004
 #define FF_MPV_FLAG_CBP_RD       0x0008
 #define FF_MPV_FLAG_NAQ          0x0010
 #define FF_MPV_FLAG_MV0          0x0020
 
 enum rc_strategy {
     MPV_RC_STRATEGY_FFMPEG,
     MPV_RC_STRATEGY_XVID,
     NB_MPV_RC_STRATEGY
 };
 
+#define FF_MPV_OPT_CMP_FUNC \
+{ "sad",    "Sum of absolute differences, fast", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_SAD }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
+{ "sse",    "Sum of squared errors", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_SSE }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
+{ "satd",   "Sum of absolute Hadamard transformed differences", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_SATD }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
+{ "dct",    "Sum of absolute DCT transformed differences", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_DCT }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
+{ "psnr",   "Sum of squared quantization errors, low quality", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_PSNR }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
+{ "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" }
+
 #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" },\
 { "skip_rd",        "RD optimal MB level residual skipping", 0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_SKIP_RD },    0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
 { "strict_gop",     "Strictly enforce gop size",             0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_STRICT_GOP }, 0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
 { "qp_rd",          "Use rate distortion optimization for qp selection", 0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_QP_RD },  0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
 { "cbp_rd",         "use rate distortion optimization for CBP",          0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_CBP_RD }, 0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
 { "naq",            "normalize adaptive quantization",                   0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_NAQ },    0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
 { "mv0",            "always try a mb with mv=<0,0>",                     0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_MV0 },    0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
 { "luma_elim_threshold",   "single coefficient elimination threshold for luminance (negative values also consider dc coefficient)",\
@@ -601,16 +635,29 @@ enum rc_strategy {
 {"rc_strategy", "ratecontrol method",                               FF_MPV_OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.i64 = MPV_RC_STRATEGY_FFMPEG }, 0, NB_MPV_RC_STRATEGY-1, FF_MPV_OPT_FLAGS, "rc_strategy" },   \
     { "ffmpeg", "default native rate control", 0, AV_OPT_TYPE_CONST, { .i64 = MPV_RC_STRATEGY_FFMPEG }, 0, 0, FF_MPV_OPT_FLAGS, "rc_strategy" }, \
     { "xvid",   "libxvid (2 pass only)",       0, AV_OPT_TYPE_CONST, { .i64 = MPV_RC_STRATEGY_XVID },   0, 0, FF_MPV_OPT_FLAGS, "rc_strategy" }, \
 {"motion_est", "motion estimation algorithm",                       FF_MPV_OFFSET(motion_est), AV_OPT_TYPE_INT, {.i64 = FF_ME_EPZS }, FF_ME_ZERO, FF_ME_XONE, FF_MPV_OPT_FLAGS, "motion_est" },   \
 { "zero", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = FF_ME_ZERO }, 0, 0, FF_MPV_OPT_FLAGS, "motion_est" }, \
 { "epzs", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = FF_ME_EPZS }, 0, 0, FF_MPV_OPT_FLAGS, "motion_est" }, \
 { "xone", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = FF_ME_XONE }, 0, 0, FF_MPV_OPT_FLAGS, "motion_est" }, \
 { "force_duplicated_matrix", "Always write luma and chroma matrix for mjpeg, useful for rtp streaming.", FF_MPV_OFFSET(force_duplicated_matrix), AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1, FF_MPV_OPT_FLAGS },   \
+{"b_strategy", "Strategy to choose between I/P/B-frames",           FF_MPV_OFFSET(b_frame_strategy), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 2, FF_MPV_OPT_FLAGS }, \
+{"b_sensitivity", "Adjust sensitivity of b_frame_strategy 1",       FF_MPV_OFFSET(b_sensitivity), AV_OPT_TYPE_INT, {.i64 = 40 }, 1, INT_MAX, FF_MPV_OPT_FLAGS }, \
+{"brd_scale", "Downscale frames for dynamic B-frame decision",      FF_MPV_OFFSET(brd_scale), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 3, FF_MPV_OPT_FLAGS }, \
+{"skip_threshold", "Frame skip threshold",                          FF_MPV_OFFSET(frame_skip_threshold), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
+{"skip_factor", "Frame skip factor",                                FF_MPV_OFFSET(frame_skip_factor), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
+{"skip_exp", "Frame skip exponent",                                 FF_MPV_OFFSET(frame_skip_exp), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
+{"skip_cmp", "Frame skip compare function",                         FF_MPV_OFFSET(frame_skip_cmp), AV_OPT_TYPE_INT, {.i64 = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
+{"sc_threshold", "Scene change threshold",                          FF_MPV_OFFSET(scenechange_threshold), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
+{"noise_reduction", "Noise reduction",                              FF_MPV_OFFSET(noise_reduction), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
+{"mpeg_quant", "Use MPEG quantizers instead of H.263",              FF_MPV_OFFSET(mpeg_quant), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, FF_MPV_OPT_FLAGS }, \
+{"ps", "RTP payload size in bytes",                             FF_MPV_OFFSET(rtp_payload_size), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
+{"mepc", "Motion estimation bitrate penalty compensation (1.0 = 256)", FF_MPV_OFFSET(me_penalty_compensation), AV_OPT_TYPE_INT, {.i64 = 256 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
+{"mepre", "pre motion estimation", FF_MPV_OFFSET(me_pre), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
 
 extern const AVOption ff_mpv_generic_options[];
 
 /**
  * Set the given MpegEncContext to common defaults (same for encoding
  * and decoding).  The changed fields will not depend upon the prior
  * state of the MpegEncContext.
  */
--- a/media/ffvpx/libavcodec/options_table.h
+++ b/media/ffvpx/libavcodec/options_table.h
@@ -37,17 +37,17 @@
 #define A AV_OPT_FLAG_AUDIO_PARAM
 #define S AV_OPT_FLAG_SUBTITLE_PARAM
 #define E AV_OPT_FLAG_ENCODING_PARAM
 #define D AV_OPT_FLAG_DECODING_PARAM
 
 #define AV_CODEC_DEFAULT_BITRATE 200*1000
 
 static const AVOption avcodec_options[] = {
-{"b", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT64, {.i64 = AV_CODEC_DEFAULT_BITRATE }, 0, INT_MAX, A|V|E},
+{"b", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT64, {.i64 = AV_CODEC_DEFAULT_BITRATE }, 0, INT64_MAX, A|V|E},
 {"ab", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT64, {.i64 = 128*1000 }, 0, INT_MAX, A|E},
 {"bt", "Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate tolerance specifies how far "
        "ratecontrol is willing to deviate from the target average bitrate value. This is not related "
        "to minimum/maximum bitrate. Lowering tolerance too much has an adverse effect on quality.",
        OFFSET(bit_rate_tolerance), AV_OPT_TYPE_INT, {.i64 = AV_CODEC_DEFAULT_BITRATE*20 }, 1, INT_MAX, V|E},
 {"flags", NULL, OFFSET(flags), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT }, 0, UINT_MAX, V|A|S|E|D, "flags"},
 {"unaligned", "allow decoders to produce unaligned output", 0, AV_OPT_TYPE_CONST, { .i64 = AV_CODEC_FLAG_UNALIGNED }, INT_MIN, INT_MAX, V | D, "flags" },
 {"mv4", "use four motion vectors per macroblock (MPEG-4)", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_4MV }, INT_MIN, INT_MAX, V|E, "flags"},
@@ -120,18 +120,20 @@ static const AVOption avcodec_options[] 
 {"qmin", "minimum video quantizer scale (VBR)", OFFSET(qmin), AV_OPT_TYPE_INT, {.i64 = 2 }, -1, 69, V|E},
 {"qmax", "maximum video quantizer scale (VBR)", OFFSET(qmax), AV_OPT_TYPE_INT, {.i64 = 31 }, -1, 1024, V|E},
 {"qdiff", "maximum difference between the quantizer scales (VBR)", OFFSET(max_qdiff), AV_OPT_TYPE_INT, {.i64 = 3 }, INT_MIN, INT_MAX, V|E},
 {"bf", "set maximum number of B frames between non-B-frames", OFFSET(max_b_frames), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, -1, INT_MAX, V|E},
 {"b_qfactor", "QP factor between P- and B-frames", OFFSET(b_quant_factor), AV_OPT_TYPE_FLOAT, {.dbl = 1.25 }, -FLT_MAX, FLT_MAX, V|E},
 #if FF_API_RC_STRATEGY
 {"rc_strategy", "ratecontrol method", OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
 #endif
+#if FF_API_PRIVATE_OPT
 {"b_strategy", "strategy to choose between I/P/B-frames", OFFSET(b_frame_strategy), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, V|E},
 {"ps", "RTP payload size in bytes", OFFSET(rtp_payload_size), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
+#endif
 #if FF_API_STAT_BITS
 {"mv_bits", NULL, OFFSET(mv_bits), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 {"header_bits", NULL, OFFSET(header_bits), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 {"i_tex_bits", NULL, OFFSET(i_tex_bits), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 {"p_tex_bits", NULL, OFFSET(p_tex_bits), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 {"i_count", NULL, OFFSET(i_count), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 {"p_count", NULL, OFFSET(p_count), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 {"skip_count", NULL, OFFSET(skip_count), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
@@ -173,17 +175,19 @@ static const AVOption avcodec_options[] 
 {"buffer", "detect improper bitstream length", 0, AV_OPT_TYPE_CONST, {.i64 = AV_EF_BUFFER }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
 {"explode", "abort decoding on minor error detection", 0, AV_OPT_TYPE_CONST, {.i64 = AV_EF_EXPLODE }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
 {"ignore_err", "ignore errors", 0, AV_OPT_TYPE_CONST, {.i64 = AV_EF_IGNORE_ERR }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
 {"careful",    "consider things that violate the spec, are fast to check and have not been seen in the wild as errors", 0, AV_OPT_TYPE_CONST, {.i64 = AV_EF_CAREFUL }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
 {"compliant",  "consider all spec non compliancies as errors", 0, AV_OPT_TYPE_CONST, {.i64 = AV_EF_COMPLIANT }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
 {"aggressive", "consider things that a sane encoder should not do as an error", 0, AV_OPT_TYPE_CONST, {.i64 = AV_EF_AGGRESSIVE }, INT_MIN, INT_MAX, A|V|D, "err_detect"},
 {"has_b_frames", NULL, OFFSET(has_b_frames), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 {"block_align", NULL, OFFSET(block_align), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
+#if FF_API_PRIVATE_OPT
 {"mpeg_quant", "use MPEG quantizers instead of H.263", OFFSET(mpeg_quant), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
+#endif
 #if FF_API_MPV_OPT
 {"qsquish", "deprecated, use encoder private options instead", OFFSET(rc_qsquish), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, 0, 99, V|E},
 {"rc_qmod_amp",  "deprecated, use encoder private options instead", OFFSET(rc_qmod_amp), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E},
 {"rc_qmod_freq", "deprecated, use encoder private options instead", OFFSET(rc_qmod_freq), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
 #endif
 {"rc_override_count", NULL, OFFSET(rc_override_count), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 #if FF_API_MPV_OPT
 {"rc_eq", "deprecated, use encoder private options instead", OFFSET(rc_eq), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX, V|E},
@@ -237,20 +241,22 @@ static const AVOption avcodec_options[] 
 {"faani", "floating point AAN IDCT", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_FAAN }, INT_MIN, INT_MAX, V|D|E, "idct"},
 {"simpleauto", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEAUTO }, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"slice_count", NULL, OFFSET(slice_count), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 {"ec", "set error concealment strategy", OFFSET(error_concealment), AV_OPT_TYPE_FLAGS, {.i64 = 3 }, INT_MIN, INT_MAX, V|D, "ec"},
 {"guess_mvs", "iterative motion vector (MV) search (slow)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_EC_GUESS_MVS }, INT_MIN, INT_MAX, V|D, "ec"},
 {"deblock", "use strong deblock filter for damaged MBs", 0, AV_OPT_TYPE_CONST, {.i64 = FF_EC_DEBLOCK }, INT_MIN, INT_MAX, V|D, "ec"},
 {"favor_inter", "favor predicting from the previous frame", 0, AV_OPT_TYPE_CONST, {.i64 = FF_EC_FAVOR_INTER }, INT_MIN, INT_MAX, V|D, "ec"},
 {"bits_per_coded_sample", NULL, OFFSET(bits_per_coded_sample), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
+#if FF_API_PRIVATE_OPT
 {"pred", "prediction method", OFFSET(prediction_method), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "pred"},
 {"left", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PRED_LEFT }, INT_MIN, INT_MAX, V|E, "pred"},
 {"plane", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PRED_PLANE }, INT_MIN, INT_MAX, V|E, "pred"},
 {"median", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PRED_MEDIAN }, INT_MIN, INT_MAX, V|E, "pred"},
+#endif
 {"aspect", "sample aspect ratio", OFFSET(sample_aspect_ratio), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 0, 10, V|E},
 {"debug", "print specific debug info", OFFSET(debug), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT }, 0, INT_MAX, V|A|S|E|D, "debug"},
 {"pict", "picture info", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_PICT_INFO }, INT_MIN, INT_MAX, V|D, "debug"},
 {"rc", "rate control", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_RC }, INT_MIN, INT_MAX, V|E, "debug"},
 {"bitstream", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_BITSTREAM }, INT_MIN, INT_MAX, V|D, "debug"},
 {"mb_type", "macroblock (MB) type", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_MB_TYPE }, INT_MIN, INT_MAX, V|D, "debug"},
 {"qp", "per-block quantization parameter (QP)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_QP }, INT_MIN, INT_MAX, V|D, "debug"},
 #if FF_API_DEBUG_MV
@@ -278,17 +284,19 @@ static const AVOption avcodec_options[] 
 {"bb", "backward predicted MVs of B-frames", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_VIS_MV_B_BACK }, INT_MIN, INT_MAX, V|D, "debug_mv"},
 #endif
 {"cmp", "full-pel ME compare function", OFFSET(me_cmp), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
 {"subcmp", "sub-pel ME compare function", OFFSET(me_sub_cmp), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
 {"mbcmp", "macroblock compare function", OFFSET(mb_cmp), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
 {"ildctcmp", "interlaced DCT compare function", OFFSET(ildct_cmp), AV_OPT_TYPE_INT, {.i64 = FF_CMP_VSAD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
 {"dia_size", "diamond type & size for motion estimation", OFFSET(dia_size), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
 {"last_pred", "amount of motion predictors from the previous frame", OFFSET(last_predictor_count), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
+#if FF_API_PRIVATE_OPT
 {"preme", "pre motion estimation", OFFSET(pre_me), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
+#endif
 {"precmp", "pre motion estimation compare function", OFFSET(me_pre_cmp), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
 {"sad", "sum of absolute differences, fast", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_SAD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
 {"sse", "sum of squared errors", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_SSE }, INT_MIN, INT_MAX, V|E, "cmp_func"},
 {"satd", "sum of absolute Hadamard transformed differences", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_SATD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
 {"dct", "sum of absolute DCT transformed differences", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_DCT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
 {"psnr", "sum of squared quantization errors (avoid, low quality)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_PSNR }, INT_MIN, INT_MAX, V|E, "cmp_func"},
 {"bit", "number of bits needed for the block", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_BIT }, INT_MIN, INT_MAX, V|E, "cmp_func"},
 {"rd", "rate distortion optimal, slow", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_RD }, INT_MIN, INT_MAX, V|E, "cmp_func"},
@@ -318,34 +326,40 @@ static const AVOption avcodec_options[] 
 {"vlc", "variable length coder / Huffman coder", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CODER_TYPE_VLC }, INT_MIN, INT_MAX, V|E, "coder"},
 {"ac", "arithmetic coder", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CODER_TYPE_AC }, INT_MIN, INT_MAX, V|E, "coder"},
 {"raw", "raw (no encoding)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CODER_TYPE_RAW }, INT_MIN, INT_MAX, V|E, "coder"},
 {"rle", "run-length coder", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CODER_TYPE_RLE }, INT_MIN, INT_MAX, V|E, "coder"},
 #if FF_API_UNUSED_MEMBERS
 {"deflate", "deflate-based coder", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CODER_TYPE_DEFLATE }, INT_MIN, INT_MAX, V|E, "coder"},
 #endif /* FF_API_UNUSED_MEMBERS */
 #endif /* FF_API_CODER_TYPE */
+#if FF_API_PRIVATE_OPT
 {"context", "context model", OFFSET(context_model), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
+#endif
 {"slice_flags", NULL, OFFSET(slice_flags), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 #if FF_API_XVMC
 {"xvmc_acceleration", NULL, OFFSET(xvmc_acceleration), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 #endif /* FF_API_XVMC */
 {"mbd", "macroblock decision algorithm (high quality mode)", OFFSET(mb_decision), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, 2, V|E, "mbd"},
 {"simple", "use mbcmp", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_SIMPLE }, INT_MIN, INT_MAX, V|E, "mbd"},
 {"bits", "use fewest bits", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_BITS }, INT_MIN, INT_MAX, V|E, "mbd"},
 {"rd", "use best rate distortion", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_RD }, INT_MIN, INT_MAX, V|E, "mbd"},
 #if FF_API_STREAM_CODEC_TAG
 {"stream_codec_tag", NULL, OFFSET(stream_codec_tag), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 #endif
+#if FF_API_PRIVATE_OPT
 {"sc_threshold", "scene change threshold", OFFSET(scenechange_threshold), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
+#endif
 #if FF_API_MPV_OPT
 {"lmin", "deprecated, use encoder private options instead", OFFSET(lmin), AV_OPT_TYPE_INT, {.i64 =  0 }, 0, INT_MAX, V|E},
 {"lmax", "deprecated, use encoder private options instead", OFFSET(lmax), AV_OPT_TYPE_INT, {.i64 =  0 }, 0, INT_MAX, V|E},
 #endif
+#if FF_API_PRIVATE_OPT
 {"nr", "noise reduction", OFFSET(noise_reduction), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
+#endif
 {"rc_init_occupancy", "number of bits which should be loaded into the rc buffer before decoding starts", OFFSET(rc_initial_buffer_occupancy), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
 {"flags2", NULL, OFFSET(flags2), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT}, 0, UINT_MAX, V|A|E|D, "flags2"},
 #if FF_API_ERROR_RATE
 {"error", NULL, OFFSET(error_rate), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
 #endif
 {"threads", "set the number of threads", OFFSET(thread_count), AV_OPT_TYPE_INT, {.i64 = 1 }, 0, INT_MAX, V|A|E|D, "threads"},
 {"auto", "autodetect a suitable number of threads to use", 0, AV_OPT_TYPE_CONST, {.i64 = 0 }, INT_MIN, INT_MAX, V|E|D, "threads"},
 #if FF_API_MPV_OPT
@@ -375,51 +389,63 @@ static const AVOption avcodec_options[] 
 {"dts_hd_ma", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_DTS_HD_MA }, INT_MIN, INT_MAX, A|E, "profile"},
 {"mpeg4_sp",   NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_MPEG4_SIMPLE }, INT_MIN, INT_MAX, V|E, "profile"},
 {"mpeg4_core", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_MPEG4_CORE }, INT_MIN, INT_MAX, V|E, "profile"},
 {"mpeg4_main", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_MPEG4_MAIN }, INT_MIN, INT_MAX, V|E, "profile"},
 {"mpeg4_asp",  NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_MPEG4_ADVANCED_SIMPLE }, INT_MIN, INT_MAX, V|E, "profile"},
 {"level", NULL, OFFSET(level), AV_OPT_TYPE_INT, {.i64 = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"},
 {"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"},
 {"lowres", "decode at 1= 1/2, 2=1/4, 3=1/8 resolutions", OFFSET(lowres), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, V|A|D},
+#if FF_API_PRIVATE_OPT
 {"skip_threshold", "frame skip threshold", OFFSET(frame_skip_threshold), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
 {"skip_factor", "frame skip factor", OFFSET(frame_skip_factor), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
 {"skip_exp", "frame skip exponent", OFFSET(frame_skip_exp), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
 {"skipcmp", "frame skip compare function", OFFSET(frame_skip_cmp), AV_OPT_TYPE_INT, {.i64 = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, V|E, "cmp_func"},
+#endif
 #if FF_API_MPV_OPT
 {"border_mask", "deprecated, use encoder private options instead", OFFSET(border_masking), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E},
 #endif
 {"mblmin", "minimum macroblock Lagrange factor (VBR)", OFFSET(mb_lmin), AV_OPT_TYPE_INT, {.i64 = FF_QP2LAMBDA * 2 }, 1, FF_LAMBDA_MAX, V|E},
 {"mblmax", "maximum macroblock Lagrange factor (VBR)", OFFSET(mb_lmax), AV_OPT_TYPE_INT, {.i64 = FF_QP2LAMBDA * 31 }, 1, FF_LAMBDA_MAX, V|E},
+#if FF_API_PRIVATE_OPT
 {"mepc", "motion estimation bitrate penalty compensation (1.0 = 256)", OFFSET(me_penalty_compensation), AV_OPT_TYPE_INT, {.i64 = 256 }, INT_MIN, INT_MAX, V|E},
+#endif
 {"skip_loop_filter", "skip loop filtering process for the selected frames", OFFSET(skip_loop_filter), AV_OPT_TYPE_INT, {.i64 = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"skip_idct"       , "skip IDCT/dequantization for the selected frames",    OFFSET(skip_idct),        AV_OPT_TYPE_INT, {.i64 = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"skip_frame"      , "skip decoding for the selected frames",               OFFSET(skip_frame),       AV_OPT_TYPE_INT, {.i64 = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"none"            , "discard no frame",                    0, AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_NONE    }, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"default"         , "discard useless frames",              0, AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"noref"           , "discard all non-reference frames",    0, AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_NONREF  }, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"bidir"           , "discard all bidirectional frames",    0, AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_BIDIR   }, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"nokey"           , "discard all frames except keyframes", 0, AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_NONKEY  }, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"nointra"         , "discard all frames except I frames",  0, AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_NONINTRA}, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"all"             , "discard all frames",                  0, AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_ALL     }, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"bidir_refine", "refine the two motion vectors used in bidirectional macroblocks", OFFSET(bidir_refine), AV_OPT_TYPE_INT, {.i64 = 1 }, 0, 4, V|E},
+#if FF_API_PRIVATE_OPT
 {"brd_scale", "downscale frames for dynamic B-frame decision", OFFSET(brd_scale), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, 10, V|E},
+#endif
 {"keyint_min", "minimum interval between IDR-frames", OFFSET(keyint_min), AV_OPT_TYPE_INT, {.i64 = 25 }, INT_MIN, INT_MAX, V|E},
 {"refs", "reference frames to consider for motion compensation", OFFSET(refs), AV_OPT_TYPE_INT, {.i64 = 1 }, INT_MIN, INT_MAX, V|E},
+#if FF_API_PRIVATE_OPT
 {"chromaoffset", "chroma QP offset from luma", OFFSET(chromaoffset), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
+#endif
 {"trellis", "rate-distortion optimal quantization", OFFSET(trellis), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
 #if FF_API_UNUSED_MEMBERS
 {"sc_factor", "multiplied by qscale for each frame and added to scene_change_score", OFFSET(scenechange_factor), AV_OPT_TYPE_INT, {.i64 = 6 }, 0, INT_MAX, V|E},
 #endif /* FF_API_UNUSED_MEMBERS */
 {"mv0_threshold", NULL, OFFSET(mv0_threshold), AV_OPT_TYPE_INT, {.i64 = 256 }, 0, INT_MAX, V|E},
+#if FF_API_PRIVATE_OPT
 {"b_sensitivity", "adjust sensitivity of b_frame_strategy 1", OFFSET(b_sensitivity), AV_OPT_TYPE_INT, {.i64 = 40 }, 1, INT_MAX, V|E},
+#endif
 {"compression_level", NULL, OFFSET(compression_level), AV_OPT_TYPE_INT, {.i64 = FF_COMPRESSION_DEFAULT }, INT_MIN, INT_MAX, V|A|E},
+#if FF_API_PRIVATE_OPT
 {"min_prediction_order", NULL, OFFSET(min_prediction_order), AV_OPT_TYPE_INT, {.i64 = -1 }, INT_MIN, INT_MAX, A|E},
 {"max_prediction_order", NULL, OFFSET(max_prediction_order), AV_OPT_TYPE_INT, {.i64 = -1 }, INT_MIN, INT_MAX, A|E},
 {"timecode_frame_start", "GOP timecode frame start number, in non-drop-frame format", OFFSET(timecode_frame_start), AV_OPT_TYPE_INT64, {.i64 = -1 }, -1, INT64_MAX, V|E},
+#endif
 {"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
 {"channel_layout", NULL, OFFSET(channel_layout), AV_OPT_TYPE_INT64, {.i64 = DEFAULT }, 0, INT64_MAX, A|E|D, "channel_layout"},
 {"request_channel_layout", NULL, OFFSET(request_channel_layout), AV_OPT_TYPE_INT64, {.i64 = DEFAULT }, 0, INT64_MAX, A|D, "request_channel_layout"},
 {"rc_max_vbv_use", NULL, OFFSET(rc_max_available_vbv_use), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, 0.0, FLT_MAX, V|E},
 {"rc_min_vbv_use", NULL, OFFSET(rc_min_vbv_overflow_use),  AV_OPT_TYPE_FLOAT, {.dbl = 3 },     0.0, FLT_MAX, V|E},
 {"ticks_per_frame", NULL, OFFSET(ticks_per_frame), AV_OPT_TYPE_INT, {.i64 = 1 }, 1, INT_MAX, A|V|E|D},
 {"color_primaries", "color primaries", OFFSET(color_primaries), AV_OPT_TYPE_INT, {.i64 = AVCOL_PRI_UNSPECIFIED }, 1, AVCOL_PRI_NB-1, V|E|D, "color_primaries_type"},
 {"bt709",       "BT.709",         0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_PRI_BT709 },        INT_MIN, INT_MAX, V|E|D, "color_primaries_type"},
--- a/media/ffvpx/libavcodec/parser.c
+++ b/media/ffvpx/libavcodec/parser.c
@@ -20,16 +20,17 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 #include <stdint.h>
 #include <string.h>
 
 #include "libavutil/avassert.h"
 #include "libavutil/atomic.h"
+#include "libavutil/internal.h"
 #include "libavutil/mem.h"
 
 #include "internal.h"
 #include "parser.h"
 
 static AVCodecParser *av_first_parser = NULL;
 
 AVCodecParser *av_parser_next(const AVCodecParser *p)
@@ -77,17 +78,21 @@ found:
     s->fetch_timestamp=1;
     s->pict_type = AV_PICTURE_TYPE_I;
     if (parser->parser_init) {
         ret = parser->parser_init(s);
         if (ret != 0)
             goto err_out;
     }
     s->key_frame            = -1;
+#if FF_API_CONVERGENCE_DURATION
+FF_DISABLE_DEPRECATION_WARNINGS
     s->convergence_duration = 0;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
     s->dts_sync_point       = INT_MIN;
     s->dts_ref_dts_delta    = INT_MIN;
     s->pts_dts_delta        = INT_MIN;
     s->format               = -1;
 
     return s;
 
 err_out:
--- a/media/ffvpx/libavcodec/pthread_slice.c
+++ b/media/ffvpx/libavcodec/pthread_slice.c
@@ -19,33 +19,26 @@
 /**
  * @file
  * Slice multithreading support functions
  * @see doc/multithreading.txt
  */
 
 #include "config.h"
 
-#if HAVE_PTHREADS
-#include <pthread.h>
-#elif HAVE_W32THREADS
-#include "compat/w32pthreads.h"
-#elif HAVE_OS2THREADS
-#include "compat/os2threads.h"
-#endif
-
 #include "avcodec.h"
 #include "internal.h"
 #include "pthread_internal.h"
 #include "thread.h"
 
 #include "libavutil/avassert.h"
 #include "libavutil/common.h"
 #include "libavutil/cpu.h"
 #include "libavutil/mem.h"
+#include "libavutil/thread.h"
 
 typedef int (action_func)(AVCodecContext *c, void *arg);
 typedef int (action_func2)(AVCodecContext *c, void *arg, int jobnr, int threadnr);
 
 typedef struct SliceThreadContext {
     pthread_t *workers;
     action_func *func;
     action_func2 *func2;
@@ -188,16 +181,22 @@ int ff_slice_thread_init(AVCodecContext 
     int i;
     SliceThreadContext *c;
     int thread_count = avctx->thread_count;
 
 #if HAVE_W32THREADS
     w32thread_init();
 #endif
 
+    // We cannot do this in the encoder init as the threads are created before
+    if (av_codec_is_encoder(avctx->codec) &&
+        avctx->codec_id == AV_CODEC_ID_MPEG1VIDEO &&
+        avctx->height > 2800)
+        thread_count = avctx->thread_count = 1;
+
     if (!thread_count) {
         int nb_cpus = av_cpu_count();
         if  (avctx->height)
             nb_cpus = FFMIN(nb_cpus, (avctx->height+15)/16);
         // use number of cores + 1 as thread count if there is more than one
         if (nb_cpus > 1)
             thread_count = avctx->thread_count = FFMIN(nb_cpus + 1, MAX_AUTO_THREADS);
         else
--- a/media/ffvpx/libavcodec/put_bits.h
+++ b/media/ffvpx/libavcodec/put_bits.h
@@ -100,17 +100,17 @@ static inline int put_bits_left(PutBitCo
  */
 static inline void flush_put_bits(PutBitContext *s)
 {
 #ifndef BITSTREAM_WRITER_LE
     if (s->bit_left < 32)
         s->bit_buf <<= s->bit_left;
 #endif
     while (s->bit_left < 32) {
-        /* XXX: should test end of buffer */
+        av_assert0(s->buf_ptr < s->buf_end);
 #ifdef BITSTREAM_WRITER_LE
         *s->buf_ptr++ = s->bit_buf;
         s->bit_buf  >>= 8;
 #else
         *s->buf_ptr++ = s->bit_buf >> 24;
         s->bit_buf  <<= 8;
 #endif
         s->bit_left  += 8;
--- a/media/ffvpx/libavcodec/raw.c
+++ b/media/ffvpx/libavcodec/raw.c
@@ -48,16 +48,17 @@ const PixelFormatTag ff_raw_pix_fmt_tags
     { AV_PIX_FMT_GRAY8,    MKTAG('Y', '8', '0', '0') },
     { AV_PIX_FMT_GRAY8,    MKTAG('Y', '8', ' ', ' ') },
 
     { AV_PIX_FMT_YUYV422, MKTAG('Y', 'U', 'Y', '2') }, /* Packed formats */
     { AV_PIX_FMT_YUYV422, MKTAG('Y', '4', '2', '2') },
     { AV_PIX_FMT_YUYV422, MKTAG('V', '4', '2', '2') },
     { AV_PIX_FMT_YUYV422, MKTAG('V', 'Y', 'U', 'Y') },
     { AV_PIX_FMT_YUYV422, MKTAG('Y', 'U', 'N', 'V') },
+    { AV_PIX_FMT_YUYV422, MKTAG('Y', 'U', 'Y', 'V') },
     { AV_PIX_FMT_YVYU422, MKTAG('Y', 'V', 'Y', 'U') }, /* Philips */
     { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'V', 'Y') },
     { AV_PIX_FMT_UYVY422, MKTAG('H', 'D', 'Y', 'C') },
     { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'V') },
     { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'Y') },
     { AV_PIX_FMT_UYVY422, MKTAG('u', 'y', 'v', '1') },
     { AV_PIX_FMT_UYVY422, MKTAG('2', 'V', 'u', '1') },
     { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', 'R', 'n') }, /* Avid AVI Codec 1:1 */
@@ -114,16 +115,22 @@ const PixelFormatTag ff_raw_pix_fmt_tags
     { AV_PIX_FMT_RGB4_BYTE,MKTAG('B', '4', 'B', 'Y') },
     { AV_PIX_FMT_BGR4_BYTE,MKTAG('R', '4', 'B', 'Y') },
     { AV_PIX_FMT_RGB48LE,  MKTAG('R', 'G', 'B', 48 ) },
     { AV_PIX_FMT_RGB48BE,  MKTAG( 48, 'R', 'G', 'B') },
     { AV_PIX_FMT_BGR48LE,  MKTAG('B', 'G', 'R', 48 ) },
     { AV_PIX_FMT_BGR48BE,  MKTAG( 48, 'B', 'G', 'R') },
     { AV_PIX_FMT_GRAY16LE,    MKTAG('Y', '1',  0 , 16 ) },
     { AV_PIX_FMT_GRAY16BE,    MKTAG(16 ,  0 , '1', 'Y') },
+    { AV_PIX_FMT_YUV420P9LE,  MKTAG('Y', '3', 11 ,  9 ) },
+    { AV_PIX_FMT_YUV420P9BE,  MKTAG( 9 , 11 , '3', 'Y') },
+    { AV_PIX_FMT_YUV422P9LE,  MKTAG('Y', '3', 10 ,  9 ) },
+    { AV_PIX_FMT_YUV422P9BE,  MKTAG( 9 , 10 , '3', 'Y') },
+    { AV_PIX_FMT_YUV444P9LE,  MKTAG('Y', '3',  0 ,  9 ) },
+    { AV_PIX_FMT_YUV444P9BE,  MKTAG( 9 ,  0 , '3', 'Y') },
     { AV_PIX_FMT_YUV420P10LE, MKTAG('Y', '3', 11 , 10 ) },
     { AV_PIX_FMT_YUV420P10BE, MKTAG(10 , 11 , '3', 'Y') },
     { AV_PIX_FMT_YUV422P10LE, MKTAG('Y', '3', 10 , 10 ) },
     { AV_PIX_FMT_YUV422P10BE, MKTAG(10 , 10 , '3', 'Y') },
     { AV_PIX_FMT_YUV444P10LE, MKTAG('Y', '3',  0 , 10 ) },
     { AV_PIX_FMT_YUV444P10BE, MKTAG(10 ,  0 , '3', 'Y') },
     { AV_PIX_FMT_YUV420P12LE, MKTAG('Y', '3', 11 , 12 ) },
     { AV_PIX_FMT_YUV420P12BE, MKTAG(12 , 11 , '3', 'Y') },
@@ -142,16 +149,17 @@ const PixelFormatTag ff_raw_pix_fmt_tags
     { AV_PIX_FMT_YUV422P16LE, MKTAG('Y', '3', 10 , 16 ) },
     { AV_PIX_FMT_YUV422P16BE, MKTAG(16 , 10 , '3', 'Y') },
     { AV_PIX_FMT_YUV444P16LE, MKTAG('Y', '3',  0 , 16 ) },
     { AV_PIX_FMT_YUV444P16BE, MKTAG(16 ,  0 , '3', 'Y') },
     { AV_PIX_FMT_YUVA420P,    MKTAG('Y', '4', 11 ,  8 ) },
     { AV_PIX_FMT_YUVA422P,    MKTAG('Y', '4', 10 ,  8 ) },
     { AV_PIX_FMT_YUVA444P,    MKTAG('Y', '4',  0 ,  8 ) },
     { AV_PIX_FMT_YA8,         MKTAG('Y', '2',  0 ,  8 ) },
+    { AV_PIX_FMT_PAL8,        MKTAG('P', 'A', 'L',  8 ) },
 
     { AV_PIX_FMT_YUVA420P9LE,  MKTAG('Y', '4', 11 ,  9 ) },
     { AV_PIX_FMT_YUVA420P9BE,  MKTAG( 9 , 11 , '4', 'Y') },
     { AV_PIX_FMT_YUVA422P9LE,  MKTAG('Y', '4', 10 ,  9 ) },
     { AV_PIX_FMT_YUVA422P9BE,  MKTAG( 9 , 10 , '4', 'Y') },
     { AV_PIX_FMT_YUVA444P9LE,  MKTAG('Y', '4',  0 ,  9 ) },
     { AV_PIX_FMT_YUVA444P9BE,  MKTAG( 9 ,  0 , '4', 'Y') },
     { AV_PIX_FMT_YUVA420P10LE, MKTAG('Y', '4', 11 , 10 ) },
@@ -212,16 +220,50 @@ const PixelFormatTag ff_raw_pix_fmt_tags
     { 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') },
 
+    /* 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') },
+    { AV_PIX_FMT_YUVJ422P,    MKTAG('J', '4', '2', '2') },
+    { AV_PIX_FMT_YUVJ440P,    MKTAG('J', '4', '4', '0') },
+    { AV_PIX_FMT_YUVJ444P,    MKTAG('J', '4', '4', '4') },
+    { AV_PIX_FMT_YUVA444P,    MKTAG('Y', 'U', 'V', 'A') },
+    { AV_PIX_FMT_YUVA420P,    MKTAG('I', '4', '0', 'A') },
+    { AV_PIX_FMT_YUVA422P,    MKTAG('I', '4', '2', 'A') },
+    { AV_PIX_FMT_RGB8,        MKTAG('R', 'G', 'B', '2') },
+    { AV_PIX_FMT_RGB555LE,    MKTAG('R', 'V', '1', '5') },
+    { AV_PIX_FMT_RGB565LE,    MKTAG('R', 'V', '1', '6') },
+    { AV_PIX_FMT_BGR24,       MKTAG('R', 'V', '2', '4') },
+    { AV_PIX_FMT_BGR0,        MKTAG('R', 'V', '3', '2') },
+    { AV_PIX_FMT_RGBA,        MKTAG('A', 'V', '3', '2') },
+    { AV_PIX_FMT_YUV420P9LE,  MKTAG('I', '0', '9', 'L') },
+    { AV_PIX_FMT_YUV420P9BE,  MKTAG('I', '0', '9', 'B') },
+    { AV_PIX_FMT_YUV422P9LE,  MKTAG('I', '2', '9', 'L') },
+    { AV_PIX_FMT_YUV422P9BE,  MKTAG('I', '2', '9', 'B') },
+    { AV_PIX_FMT_YUV444P9LE,  MKTAG('I', '4', '9', 'L') },
+    { AV_PIX_FMT_YUV444P9BE,  MKTAG('I', '4', '9', 'B') },
+    { AV_PIX_FMT_YUV420P10LE, MKTAG('I', '0', 'A', 'L') },
+    { AV_PIX_FMT_YUV420P10BE, MKTAG('I', '0', 'A', 'B') },
+    { AV_PIX_FMT_YUV422P10LE, MKTAG('I', '2', 'A', 'L') },
+    { AV_PIX_FMT_YUV422P10BE, MKTAG('I', '2', 'A', 'B') },
+    { AV_PIX_FMT_YUV444P10LE, MKTAG('I', '4', 'A', 'L') },
+    { AV_PIX_FMT_YUV444P10BE, MKTAG('I', '4', 'A', 'B') },
+    { AV_PIX_FMT_YUV444P16LE, MKTAG('I', '4', 'F', 'L') },
+    { AV_PIX_FMT_YUV444P16BE, MKTAG('I', '4', 'F', 'B') },
+
     /* special */
     { AV_PIX_FMT_RGB565LE,MKTAG( 3 ,  0 ,  0 ,  0 ) }, /* flipped RGB565LE */
     { AV_PIX_FMT_YUV444P, MKTAG('Y', 'V', '2', '4') }, /* YUV444P, swapped UV */
 
     { AV_PIX_FMT_NONE, 0 },
 };
 
 const struct PixelFormatTag *avpriv_get_raw_pix_fmt_tags(void)
@@ -236,31 +278,31 @@ unsigned int avcodec_pix_fmt_to_codec_ta
         if (tags->pix_fmt == fmt)
             return tags->fourcc;
         tags++;
     }
     return 0;
 }
 
 const PixelFormatTag avpriv_pix_fmt_bps_avi[] = {
-    { AV_PIX_FMT_MONOWHITE, 1 },
+    { AV_PIX_FMT_PAL8,    1 },
     { AV_PIX_FMT_PAL8,    2 },
     { AV_PIX_FMT_PAL8,    4 },
     { AV_PIX_FMT_PAL8,    8 },
     { AV_PIX_FMT_RGB444LE, 12 },
     { AV_PIX_FMT_RGB555LE, 15 },
     { AV_PIX_FMT_RGB555LE, 16 },
     { AV_PIX_FMT_BGR24,  24 },
     { AV_PIX_FMT_BGRA,   32 },
     { AV_PIX_FMT_NONE,    0 },
 };
 
 const PixelFormatTag avpriv_pix_fmt_bps_mov[] = {
-    { AV_PIX_FMT_MONOWHITE, 1 },
+    { AV_PIX_FMT_PAL8,      1 },
     { AV_PIX_FMT_PAL8,      2 },
     { AV_PIX_FMT_PAL8,      4 },
     { AV_PIX_FMT_PAL8,      8 },
     { AV_PIX_FMT_RGB555BE, 16 },
     { AV_PIX_FMT_RGB24,    24 },
     { AV_PIX_FMT_ARGB,     32 },
-    { AV_PIX_FMT_MONOWHITE,33 },
+    { AV_PIX_FMT_PAL8,     33 },
     { AV_PIX_FMT_NONE,      0 },
 };
--- a/media/ffvpx/libavcodec/utils.c
+++ b/media/ffvpx/libavcodec/utils.c
@@ -210,18 +210,18 @@ int ff_set_dimensions(AVCodecContext *s,
 {
     int ret = av_image_check_size(width, height, 0, s);
 
     if (ret < 0)
         width = height = 0;
 
     s->coded_width  = width;
     s->coded_height = height;
-    s->width        = FF_CEIL_RSHIFT(width,  s->lowres);
-    s->height       = FF_CEIL_RSHIFT(height, s->lowres);
+    s->width        = AV_CEIL_RSHIFT(width,  s->lowres);
+    s->height       = AV_CEIL_RSHIFT(height, s->lowres);
 
     return ret;
 }
 
 int ff_set_sar(AVCodecContext *avctx, AVRational sar)
 {
     int ret = av_image_check_sar(avctx->width, avctx->height, sar);
 
@@ -346,16 +346,18 @@ void avcodec_align_dimensions2(AVCodecCo
     case AV_PIX_FMT_GBRP10LE:
     case AV_PIX_FMT_GBRP10BE:
     case AV_PIX_FMT_GBRP12LE:
     case AV_PIX_FMT_GBRP12BE:
     case AV_PIX_FMT_GBRP14LE:
     case AV_PIX_FMT_GBRP14BE:
     case AV_PIX_FMT_GBRP16LE:
     case AV_PIX_FMT_GBRP16BE:
+    case AV_PIX_FMT_GBRAP16LE:
+    case AV_PIX_FMT_GBRAP16BE:
         w_align = 16; //FIXME assume 16 pixel per macroblock
         h_align = 16 * 2; // interlaced needs 2 macroblocks height
         break;
     case AV_PIX_FMT_YUV411P:
     case AV_PIX_FMT_YUVJ411P:
     case AV_PIX_FMT_UYYVYY411:
         w_align = 32;
         h_align = 16 * 2;
@@ -516,17 +518,19 @@ static int update_frame_pool(AVCodecCont
             pool->width == frame->width && pool->height == frame->height)
             return 0;
 
         avcodec_align_dimensions2(avctx, &w, &h, pool->stride_align);
 
         do {
             // NOTE: do not align linesizes individually, this breaks e.g. assumptions
             // that linesize[0] == 2*linesize[1] in the MPEG-encoder for 4:2:2
-            av_image_fill_linesizes(linesize, avctx->pix_fmt, w);
+            ret = av_image_fill_linesizes(linesize, avctx->pix_fmt, w);
+            if (ret < 0)
+                return ret;
             // increase alignment of w for next try (rhs gives the lowest bit set in w)
             w += w & ~(w - 1);
 
             unaligned = 0;
             for (i = 0; i < 4; i++)
                 unaligned |= linesize[i] % pool->stride_align[i];
         } while (unaligned);
 
@@ -695,18 +699,18 @@ void ff_color_frame(AVFrame *frame, cons
     const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(frame->format);
     int p, y, x;
 
     av_assert0(desc->flags & AV_PIX_FMT_FLAG_PLANAR);
 
     for (p = 0; p<desc->nb_components; p++) {
         uint8_t *dst = frame->data[p];
         int is_chroma = p == 1 || p == 2;
-        int bytes  = is_chroma ? FF_CEIL_RSHIFT(frame->width,  desc->log2_chroma_w) : frame->width;
-        int height = is_chroma ? FF_CEIL_RSHIFT(frame->height, desc->log2_chroma_h) : frame->height;
+        int bytes  = is_chroma ? AV_CEIL_RSHIFT(frame->width,  desc->log2_chroma_w) : frame->width;
+        int height = is_chroma ? AV_CEIL_RSHIFT(frame->height, desc->log2_chroma_h) : frame->height;
         for (y = 0; y < height; y++) {
             if (desc->comp[0].depth >= 9) {
                 for (x = 0; x<bytes; x++)
                     ((uint16_t*)dst)[x] = c[p];
             }else
                 memset(dst, c[p], bytes);
             dst += frame->linesize[p];
         }
@@ -854,18 +858,18 @@ static int get_buffer_internal(AVCodecCo
     if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) {
         if ((ret = av_image_check_size(avctx->width, avctx->height, 0, avctx)) < 0 || avctx->pix_fmt<0) {
             av_log(avctx, AV_LOG_ERROR, "video_get_buffer: image parameters invalid\n");
             return AVERROR(EINVAL);
         }
     }
     if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) {
         if (frame->width <= 0 || frame->height <= 0) {
-            frame->width  = FFMAX(avctx->width,  FF_CEIL_RSHIFT(avctx->coded_width,  avctx->lowres));
-            frame->height = FFMAX(avctx->height, FF_CEIL_RSHIFT(avctx->coded_height, avctx->lowres));
+            frame->width  = FFMAX(avctx->width,  AV_CEIL_RSHIFT(avctx->coded_width,  avctx->lowres));
+            frame->height = FFMAX(avctx->height, AV_CEIL_RSHIFT(avctx->coded_height, avctx->lowres));
             override_dimensions = 0;
         }
     }
     ret = ff_decode_frame_props(avctx, frame);
     if (ret < 0)
         return ret;
 
     if (hwaccel) {
@@ -1007,19 +1011,18 @@ static AVHWAccel *find_hwaccel(enum AVCo
 static int setup_hwaccel(AVCodecContext *avctx,
                          const enum AVPixelFormat fmt,
                          const char *name)
 {
     AVHWAccel *hwa = find_hwaccel(avctx->codec_id, fmt);
     int ret        = 0;
 
     if (avctx->active_thread_type & FF_THREAD_FRAME) {
-        av_log(avctx, AV_LOG_ERROR,
-               "Hardware accelerated decoding with frame threading is not supported.\n");
-        return AVERROR(EINVAL);
+        av_log(avctx, AV_LOG_WARNING,
+               "Hardware accelerated decoding with frame threading is known to be unstable and its use is discouraged.\n");
     }
 
     if (!hwa) {
         av_log(avctx, AV_LOG_ERROR,
                "Could not find an AVHWAccel for the pixel format: %s",
                name);
         return AVERROR(ENOENT);
     }
@@ -1229,17 +1232,17 @@ int attribute_align_arg avcodec_open2(AV
             goto free_and_end;
     } else {
         avctx->priv_data = NULL;
     }
     if ((ret = av_opt_set_dict(avctx, &tmp)) < 0)
         goto free_and_end;
 
     if (avctx->codec_whitelist && av_match_list(codec->name, avctx->codec_whitelist, ',') <= 0) {
-        av_log(avctx, AV_LOG_ERROR, "Codec (%s) not on whitelist\n", codec->name);
+        av_log(avctx, AV_LOG_ERROR, "Codec (%s) not on whitelist \'%s\'\n", codec->name, avctx->codec_whitelist);
         ret = AVERROR(EINVAL);
         goto free_and_end;
     }
 
     // only call ff_set_dimensions() for non H.264/VP6F/DXV codecs so as not to overwrite previously setup dimensions
     if (!(avctx->coded_width && avctx->coded_height && avctx->width && avctx->height &&
           (avctx->codec_id == AV_CODEC_ID_H264 || avctx->codec_id == AV_CODEC_ID_VP6F || avctx->codec_id == AV_CODEC_ID_DXV))) {
     if (avctx->coded_width && avctx->coded_height)
@@ -1312,18 +1315,18 @@ int attribute_align_arg avcodec_open2(AV
         (!avctx->time_base.num || !avctx->time_base.den)) {
         avctx->time_base.num = 1;
         avctx->time_base.den = avctx->sample_rate;
     }
 
     if (!HAVE_THREADS)
         av_log(avctx, AV_LOG_WARNING, "Warning: not compiled with thread support, using thread emulation\n");
 
-    if (CONFIG_FRAME_THREAD_ENCODER) {
-        ff_unlock_avcodec(codec); //we will instanciate a few encoders thus kick the counter to prevent false detection of a problem
+    if (CONFIG_FRAME_THREAD_ENCODER && av_codec_is_encoder(avctx->codec)) {
+        ff_unlock_avcodec(codec); //we will instantiate a few encoders thus kick the counter to prevent false detection of a problem
         ret = ff_frame_thread_encoder_init(avctx, options ? *options : NULL);
         ff_lock_avcodec(avctx, codec);
         if (ret < 0)
             goto free_and_end;
     }
 
     if (HAVE_THREADS
         && !(avctx->internal->frame_thread_encoder && (avctx->active_thread_type&FF_THREAD_FRAME))) {
@@ -1469,16 +1472,26 @@ FF_ENABLE_DEPRECATION_WARNINGS
         }
         if (   (avctx->codec_type == AVMEDIA_TYPE_VIDEO || avctx->codec_type == AVMEDIA_TYPE_AUDIO)
             && avctx->bit_rate>0 && avctx->bit_rate<1000) {
             av_log(avctx, AV_LOG_WARNING, "Bitrate %"PRId64" is extremely low, maybe you mean %"PRId64"k\n", (int64_t)avctx->bit_rate, (int64_t)avctx->bit_rate);
         }
 
         if (!avctx->rc_initial_buffer_occupancy)
             avctx->rc_initial_buffer_occupancy = avctx->rc_buffer_size * 3 / 4;
+
+        if (avctx->ticks_per_frame && avctx->time_base.num &&
+            avctx->ticks_per_frame > INT_MAX / avctx->time_base.num) {
+            av_log(avctx, AV_LOG_ERROR,
+                   "ticks_per_frame %d too large for the timebase %d/%d.",
+                   avctx->ticks_per_frame,
+                   avctx->time_base.num,
+                   avctx->time_base.den);
+            goto free_and_end;
+        }
     }
 
     avctx->pts_correction_num_faulty_pts =
     avctx->pts_correction_num_faulty_dts = 0;
     avctx->pts_correction_last_pts =
     avctx->pts_correction_last_dts = INT64_MIN;
 
     if (   !CONFIG_GRAY && avctx->flags & AV_CODEC_FLAG_GRAY
--- a/media/ffvpx/libavcodec/version.h
+++ b/media/ffvpx/libavcodec/version.h
@@ -24,18 +24,18 @@
  * @file
  * @ingroup libavc
  * Libavcodec version macros.
  */
 
 #include "libavutil/version.h"
 
 #define LIBAVCODEC_VERSION_MAJOR  57
-#define LIBAVCODEC_VERSION_MINOR  22
-#define LIBAVCODEC_VERSION_MICRO 100
+#define LIBAVCODEC_VERSION_MINOR  24
+#define LIBAVCODEC_VERSION_MICRO 102
 
 #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)
 #define LIBAVCODEC_BUILD        LIBAVCODEC_VERSION_INT
@@ -56,16 +56,19 @@
 #define FF_API_VIMA_DECODER     (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_AUDIO_CONVERT
 #define FF_API_AUDIO_CONVERT     (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_AVCODEC_RESAMPLE
 #define FF_API_AVCODEC_RESAMPLE  FF_API_AUDIO_CONVERT
 #endif
+#ifndef FF_API_GETCHROMA
+#define FF_API_GETCHROMA         (LIBAVCODEC_VERSION_MAJOR < 58)
+#endif
 #ifndef FF_API_MISSING_SAMPLE
 #define FF_API_MISSING_SAMPLE    (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_LOWRES
 #define FF_API_LOWRES            (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
 #ifndef FF_API_CAP_VDPAU
 #define FF_API_CAP_VDPAU         (LIBAVCODEC_VERSION_MAJOR < 58)
@@ -201,10 +204,13 @@
 #define FF_API_VBV_DELAY         (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_CODER_TYPE
 #define FF_API_CODER_TYPE        (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
 #ifndef FF_API_STAT_BITS
 #define FF_API_STAT_BITS         (LIBAVCODEC_VERSION_MAJOR < 59)
 #endif
+#ifndef FF_API_PRIVATE_OPT
+#define FF_API_PRIVATE_OPT      (LIBAVCODEC_VERSION_MAJOR < 59)
+#endif
 
 #endif /* AVCODEC_VERSION_H */
--- a/media/ffvpx/libavcodec/vorbis_parser.h
+++ b/media/ffvpx/libavcodec/vorbis_parser.h
@@ -19,18 +19,18 @@
 
 /**
  * @file
  * A public API for Vorbis parsing
  *
  * Determines the duration for each packet.
  */
 
-#ifndef AVCODEC_VORBIS_PARSE_H
-#define AVCODEC_VORBIS_PARSE_H
+#ifndef AVCODEC_VORBIS_PARSER_H
+#define AVCODEC_VORBIS_PARSER_H
 
 #include <stdint.h>
 
 typedef struct AVVorbisParseContext AVVorbisParseContext;
 
 /**
  * Allocate and initialize the Vorbis parser using headers in the extradata.
  *
@@ -70,9 +70,9 @@ int av_vorbis_parse_frame_flags(AVVorbis
  * @param buf      buffer containing a Vorbis frame
  * @param buf_size size of the buffer
  */
 int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf,
                           int buf_size);
 
 void av_vorbis_parse_reset(AVVorbisParseContext *s);
 
-#endif /* AVCODEC_VORBIS_PARSE_H */
+#endif /* AVCODEC_VORBIS_PARSER_H */
--- a/media/ffvpx/libavcodec/vorbis_parser_internal.h
+++ b/media/ffvpx/libavcodec/vorbis_parser_internal.h
@@ -20,27 +20,27 @@
 
 /**
  * @file
  * Vorbis audio parser
  *
  * Determines the duration for each packet.
  */
 
-#ifndef AVCODEC_VORBIS_PARSER_H
-#define AVCODEC_VORBIS_PARSER_H
+#ifndef AVCODEC_VORBIS_PARSER_INTERNAL_H
+#define AVCODEC_VORBIS_PARSER_INTERNAL_H
 
 #include "avcodec.h"
 #include "vorbis_parser.h"
 
 struct AVVorbisParseContext {
     const AVClass *class;
     int extradata_parsed;       ///< we have attempted to parse extradata
     int valid_extradata;        ///< extradata is valid, so we can calculate duration
     int blocksize[2];           ///< short and long window sizes
     int previous_blocksize;     ///< previous window size
     int mode_blocksize[64];     ///< window size mapping for each mode
     int mode_count;             ///< number of modes
     int mode_mask;              ///< bitmask used to get the mode in each packet
     int prev_mask;              ///< bitmask used to get the previous mode flag in each packet
 };
 
-#endif /* AVCODEC_VORBIS_PARSER_H */
+#endif /* AVCODEC_VORBIS_PARSER_INTERNAL_H */
--- a/media/ffvpx/libavcodec/vp9.c
+++ b/media/ffvpx/libavcodec/vp9.c
@@ -65,25 +65,30 @@ typedef struct VP9Context {
     int pass;
     int row, row7, col, col7;
     uint8_t *dst[3];
     ptrdiff_t y_stride, uv_stride;
 
     uint8_t ss_h, ss_v;
     uint8_t last_bpp, bpp, bpp_index, bytesperpixel;
     uint8_t last_keyframe;
-    enum AVPixelFormat pix_fmt, last_fmt;
+    // sb_cols/rows, rows/cols and last_fmt are used for allocating all internal
+    // arrays, and are thus per-thread. w/h and gf_fmt are synced between threads
+    // and are therefore per-stream. pix_fmt represents the value in the header
+    // of the currently processed frame.
+    int w, h;
+    enum AVPixelFormat pix_fmt, last_fmt, gf_fmt;
+    unsigned sb_cols, sb_rows, rows, cols;
     ThreadFrame next_refs[8];
 
     struct {
         uint8_t lim_lut[64];
         uint8_t mblim_lut[64];
     } filter_lut;
     unsigned tile_row_start, tile_row_end, tile_col_start, tile_col_end;
-    unsigned sb_cols, sb_rows, rows, cols;
     struct {
         prob_context p;
         uint8_t coef[4][2][2][6][6][3];
     } prob_ctx[4];
     struct {
         prob_context p;
         uint8_t coef[4][2][2][6][6][11];
     } prob;
@@ -240,46 +245,55 @@ fail:
 }
 
 static int update_size(AVCodecContext *ctx, int w, int h)
 {
 #define HWACCEL_MAX (CONFIG_VP9_DXVA2_HWACCEL + CONFIG_VP9_D3D11VA_HWACCEL + CONFIG_VP9_VAAPI_HWACCEL)
     enum AVPixelFormat pix_fmts[HWACCEL_MAX + 2], *fmtp = pix_fmts;
     VP9Context *s = ctx->priv_data;
     uint8_t *p;
-    int bytesperpixel = s->bytesperpixel, res;
+    int bytesperpixel = s->bytesperpixel, res, cols, rows;
 
     av_assert0(w > 0 && h > 0);
 
-    if (s->intra_pred_data[0] && w == ctx->width && h == ctx->height && s->pix_fmt == s->last_fmt)
-        return 0;
-
-    if ((res = ff_set_dimensions(ctx, w, h)) < 0)
-        return res;
-
-    if (s->pix_fmt == AV_PIX_FMT_YUV420P) {
+    if (!(s->pix_fmt == s->gf_fmt && w == s->w && h == s->h)) {
+        if ((res = ff_set_dimensions(ctx, w, h)) < 0)
+            return res;
+
+        if (s->pix_fmt == AV_PIX_FMT_YUV420P) {
 #if CONFIG_VP9_DXVA2_HWACCEL
-        *fmtp++ = AV_PIX_FMT_DXVA2_VLD;
+            *fmtp++ = AV_PIX_FMT_DXVA2_VLD;
 #endif
 #if CONFIG_VP9_D3D11VA_HWACCEL
-        *fmtp++ = AV_PIX_FMT_D3D11VA_VLD;
+            *fmtp++ = AV_PIX_FMT_D3D11VA_VLD;
 #endif
 #if CONFIG_VP9_VAAPI_HWACCEL
-        *fmtp++ = AV_PIX_FMT_VAAPI;
+            *fmtp++ = AV_PIX_FMT_VAAPI;
 #endif
+        }
+
+        *fmtp++ = s->pix_fmt;
+        *fmtp = AV_PIX_FMT_NONE;
+
+        res = ff_thread_get_format(ctx, pix_fmts);
+        if (res < 0)
+            return res;
+
+        ctx->pix_fmt = res;
+        s->gf_fmt  = s->pix_fmt;
+        s->w = w;
+        s->h = h;
     }
 
-    *fmtp++ = s->pix_fmt;
-    *fmtp = AV_PIX_FMT_NONE;
-
-    res = ff_thread_get_format(ctx, pix_fmts);
-    if (res < 0)
-        return res;
-
-    ctx->pix_fmt = res;
+    cols = (w + 7) >> 3;
+    rows = (h + 7) >> 3;
+
+    if (s->intra_pred_data[0] && cols == s->cols && rows == s->rows && s->pix_fmt == s->last_fmt)
+        return 0;
+
     s->last_fmt  = s->pix_fmt;
     s->sb_cols   = (w + 63) >> 6;
     s->sb_rows   = (h + 63) >> 6;
     s->cols      = (w + 7) >> 3;
     s->rows      = (h + 7) >> 3;
 
 #define assign(var, type, n) var = (type) p; p += s->sb_cols * (n) * sizeof(*var)
     av_freep(&s->intra_pred_data[0]);
@@ -4287,23 +4301,16 @@ static av_cold int vp9_decode_init_threa
     return init_frames(avctx);
 }
 
 static int vp9_decode_update_thread_context(AVCodecContext *dst, const AVCodecContext *src)
 {
     int i, res;
     VP9Context *s = dst->priv_data, *ssrc = src->priv_data;
 
-    // detect size changes in other threads
-    if (s->intra_pred_data[0] &&
-        (!ssrc->intra_pred_data[0] || s->cols != ssrc->cols ||
-         s->rows != ssrc->rows || s->bpp != ssrc->bpp || s->pix_fmt != ssrc->pix_fmt)) {
-        free_buffers(s);
-    }
-
     for (i = 0; i < 3; i++) {
         if (s->s.frames[i].tf.f->buf[0])
             vp9_unref_frame(dst, &s->s.frames[i]);
         if (ssrc->s.frames[i].tf.f->buf[0]) {
             if ((res = vp9_ref_frame(dst, &s->s.frames[i], &ssrc->s.frames[i])) < 0)
                 return res;
         }
     }
@@ -4320,16 +4327,19 @@ static int vp9_decode_update_thread_cont
     s->s.h.keyframe = ssrc->s.h.keyframe;
     s->s.h.intraonly = ssrc->s.h.intraonly;
     s->ss_v = ssrc->ss_v;
     s->ss_h = ssrc->ss_h;
     s->s.h.segmentation.enabled = ssrc->s.h.segmentation.enabled;
     s->s.h.segmentation.update_map = ssrc->s.h.segmentation.update_map;
     s->s.h.segmentation.absolute_vals = ssrc->s.h.segmentation.absolute_vals;
     s->bytesperpixel = ssrc->bytesperpixel;
+    s->gf_fmt = ssrc->gf_fmt;
+    s->w = ssrc->w;
+    s->h = ssrc->h;
     s->bpp = ssrc->bpp;
     s->bpp_index = ssrc->bpp_index;
     s->pix_fmt = ssrc->pix_fmt;
     memcpy(&s->prob_ctx, &ssrc->prob_ctx, sizeof(s->prob_ctx));
     memcpy(&s->s.h.lf_delta, &ssrc->s.h.lf_delta, sizeof(s->s.h.lf_delta));
     memcpy(&s->s.h.segmentation.feat, &ssrc->s.h.segmentation.feat,
            sizeof(s->s.h.segmentation.feat));
 
--- a/media/ffvpx/libavcodec/x86/constants.c
+++ b/media/ffvpx/libavcodec/x86/constants.c
@@ -22,17 +22,18 @@
 #include "libavutil/x86/asm.h" // for xmm_reg
 #include "constants.h"
 
 DECLARE_ALIGNED(32, const ymm_reg,  ff_pw_1)    = { 0x0001000100010001ULL, 0x0001000100010001ULL,
                                                     0x0001000100010001ULL, 0x0001000100010001ULL };
 DECLARE_ALIGNED(32, const ymm_reg,  ff_pw_2)    = { 0x0002000200020002ULL, 0x0002000200020002ULL,
                                                     0x0002000200020002ULL, 0x0002000200020002ULL };
 DECLARE_ALIGNED(16, const xmm_reg,  ff_pw_3)    = { 0x0003000300030003ULL, 0x0003000300030003ULL };
-DECLARE_ALIGNED(16, const xmm_reg,  ff_pw_4)    = { 0x0004000400040004ULL, 0x0004000400040004ULL };
+DECLARE_ALIGNED(32, const ymm_reg,  ff_pw_4)    = { 0x0004000400040004ULL, 0x0004000400040004ULL,
+                                                    0x0004000400040004ULL, 0x0004000400040004ULL };
 DECLARE_ALIGNED(16, const xmm_reg,  ff_pw_5)    = { 0x0005000500050005ULL, 0x0005000500050005ULL };
 DECLARE_ALIGNED(16, const xmm_reg,  ff_pw_8)    = { 0x0008000800080008ULL, 0x0008000800080008ULL };
 DECLARE_ALIGNED(16, const xmm_reg,  ff_pw_9)    = { 0x0009000900090009ULL, 0x0009000900090009ULL };
 DECLARE_ALIGNED(8,  const uint64_t, ff_pw_15)   =   0x000F000F000F000FULL;
 DECLARE_ALIGNED(16, const xmm_reg,  ff_pw_16)   = { 0x0010001000100010ULL, 0x0010001000100010ULL };
 DECLARE_ALIGNED(16, const xmm_reg,  ff_pw_17)   = { 0x0011001100110011ULL, 0x0011001100110011ULL };
 DECLARE_ALIGNED(16, const xmm_reg,  ff_pw_18)   = { 0x0012001200120012ULL, 0x0012001200120012ULL };
 DECLARE_ALIGNED(16, const xmm_reg,  ff_pw_20)   = { 0x0014001400140014ULL, 0x0014001400140014ULL };
@@ -69,17 +70,18 @@ DECLARE_ALIGNED(32, const ymm_reg,  ff_p
 DECLARE_ALIGNED(32, const ymm_reg,  ff_pb_1)    = { 0x0101010101010101ULL, 0x0101010101010101ULL,
                                                     0x0101010101010101ULL, 0x0101010101010101ULL };
 DECLARE_ALIGNED(32, const ymm_reg,  ff_pb_2)    = { 0x0202020202020202ULL, 0x0202020202020202ULL,
                                                     0x0202020202020202ULL, 0x0202020202020202ULL };
 DECLARE_ALIGNED(32, const ymm_reg,  ff_pb_3)    = { 0x0303030303030303ULL, 0x0303030303030303ULL,
                                                     0x0303030303030303ULL, 0x0303030303030303ULL };
 DECLARE_ALIGNED(32, const xmm_reg,  ff_pb_15)   = { 0x0F0F0F0F0F0F0F0FULL, 0x0F0F0F0F0F0F0F0FULL };
 DECLARE_ALIGNED(16, const xmm_reg,  ff_pb_80)   = { 0x8080808080808080ULL, 0x8080808080808080ULL };
-DECLARE_ALIGNED(16, const xmm_reg,  ff_pb_FE)   = { 0xFEFEFEFEFEFEFEFEULL, 0xFEFEFEFEFEFEFEFEULL };
+DECLARE_ALIGNED(32, const ymm_reg,  ff_pb_FE)   = { 0xFEFEFEFEFEFEFEFEULL, 0xFEFEFEFEFEFEFEFEULL,
+                                                    0xFEFEFEFEFEFEFEFEULL, 0xFEFEFEFEFEFEFEFEULL };
 DECLARE_ALIGNED(8,  const uint64_t, ff_pb_FC)   =   0xFCFCFCFCFCFCFCFCULL;
 
 DECLARE_ALIGNED(16, const xmm_reg,  ff_ps_neg)  = { 0x8000000080000000ULL, 0x8000000080000000ULL };
 
 DECLARE_ALIGNED(32, const ymm_reg,  ff_pd_1)    = { 0x0000000100000001ULL, 0x0000000100000001ULL,
                                                     0x0000000100000001ULL, 0x0000000100000001ULL };
 DECLARE_ALIGNED(32, const ymm_reg,  ff_pd_16)   = { 0x0000001000000010ULL, 0x0000001000000010ULL,
                                                     0x0000001000000010ULL, 0x0000001000000010ULL };
--- a/media/ffvpx/libavcodec/x86/constants.h
+++ b/media/ffvpx/libavcodec/x86/constants.h
@@ -23,17 +23,17 @@
 
 #include <stdint.h>
 
 #include "libavutil/x86/asm.h"
 
 extern const ymm_reg  ff_pw_1;
 extern const ymm_reg  ff_pw_2;
 extern const xmm_reg  ff_pw_3;
-extern const xmm_reg  ff_pw_4;
+extern const ymm_reg  ff_pw_4;
 extern const xmm_reg  ff_pw_5;
 extern const xmm_reg  ff_pw_8;
 extern const xmm_reg  ff_pw_9;
 extern const uint64_t ff_pw_15;
 extern const xmm_reg  ff_pw_16;
 extern const xmm_reg  ff_pw_18;
 extern const xmm_reg  ff_pw_20;
 extern const xmm_reg  ff_pw_32;
@@ -52,17 +52,17 @@ extern const ymm_reg  ff_pw_4096;
 extern const ymm_reg  ff_pw_8192;
 extern const ymm_reg  ff_pw_m1;
 
 extern const ymm_reg  ff_pb_0;
 extern const ymm_reg  ff_pb_1;
 extern const ymm_reg  ff_pb_2;
 extern const ymm_reg  ff_pb_3;
 extern const xmm_reg  ff_pb_80;
-extern const xmm_reg  ff_pb_FE;
+extern const ymm_reg  ff_pb_FE;
 extern const uint64_t ff_pb_FC;
 
 extern const xmm_reg  ff_ps_neg;
 
 extern const ymm_reg  ff_pd_1;
 extern const ymm_reg  ff_pd_16;
 extern const ymm_reg  ff_pd_32;
 extern const ymm_reg  ff_pd_8192;
--- a/media/ffvpx/libavcodec/x86/videodsp.asm
+++ b/media/ffvpx/libavcodec/x86/videodsp.asm
@@ -188,24 +188,20 @@ hvar_fn
 
 %if (%2-%%off) >= 1
 %if %2 >= 4
     movd mm %+ %%mmx_idx, [srcq+%2-4]
 %elif (%2-%%off) == 1
     mov            valb, [srcq+%2-1]
 %elif (%2-%%off) == 2
     mov            valw, [srcq+%2-2]
-%elifidn %1, body
+%else
     mov            valb, [srcq+%2-1]
-    sal            vald, 16
+    ror            vald, 16
     mov            valw, [srcq+%2-3]
-%elifidn %1, bottom
-    movd mm %+ %%mmx_idx, [srcq+%2-4]
-%else ; top
-    movd mm %+ %%mmx_idx, [srcq+%2-3]
 %endif
 %endif ; (%2-%%off) >= 1
 %endmacro ; READ_NUM_BYTES
 
 %macro WRITE_NUM_BYTES 2
 %assign %%off 0     ; offset in destination buffer
 %assign %%mmx_idx 0 ; mmx register index
 %assign %%xmm_idx 0 ; xmm register index
@@ -248,28 +244,23 @@ hvar_fn
 
 %if (%2-%%off) >= 1
 %if %2 >= 4
     movd    [dstq+%2-4], mm %+ %%mmx_idx
 %elif (%2-%%off) == 1
     mov     [dstq+%2-1], valb
 %elif (%2-%%off) == 2
     mov     [dstq+%2-2], valw
-%elifidn %1, body
+%else
     mov     [dstq+%2-3], valw
-    sar            vald, 16
+    ror            vald, 16
     mov     [dstq+%2-1], valb
-%else
-    movd           vald, mm %+ %%mmx_idx
-%ifidn %1, bottom
-    sar            vald, 8
+%ifnidn %1, body
+    ror            vald, 16
 %endif
-    mov     [dstq+%2-3], valw
-    sar            vald, 16
-    mov     [dstq+%2-1], valb
 %endif
 %endif ; (%2-%%off) >= 1
 %endmacro ; WRITE_NUM_BYTES
 
 ; vertical top/bottom extend and body copy fast loops
 ; these are function pointers to set-width line copy functions, i.e.
 ; they read a fixed number of pixels into set registers, and write
 ; those out into the destination buffer
--- a/media/ffvpx/libavcodec/x86/vp9dsp_init.c
+++ b/media/ffvpx/libavcodec/x86/vp9dsp_init.c
@@ -372,17 +372,17 @@ av_cold void ff_vp9dsp_init_x86(VP9DSPCo
         init_dir_tm_h_ipred(32, avx);
     }
     if (EXTERNAL_AVX_FAST(cpu_flags)) {
         init_fpel_func(1, 0, 32, put, , avx);
         init_fpel_func(0, 0, 64, put, , avx);
         init_ipred(32, avx, v, VERT);
     }
 
-    if (EXTERNAL_AVX2(cpu_flags)) {
+    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
             init_subpel3_32_64(0, put, 8, avx2);
             init_subpel3_32_64(1, avg, 8, avx2);
 #endif
         }
--- a/media/ffvpx/libavcodec/x86/vp9dsp_init_16bpp.c
+++ b/media/ffvpx/libavcodec/x86/vp9dsp_init_16bpp.c
@@ -124,16 +124,16 @@ av_cold void ff_vp9dsp_init_16bpp_x86(VP
         init_ipred_funcs(dl, DIAG_DOWN_LEFT, 16, avx);
         init_ipred_funcs(dr, DIAG_DOWN_RIGHT, 16, avx);
         init_ipred_funcs(vl, VERT_LEFT, 16, avx);
         init_ipred_funcs(vr, VERT_RIGHT, 16, avx);
         init_ipred_funcs(hu, HOR_UP, 16, avx);
         init_ipred_funcs(hd, HOR_DOWN, 16, avx);
     }
 
-    if (EXTERNAL_AVX2(cpu_flags)) {
+    if (EXTERNAL_AVX2_FAST(cpu_flags)) {
         init_fpel_func(2, 1,  32, avg, _16, avx2);
         init_fpel_func(1, 1,  64, avg, _16, avx2);
         init_fpel_func(0, 1, 128, avg, _16, avx2);
     }
 
 #endif /* HAVE_YASM */
 }
--- a/media/ffvpx/libavcodec/x86/vp9dsp_init_16bpp_template.c
+++ b/media/ffvpx/libavcodec/x86/vp9dsp_init_16bpp_template.c
@@ -220,17 +220,17 @@ av_cold void INIT_FUNC(VP9DSPContext *ds
         }
 #endif
     }
 
     if (EXTERNAL_AVX(cpu_flags)) {
         init_lpf_funcs(BPC, avx);
     }
 
-    if (EXTERNAL_AVX2(cpu_flags)) {
+    if (EXTERNAL_AVX2_FAST(cpu_flags)) {
 #if HAVE_AVX2_EXTERNAL
         init_subpel3_32_64(0,  put, BPC, avx2);
         init_subpel3_32_64(1,  avg, BPC, avx2);
         init_subpel2(2, 0, 16, put, BPC, avx2);
         init_subpel2(2, 1, 16, avg, BPC, avx2);
 #endif
     }
 
--- a/media/ffvpx/libavutil/avstring.c
+++ b/media/ffvpx/libavutil/avstring.c
@@ -321,23 +321,28 @@ int av_match_name(const char *name, cons
 {
     const char *p;
     int len, namelen;
 
     if (!name || !names)
         return 0;
 
     namelen = strlen(name);
-    while ((p = strchr(names, ','))) {
+    while (*names) {
+        int negate = '-' == *names;
+        p = strchr(names, ',');
+        if (!p)
+            p = names + strlen(names);
+        names += negate;
         len = FFMAX(p - names, namelen);
-        if (!av_strncasecmp(name, names, len))
-            return 1;
-        names = p + 1;
+        if (!av_strncasecmp(name, names, len) || !strncmp("ALL", names, FFMAX(3, p - names)))
+            return !negate;
+        names = p + (*p == ',');
     }
-    return !av_strcasecmp(name, names);
+    return 0;
 }
 
 int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end,
                    unsigned int flags)
 {
     const uint8_t *p = *bufp;
     uint32_t top;
     uint64_t code;
--- a/media/ffvpx/libavutil/avstring.h
+++ b/media/ffvpx/libavutil/avstring.h
@@ -279,16 +279,21 @@ const char *av_basename(const char *path
  * @param path the path, on DOS both \ and / are considered separators.
  * @return the path with the separator replaced by the string terminator or ".".
  * @note the function may change the input string.
  */
 const char *av_dirname(char *path);
 
 /**
  * Match instances of a name in a comma-separated list of names.
+ * List entries are checked from the start to the end of the names list,
+ * the first match ends further processing. If an entry prefixed with '-'
+ * matches, then 0 is returned. The "ALL" list entry is considered to
+ * match all names.
+ *
  * @param name  Name to look for.
  * @param names List of names.
  * @return 1 on match, 0 otherwise.
  */
 int av_match_name(const char *name, const char *names);
 
 /**
  * Append path component to the existing path.
--- a/media/ffvpx/libavutil/common.h
+++ b/media/ffvpx/libavutil/common.h
@@ -49,19 +49,22 @@
 #else
 #   define AV_NE(be, le) (le)
 #endif
 
 //rounded division & shift
 #define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
 /* assume b>0 */
 #define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b))
-/* assume a>0 and b>0 */
-#define FF_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b)) \
+/* Fast a/(1<<b) rounded toward +inf. Assume a>=0 and b>=0 */
+#define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b)) \
                                                        : ((a) + (1<<(b)) - 1) >> (b))
+/* Backwards compat. */
+#define FF_CEIL_RSHIFT AV_CEIL_RSHIFT
+
 #define FFUDIV(a,b) (((a)>0 ?(a):(a)-(b)+1) / (b))
 #define FFUMOD(a,b) ((a)-(b)*FFUDIV(a,b))
 
 /**
  * Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they
  * are not representable as absolute values of their type. This is the same
  * as with *abs()
  * @see FFNABS()
@@ -206,17 +209,17 @@ static av_always_inline av_const int32_t
 /**
  * Clip a signed integer into the -(2^p),(2^p-1) range.
  * @param  a value to clip
  * @param  p bit position to clip at
  * @return clipped value
  */
 static av_always_inline av_const int av_clip_intp2_c(int a, int p)
 {
-    if ((a + (1 << p)) & ~((2 << p) - 1))
+    if (((unsigned)a + (1 << p)) & ~((2 << p) - 1))
         return (a >> 31) ^ ((1 << p) - 1);
     else
         return a;
 }
 
 /**
  * Clip a signed integer to an unsigned power of two range.
  * @param  a value to clip
@@ -326,16 +329,21 @@ static av_always_inline av_const int av_
  * @param x value to count bits of
  * @return the number of bits set to one in x
  */
 static av_always_inline av_const int av_popcount64_c(uint64_t x)
 {
     return av_popcount((uint32_t)x) + av_popcount((uint32_t)(x >> 32));
 }
 
+static av_always_inline av_const int av_parity_c(uint32_t v)
+{
+    return av_popcount(v) & 1;
+}
+
 #define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))
 #define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((unsigned)(a) << 24))
 
 /**
  * Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form.
  *
  * @param val      Output value, must be an lvalue of type uint32_t.
  * @param GET_BYTE Expression reading one byte from the input.
@@ -346,23 +354,23 @@ static av_always_inline av_const int av_
  *                 typically a goto statement.
  *
  * @warning ERROR should not contain a loop control statement which
  * could interact with the internal while loop, and should force an
  * exit from the macro code (e.g. through a goto or a return) in order
  * to prevent undefined results.
  */
 #define GET_UTF8(val, GET_BYTE, ERROR)\
-    val= GET_BYTE;\
+    val= (GET_BYTE);\
     {\
         uint32_t top = (val & 128) >> 1;\
         if ((val & 0xc0) == 0x80 || val >= 0xFE)\
             ERROR\
         while (val & top) {\
-            int tmp= GET_BYTE - 128;\
+            int tmp= (GET_BYTE) - 128;\
             if(tmp>>6)\
                 ERROR\
             val= (val<<6) + tmp;\
             top <<= 5;\
         }\
         val &= (top << 1) - 1;\
     }
 
@@ -512,8 +520,11 @@ static av_always_inline av_const int av_
 #   define av_clipd         av_clipd_c
 #endif
 #ifndef av_popcount
 #   define av_popcount      av_popcount_c
 #endif
 #ifndef av_popcount64
 #   define av_popcount64    av_popcount64_c
 #endif
+#ifndef av_parity
+#   define av_parity        av_parity_c
+#endif
--- a/media/ffvpx/libavutil/cpu_internal.h
+++ b/media/ffvpx/libavutil/cpu_internal.h
@@ -19,23 +19,26 @@
 #ifndef AVUTIL_CPU_INTERNAL_H
 #define AVUTIL_CPU_INTERNAL_H
 
 #include "cpu.h"
 
 #define CPUEXT_SUFFIX(flags, suffix, cpuext)                            \
     (HAVE_ ## cpuext ## suffix && ((flags) & AV_CPU_FLAG_ ## cpuext))
 
-#define CPUEXT_SUFFIX_FAST(flags, suffix, cpuext)                       \
+#define CPUEXT_SUFFIX_FAST2(flags, suffix, cpuext, slow_cpuext)         \
     (HAVE_ ## cpuext ## suffix && ((flags) & AV_CPU_FLAG_ ## cpuext) && \
-     !((flags) & AV_CPU_FLAG_ ## cpuext ## SLOW))
+     !((flags) & AV_CPU_FLAG_ ## slow_cpuext ## SLOW))
 
-#define CPUEXT_SUFFIX_SLOW(flags, suffix, cpuext)                       \
+#define CPUEXT_SUFFIX_SLOW2(flags, suffix, cpuext, slow_cpuext)         \
     (HAVE_ ## cpuext ## suffix && ((flags) & AV_CPU_FLAG_ ## cpuext) && \
-     ((flags) & AV_CPU_FLAG_ ## cpuext ## SLOW))
+     ((flags) & AV_CPU_FLAG_ ## slow_cpuext ## SLOW))
+
+#define CPUEXT_SUFFIX_FAST(flags, suffix, cpuext) CPUEXT_SUFFIX_FAST2(flags, suffix, cpuext, cpuext)
+#define CPUEXT_SUFFIX_SLOW(flags, suffix, cpuext) CPUEXT_SUFFIX_SLOW2(flags, suffix, cpuext, cpuext)
 
 #define CPUEXT(flags, cpuext) CPUEXT_SUFFIX(flags, , cpuext)
 #define CPUEXT_FAST(flags, cpuext) CPUEXT_SUFFIX_FAST(flags, , cpuext)
 #define CPUEXT_SLOW(flags, cpuext) CPUEXT_SUFFIX_SLOW(flags, , cpuext)
 
 int ff_get_cpu_flags_aarch64(void);
 int ff_get_cpu_flags_arm(void);
 int ff_get_cpu_flags_ppc(void);
--- a/media/ffvpx/libavutil/ffversion.h
+++ b/media/ffvpx/libavutil/ffversion.h
@@ -1,4 +1,5 @@
+/* Automatically generated by version.sh, do not manually edit! */
 #ifndef AVUTIL_FFVERSION_H
 #define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "n2.8.1-16-gfcb8ee9"
+#define FFMPEG_VERSION "n3.0-1-g0aa2fbd"
 #endif /* AVUTIL_FFVERSION_H */
--- a/media/ffvpx/libavutil/fixed_dsp.c
+++ b/media/ffvpx/libavutil/fixed_dsp.c
@@ -155,10 +155,13 @@ AVFixedDSPContext * avpriv_alloc_fixed_d
     fdsp->vector_fmul_window_scaled = vector_fmul_window_scaled_c;
     fdsp->vector_fmul_window = vector_fmul_window_c;
     fdsp->vector_fmul = vector_fmul_c;
     fdsp->vector_fmul_add = vector_fmul_add_c;
     fdsp->vector_fmul_reverse = vector_fmul_reverse_c;
     fdsp->butterflies_fixed = butterflies_fixed_c;
     fdsp->scalarproduct_fixed = scalarproduct_fixed_c;
 
+    if (ARCH_X86)
+        ff_fixed_dsp_init_x86(fdsp);
+
     return fdsp;
 }
--- a/media/ffvpx/libavutil/fixed_dsp.h
+++ b/media/ffvpx/libavutil/fixed_dsp.h
@@ -156,16 +156,18 @@ typedef struct AVFixedDSPContext {
 /**
  * Allocate and initialize a fixed DSP context.
  * note: should be freed with a av_free call when no longer needed.
  *
  * @param strict  setting to non-zero avoids using functions which may not be IEEE-754 compliant
  */
 AVFixedDSPContext * avpriv_alloc_fixed_dsp(int strict);
 
+void ff_fixed_dsp_init_x86(AVFixedDSPContext *fdsp);
+
 /**
  * Calculate the square root
  *
  * @param x    input fixed point number
  *
  * @param bits format of fixed point number (32 - bits).bits
  *
  * note: input is normalized to (0, 1) fixed point value
--- a/media/ffvpx/libavutil/frame.c
+++ b/media/ffvpx/libavutil/frame.c
@@ -183,17 +183,17 @@ static int get_video_buffer(AVFrame *fra
 
         for (i = 0; i < 4 && frame->linesize[i]; i++)
             frame->linesize[i] = FFALIGN(frame->linesize[i], align);
     }
 
     for (i = 0; i < 4 && frame->linesize[i]; i++) {
         int h = FFALIGN(frame->height, 32);
         if (i == 1 || i == 2)
-            h = FF_CEIL_RSHIFT(h, desc->log2_chroma_h);
+            h = AV_CEIL_RSHIFT(h, desc->log2_chroma_h);
 
         frame->buf[i] = av_buffer_alloc(frame->linesize[i] * h + 16 + 16/*STRIDE_ALIGN*/ - 1);
         if (!frame->buf[i])
             goto fail;
 
         frame->data[i] = frame->buf[i]->data;
     }
     if (desc->flags & AV_PIX_FMT_FLAG_PAL || desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) {
@@ -352,16 +352,17 @@ FF_ENABLE_DEPRECATION_WARNINGS
         av_dict_copy(&sd_dst->metadata, sd_src->metadata, 0);
     }
 
 #if FF_API_FRAME_QP
 FF_DISABLE_DEPRECATION_WARNINGS
     dst->qscale_table = NULL;
     dst->qstride      = 0;
     dst->qscale_type  = 0;
+    av_buffer_unref(&dst->qp_table_buf);
     if (src->qp_table_buf) {
         dst->qp_table_buf = av_buffer_ref(src->qp_table_buf);
         if (dst->qp_table_buf) {
             dst->qscale_table = dst->qp_table_buf->data;
             dst->qstride      = src->qstride;
             dst->qscale_type  = src->qscale_type;
         }
     }
@@ -723,12 +724,17 @@ const char *av_frame_side_data_name(enum
     switch(type) {
     case AV_FRAME_DATA_PANSCAN:         return "AVPanScan";
     case AV_FRAME_DATA_A53_CC:          return "ATSC A53 Part 4 Closed Captions";
     case AV_FRAME_DATA_STEREO3D:        return "Stereoscopic 3d metadata";
     case AV_FRAME_DATA_MATRIXENCODING:  return "AVMatrixEncoding";
     case AV_FRAME_DATA_DOWNMIX_INFO:    return "Metadata relevant to a downmix procedure";
     case AV_FRAME_DATA_REPLAYGAIN:      return "AVReplayGain";
     case AV_FRAME_DATA_DISPLAYMATRIX:   return "3x3 displaymatrix";
+    case AV_FRAME_DATA_AFD:             return "Active format description";
     case AV_FRAME_DATA_MOTION_VECTORS:  return "Motion vectors";
+    case AV_FRAME_DATA_SKIP_SAMPLES:    return "Skip samples";
+    case AV_FRAME_DATA_AUDIO_SERVICE_TYPE:          return "Audio service type";
+    case AV_FRAME_DATA_MASTERING_DISPLAY_METADATA:  return "Mastering display metadata";
+    case AV_FRAME_DATA_GOP_TIMECODE:                return "GOP timecode";
     }
     return NULL;
 }
--- a/media/ffvpx/libavutil/frame.h
+++ b/media/ffvpx/libavutil/frame.h
@@ -101,22 +101,32 @@ enum AVFrameSideDataType {
      * @code
      * u32le number of samples to skip from start of this packet
      * u32le number of samples to skip from end of this packet
      * u8    reason for start skip
      * u8    reason for end   skip (0=padding silence, 1=convergence)
      * @endcode
      */
     AV_FRAME_DATA_SKIP_SAMPLES,
-
     /**
      * This side data must be associated with an audio frame and corresponds to
      * enum AVAudioServiceType defined in avcodec.h.
      */
     AV_FRAME_DATA_AUDIO_SERVICE_TYPE,
+    /**
+     * Mastering display metadata associated with a video frame. The payload is
+     * an AVMasteringDisplayMetadata type and contains information about the
+     * mastering display color volume.
+     */
+    AV_FRAME_DATA_MASTERING_DISPLAY_METADATA,
+    /**
+     * The GOP timecode in 25 bit timecode format. Data format is 64-bit integer.
+     * This is set on the first frame of a GOP that has a temporal reference of 0.
+     */
+    AV_FRAME_DATA_GOP_TIMECODE
 };
 
 enum AVActiveFormatDescription {
     AV_AFD_SAME         = 8,
     AV_AFD_4_3          = 9,
     AV_AFD_16_9         = 10,
     AV_AFD_14_9         = 11,
     AV_AFD_4_3_SP_14_9  = 13,
--- a/media/ffvpx/libavutil/imgutils.c
+++ b/media/ffvpx/libavutil/imgutils.c
@@ -120,17 +120,16 @@ int av_image_fill_pointers(uint8_t *data
 
     data[0] = ptr;
     if (linesizes[0] > (INT_MAX - 1024) / height)
         return AVERROR(EINVAL);
     size[0] = linesizes[0] * height;
 
     if (desc->flags & AV_PIX_FMT_FLAG_PAL ||
         desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) {
-        size[0] = (size[0] + 3) & ~3;
         data[1] = ptr + size[0]; /* palette is stored here as 256 32 bits words */
         return size[0] + 256 * 4;
     }
 
     for (i = 0; i < 4; i++)
         has_plane[desc->comp[i].plane] = 1;
 
     total_size = size[0];
@@ -211,18 +210,23 @@ int av_image_alloc(uint8_t *pointers[4],
         return ret;
     buf = av_malloc(ret + align);
     if (!buf)
         return AVERROR(ENOMEM);
     if ((ret = av_image_fill_pointers(pointers, pix_fmt, h, buf, linesizes)) < 0) {
         av_free(buf);
         return ret;
     }
-    if (desc->flags & AV_PIX_FMT_FLAG_PAL || desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL)
+    if (desc->flags & AV_PIX_FMT_FLAG_PAL || desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) {
         avpriv_set_systematic_pal2((uint32_t*)pointers[1], pix_fmt);
+        if (align < 4) {
+            av_log(NULL, AV_LOG_ERROR, "Formats with a palette require a minimum alignment of 4\n");
+            return AVERROR(EINVAL);
+        }
+    }
 
     if ((desc->flags & AV_PIX_FMT_FLAG_PAL ||
          desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) &&
         pointers[1] - pointers[0] > linesizes[0] * h) {
         /* zero-initialize the padding before the palette */
         memset(pointers[0] + linesizes[0] * h, 0,
                pointers[1] - pointers[0] - linesizes[0] * h);
     }
@@ -320,17 +324,17 @@ void av_image_copy(uint8_t *dst_data[4],
         for (i = 0; i < planes_nb; i++) {
             int h = height;
             int bwidth = av_image_get_linesize(pix_fmt, width, i);
             if (bwidth < 0) {
                 av_log(NULL, AV_LOG_ERROR, "av_image_get_linesize failed\n");
                 return;
             }
             if (i == 1 || i == 2) {
-                h = FF_CEIL_RSHIFT(height, desc->log2_chroma_h);
+                h = AV_CEIL_RSHIFT(height, desc->log2_chroma_h);
             }
             av_image_copy_plane(dst_data[i], dst_linesizes[i],
                                 src_data[i], src_linesizes[i],
                                 bwidth, h);
         }
     }
 }
 
@@ -365,17 +369,17 @@ int av_image_get_buffer_size(enum AVPixe
         return AVERROR(EINVAL);
 
     ret = av_image_check_size(width, height, 0, NULL);
     if (ret < 0)
         return ret;
 
     // do not include palette for these pseudo-paletted formats
     if (desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL)
-        return width * height;
+        return FFALIGN(width, align) * height;
 
     return av_image_fill_arrays(data, linesize, NULL, pix_fmt,
                                 width, height, align);
 }
 
 int av_image_copy_to_buffer(uint8_t *dst, int dst_size,
                             const uint8_t * const src_data[4],
                             const int src_linesize[4],
@@ -403,15 +407,16 @@ int av_image_copy_to_buffer(uint8_t *dst
         for (j = 0; j < h; j++) {
             memcpy(dst, src, linesize[i]);
             dst += FFALIGN(linesize[i], align);
             src += src_linesize[i];
         }
     }
 
     if (desc->flags & AV_PIX_FMT_FLAG_PAL) {
-        uint32_t *d32 = (uint32_t *)(((size_t)dst + 3) & ~3);
+        uint32_t *d32 = (uint32_t *)dst;
+
         for (i = 0; i<256; i++)
             AV_WL32(d32 + i, AV_RN32(src_data[1] + 4*i));
     }
 
     return size;
 }
--- a/media/ffvpx/libavutil/intmath.h
+++ b/media/ffvpx/libavutil/intmath.h
@@ -148,12 +148,18 @@ static av_always_inline av_const unsigne
         x >>= 1;
         i--;
     }
 
     return i;
 }
 #endif
 
+#if AV_GCC_VERSION_AT_LEAST(3,4)
+#ifndef av_parity
+#define av_parity __builtin_parity
+#endif
+#endif
+
 /**
  * @}
  */
 #endif /* AVUTIL_INTMATH_H */
--- a/media/ffvpx/libavutil/libm.h
+++ b/media/ffvpx/libavutil/libm.h
@@ -338,16 +338,35 @@ static av_always_inline av_const int avp
 }
 
 #define isnan(x)                  \
     (sizeof(x) == sizeof(float)   \
         ? avpriv_isnanf(x)        \
         : avpriv_isnan(x))
 #endif /* HAVE_ISNAN */
 
+#if !HAVE_ISFINITE
+static av_always_inline av_const int avpriv_isfinitef(float x)
+{
+    uint32_t v = av_float2int(x);
+    return (v & 0x7f800000) != 0x7f800000;
+}
+
+static av_always_inline av_const int avpriv_isfinite(double x)
+{
+    uint64_t v = av_double2int(x);
+    return (v & 0x7ff0000000000000) != 0x7ff0000000000000;
+}
+
+#define isfinite(x)                  \
+    (sizeof(x) == sizeof(float)      \
+        ? avpriv_isfinitef(x)        \
+        : avpriv_isfinite(x))
+#endif /* HAVE_ISFINITE */
+
 #if !HAVE_HYPOT
 static inline av_const double hypot(double x, double y)
 {
     double ret, temp;
     x = fabs(x);
     y = fabs(y);
 
     if (isinf(x) || isinf(y))
--- a/media/ffvpx/libavutil/opt.c
+++ b/media/ffvpx/libavutil/opt.c
@@ -1471,20 +1471,21 @@ int av_opt_set_dict2(void *obj, AVDictio
     int ret = 0;
 
     if (!options)
         return 0;
 
     while ((t = av_dict_get(*options, "", t, AV_DICT_IGNORE_SUFFIX))) {
         ret = av_opt_set(obj, t->key, t->value, search_flags);
         if (ret == AVERROR_OPTION_NOT_FOUND)
-            av_dict_set(&tmp, t->key, t->value, 0);
-        else if (ret < 0) {
+            ret = av_dict_set(&tmp, t->key, t->value, 0);
+        if (ret < 0) {
             av_log(obj, AV_LOG_ERROR, "Error setting option %s to value %s.\n", t->key, t->value);
-            break;
+            av_dict_free(&tmp);
+            return ret;
         }
         ret = 0;
     }
     av_dict_free(options);
     *options = tmp;
     return ret;
 }
 
--- a/media/ffvpx/libavutil/parseutils.c
+++ b/media/ffvpx/libavutil/parseutils.c
@@ -26,23 +26,24 @@
 #include "avstring.h"
 #include "avutil.h"
 #include "common.h"
 #include "eval.h"
 #include "log.h"
 /* #include "random_seed.h" */
 #include "time_internal.h"
 #include "parseutils.h"
+#include "fftime.h"
 
 #ifdef TEST
 
 #define av_get_random_seed av_get_random_seed_deterministic
 static uint32_t av_get_random_seed_deterministic(void);
 
-#define time(t) 1331972053
+#define av_gettime() 1331972053200000
 
 #endif
 
 int av_parse_ratio(AVRational *q, const char *str, int max,
                    int log_offset, void *log_ctx)
 {
     char c;
     int ret;
@@ -553,38 +554,44 @@ time_t av_timegm(struct tm *tm)
     t += 3600 * tm->tm_hour + 60 * tm->tm_min + tm->tm_sec;
 
     return t;
 }
 
 int av_parse_time(int64_t *timeval, const char *timestr, int duration)
 {
     const char *p, *q;
-    int64_t t;
+    int64_t t, now64;
     time_t now;
     struct tm dt = { 0 }, tmbuf;
     int today = 0, negative = 0, microseconds = 0;
     int i;
     static const char * const date_fmt[] = {
-        "%Y-%m-%d",
+        "%Y - %m - %d",
         "%Y%m%d",
     };
     static const char * const time_fmt[] = {
         "%H:%M:%S",
         "%H%M%S",
     };
+    static const char * const tz_fmt[] = {
+        "%H:%M",
+        "%H%M",
+        "%H",
+    };
 
     p = timestr;
     q = NULL;
     *timeval = INT64_MIN;
     if (!duration) {
-        now = time(0);
+        now64 = av_gettime();
+        now = now64 / 1000000;
 
         if (!av_strcasecmp(timestr, "now")) {
-            *timeval = (int64_t) now * 1000000;
+            *timeval = now64;
             return 0;
         }
 
         /* parse the year-month-day part */
         for (i = 0; i < FF_ARRAY_ELEMS(date_fmt); i++) {
             q = av_small_strptime(p, date_fmt[i], &dt);
             if (q)
                 break;
@@ -593,18 +600,21 @@ int av_parse_time(int64_t *timeval, cons
         /* if the year-month-day part is missing, then take the
          * current year-month-day time */
         if (!q) {
             today = 1;
             q = p;
         }
         p = q;
 
-        if (*p == 'T' || *p == 't' || *p == ' ')
+        if (*p == 'T' || *p == 't')
             p++;
+        else
+            while (av_isspace(*p))
+                p++;
 
         /* parse the hour-minute-second part */
         for (i = 0; i < FF_ARRAY_ELEMS(time_fmt); i++) {
             q = av_small_strptime(p, time_fmt[i], &dt);
             if (q)
                 break;
         }
     } else {
@@ -648,25 +658,42 @@ int av_parse_time(int64_t *timeval, cons
         while (av_isdigit(*q))
             q++;
     }
 
     if (duration) {
         t = dt.tm_hour * 3600 + dt.tm_min * 60 + dt.tm_sec;
     } else {
         int is_utc = *q == 'Z' || *q == 'z';
+        int tzoffset = 0;
         q += is_utc;
+        if (!today && !is_utc && (*q == '+' || *q == '-')) {
+            struct tm tz = { 0 };
+            int sign = (*q == '+' ? -1 : 1);
+            q++;
+            p = q;
+            for (i = 0; i < FF_ARRAY_ELEMS(tz_fmt); i++) {
+                q = av_small_strptime(p, tz_fmt[i], &tz);
+                if (q)
+                    break;
+            }
+            if (!q)
+                return AVERROR(EINVAL);
+            tzoffset = sign * (tz.tm_hour * 60 + tz.tm_min) * 60;
+            is_utc = 1;
+        }
         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;
         }
         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);
 
     t *= 1000000;
     t += microseconds;
@@ -853,29 +880,32 @@ int main(void)
         int64_t tv;
         time_t tvi;
         struct tm *tm;
         static char tzstr[] = "TZ=CET-1";
         static const char * const time_string[] = {
             "now",
             "12:35:46",
             "2000-12-20 0:02:47.5z",
+            "2012 - 02-22  17:44:07",
             "2000-12-20T010247.6",
+            "2000-12-12 1:35:46+05:30",
+            "2002-12-12 22:30:40-02",
         };
         static const char * const duration_string[] = {
             "2:34:56.79",
             "-1:23:45.67",
             "42.1729",
             "-1729.42",
             "12:34",
         };
 
         av_log_set_level(AV_LOG_DEBUG);
         putenv(tzstr);
-        printf("(now is 2012-03-17 09:14:13 +0100, local time is UTC+1)\n");
+        printf("(now is 2012-03-17 09:14:13.2 +0100, local time is UTC+1)\n");
         for (i = 0;  i < FF_ARRAY_ELEMS(time_string); i++) {
             printf("%-24s -> ", time_string[i]);
             if (av_parse_time(&tv, time_string[i], 0)) {
                 printf("error\n");
             } else {
                 tvi = tv / 1000000;
                 tm = gmtime(&tvi);
                 printf("%14"PRIi64".%06d = %04d-%02d-%02dT%02d:%02d:%02dZ\n",
--- a/media/ffvpx/libavutil/pixdesc.c
+++ b/media/ffvpx/libavutil/pixdesc.c
@@ -1999,16 +1999,40 @@ static const AVPixFmtDescriptor av_pix_f
         .comp = {
             { 0, 8, 2, 0, 16, 7, 15, 3 },        /* Y */
             { 0, 8, 4, 0, 16, 7, 15, 5 },        /* U */
             { 0, 8, 6, 0, 16, 7, 15, 7 },        /* V */
             { 0, 8, 0, 0, 16, 7, 15, 1 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_ALPHA,
     },
+    [AV_PIX_FMT_P010LE] = {
+        .name = "p010le",
+        .nb_components = 3,
+        .log2_chroma_w = 1,
+        .log2_chroma_h = 1,
+        .comp = {
+            { 0, 2, 0, 6, 10, 1, 9, 1 },        /* Y */
+            { 1, 4, 0, 6, 10, 3, 9, 1 },        /* U */
+            { 1, 4, 2, 6, 10, 3, 9, 3 },        /* V */
+        },
+        .flags = AV_PIX_FMT_FLAG_PLANAR,
+    },
+    [AV_PIX_FMT_P010BE] = {
+        .name = "p010be",
+        .nb_components = 3,
+        .log2_chroma_w = 1,
+        .log2_chroma_h = 1,
+        .comp = {
+            { 0, 2, 0, 6, 10, 1, 9, 1 },        /* Y */
+            { 1, 4, 0, 6, 10, 3, 9, 1 },        /* U */
+            { 1, 4, 2, 6, 10, 3, 9, 3 },        /* V */
+        },
+        .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE,
+    },
 };
 #if FF_API_PLUS1_MINUS1
 FF_ENABLE_DEPRECATION_WARNINGS
 #endif
 
 static const char *color_range_names[AVCOL_RANGE_NB] = {
     "unknown", "tv", "pc",
 };
--- a/media/ffvpx/libavutil/pixdesc.h
+++ b/media/ffvpx/libavutil/pixdesc.h
@@ -287,18 +287,18 @@ enum AVPixelFormat av_pix_fmt_desc_get_i
  * the pixel format AVPixFmtDescriptor.
  *
  * See av_get_chroma_sub_sample() for a function that asserts a
  * valid pixel format instead of returning an error code.
  * Its recommended that you use avcodec_get_chroma_sub_sample unless
  * you do check the return code!
  *
  * @param[in]  pix_fmt the pixel format
- * @param[out] h_shift store log2_chroma_w
- * @param[out] v_shift store log2_chroma_h
+ * @param[out] h_shift store log2_chroma_w (horizontal/width shift)
+ * @param[out] v_shift store log2_chroma_h (vertical/height shift)
  *
  * @return 0 on success, AVERROR(ENOSYS) on invalid or unknown pixel format
  */
 int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt,
                                      int *h_shift, int *v_shift);
 
 /**
  * @return number of planes in pix_fmt, a negative AVERROR if pix_fmt is not a
--- a/media/ffvpx/libavutil/pixfmt.h
+++ b/media/ffvpx/libavutil/pixfmt.h
@@ -284,16 +284,19 @@ enum AVPixelFormat {
     AV_PIX_FMT_YUV440P10BE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
     AV_PIX_FMT_YUV440P12LE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
     AV_PIX_FMT_YUV440P12BE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
     AV_PIX_FMT_AYUV64LE,    ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), little-endian
     AV_PIX_FMT_AYUV64BE,    ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), big-endian
 
     AV_PIX_FMT_VIDEOTOOLBOX, ///< hardware decoding through Videotoolbox
 
+    AV_PIX_FMT_P010LE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, little-endian
+    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_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
 };
 
 #define AV_PIX_FMT_Y400A AV_PIX_FMT_GRAY8A
 #define AV_PIX_FMT_GBR24P AV_PIX_FMT_GBRP
 
 #if AV_HAVE_BIGENDIAN
 #   define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##be
@@ -360,16 +363,17 @@ enum AVPixelFormat {
 #define AV_PIX_FMT_YUVA444P10 AV_PIX_FMT_NE(YUVA444P10BE, YUVA444P10LE)
 #define AV_PIX_FMT_YUVA420P16 AV_PIX_FMT_NE(YUVA420P16BE, YUVA420P16LE)
 #define AV_PIX_FMT_YUVA422P16 AV_PIX_FMT_NE(YUVA422P16BE, YUVA422P16LE)
 #define AV_PIX_FMT_YUVA444P16 AV_PIX_FMT_NE(YUVA444P16BE, YUVA444P16LE)
 
 #define AV_PIX_FMT_XYZ12      AV_PIX_FMT_NE(XYZ12BE, XYZ12LE)
 #define AV_PIX_FMT_NV20       AV_PIX_FMT_NE(NV20BE,  NV20LE)
 #define AV_PIX_FMT_AYUV64     AV_PIX_FMT_NE(AYUV64BE, AYUV64LE)
+#define AV_PIX_FMT_P010       AV_PIX_FMT_NE(P010BE,  P010LE)
 
 /**
   * Chromaticity coordinates of the source primaries.
   */
 enum AVColorPrimaries {
     AVCOL_PRI_RESERVED0   = 0,
     AVCOL_PRI_BT709       = 1,  ///< also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B
     AVCOL_PRI_UNSPECIFIED = 2,
--- a/media/ffvpx/libavutil/qsort.h
+++ b/media/ffvpx/libavutil/qsort.h
@@ -13,16 +13,19 @@
  * 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
  */
 
+#ifndef AVUTIL_QSORT_H
+#define AVUTIL_QSORT_H
+
 #include "common.h"
 
 
 /**
  * Quicksort
  * This sort is fast, and fully inplace but not stable and it is possible
  * to construct input that requires O(n^2) time but this is very unlikely to
  * happen with non constructed input.
@@ -110,8 +113,10 @@
             if(a[0]>=i+step) a[0] = a[1];\
             for(; j<end; j++){\
                 tmp[j] = p[ a[0]++ ];\
             }\
         }\
         FFSWAP(type*, p, tmp);\
     }\
 } while (0)
+
+#endif /* AVUTIL_QSORT_H */
--- a/media/ffvpx/libavutil/thread.h
+++ b/media/ffvpx/libavutil/thread.h
@@ -25,16 +25,112 @@
 #include "config.h"
 
 #if HAVE_PTHREADS || HAVE_W32THREADS || HAVE_OS2THREADS
 
 #define USE_ATOMICS 0
 
 #if HAVE_PTHREADS
 #include <pthread.h>
+
+#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1
+
+#include "log.h"
+
+#define ASSERT_PTHREAD_NORET(func, ...) do {                            \
+    int ret = func(__VA_ARGS__);                                        \
+    if (ret) {                                                          \
+        av_log(NULL, AV_LOG_FATAL, AV_STRINGIFY(func)                   \
+               " failed with error: %s\n", av_err2str(AVERROR(ret)));   \
+        abort();                                                        \
+    }                                                                   \
+} while (0)
+
+#define ASSERT_PTHREAD(func, ...) do {                                  \
+    ASSERT_PTHREAD_NORET(func, __VA_ARGS__);                            \
+    return 0;                                                           \
+} while (0)
+
+static inline int strict_pthread_join(pthread_t thread, void **value_ptr)
+{
+    ASSERT_PTHREAD(pthread_join, thread, value_ptr);
+}
+
+static inline int strict_pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)
+{
+    if (attr) {
+        ASSERT_PTHREAD_NORET(pthread_mutex_init, mutex, attr);
+    } else {
+        pthread_mutexattr_t local_attr;
+        ASSERT_PTHREAD_NORET(pthread_mutexattr_init, &local_attr);
+        ASSERT_PTHREAD_NORET(pthread_mutexattr_settype, &local_attr, PTHREAD_MUTEX_ERRORCHECK);
+        ASSERT_PTHREAD_NORET(pthread_mutex_init, mutex, &local_attr);
+        ASSERT_PTHREAD_NORET(pthread_mutexattr_destroy, &local_attr);
+    }
+    return 0;
+}
+
+static inline int strict_pthread_mutex_destroy(pthread_mutex_t *mutex)
+{
+    ASSERT_PTHREAD(pthread_mutex_destroy, mutex);
+}
+
+static inline int strict_pthread_mutex_lock(pthread_mutex_t *mutex)
+{
+    ASSERT_PTHREAD(pthread_mutex_lock, mutex);
+}
+
+static inline int strict_pthread_mutex_unlock(pthread_mutex_t *mutex)
+{
+    ASSERT_PTHREAD(pthread_mutex_unlock, mutex);
+}
+
+static inline int strict_pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr)
+{
+    ASSERT_PTHREAD(pthread_cond_init, cond, attr);
+}
+
+static inline int strict_pthread_cond_destroy(pthread_cond_t *cond)
+{
+    ASSERT_PTHREAD(pthread_cond_destroy, cond);
+}
+
+static inline int strict_pthread_cond_signal(pthread_cond_t *cond)
+{
+    ASSERT_PTHREAD(pthread_cond_signal, cond);
+}
+
+static inline int strict_pthread_cond_broadcast(pthread_cond_t *cond)
+{
+    ASSERT_PTHREAD(pthread_cond_broadcast, cond);
+}
+
+static inline int strict_pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
+{
+    ASSERT_PTHREAD(pthread_cond_wait, cond, mutex);
+}
+
+static inline int strict_pthread_once(pthread_once_t *once_control, void (*init_routine)(void))
+{
+    ASSERT_PTHREAD(pthread_once, once_control, init_routine);
+}
+
+#define pthread_join           strict_pthread_join
+#define pthread_mutex_init     strict_pthread_mutex_init
+#define pthread_mutex_destroy  strict_pthread_mutex_destroy
+#define pthread_mutex_lock     strict_pthread_mutex_lock
+#define pthread_mutex_unlock   strict_pthread_mutex_unlock
+#define pthread_cond_init      strict_pthread_cond_init
+#define pthread_cond_destroy   strict_pthread_cond_destroy
+#define pthread_cond_signal    strict_pthread_cond_signal
+#define pthread_cond_broadcast strict_pthread_cond_broadcast
+#define pthread_cond_wait      strict_pthread_cond_wait
+#define pthread_once           strict_pthread_once
+#endif
+
 #elif HAVE_OS2THREADS
 #include "compat/os2threads.h"
 #else
 #include "compat/w32pthreads.h"
 #endif
 
 #define AVMutex pthread_mutex_t
 
--- a/media/ffvpx/libavutil/utils.c
+++ b/media/ffvpx/libavutil/utils.c
@@ -48,17 +48,17 @@ unsigned avutil_version(void)
     av_assert0(AVMEDIA_TYPE_ATTACHMENT == 4);
     av_assert0(AV_PICTURE_TYPE_BI == 7);
     av_assert0(LIBAVUTIL_VERSION_MICRO >= 100);
     av_assert0(HAVE_MMX2 == HAVE_MMXEXT);
 
     av_assert0(((size_t)-1) > 0); // C guarantees this but if false on a platform we care about revert at least b284e1ffe343d6697fb950d1ee517bafda8a9844
 
     if (av_sat_dadd32(1, 2) != 5) {
-        av_log(NULL, AV_LOG_FATAL, "Libavutil has been build with a broken binutils, please upgrade binutils and rebuild\n");
+        av_log(NULL, AV_LOG_FATAL, "Libavutil has been built with a broken binutils, please upgrade binutils and rebuild\n");
         abort();
     }
 
     if (llrint(1LL<<60) != 1LL<<60) {
         av_log(NULL, AV_LOG_ERROR, "Libavutil has been linked to a broken llrint()\n");
     }
 
     checks_done = 1;
--- a/media/ffvpx/libavutil/version.h
+++ b/media/ffvpx/libavutil/version.h
@@ -59,18 +59,18 @@
  *
  * 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  12
-#define LIBAVUTIL_VERSION_MICRO 100
+#define LIBAVUTIL_VERSION_MINOR  17
+#define LIBAVUTIL_VERSION_MICRO 103
 
 #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
@@ -121,9 +121,8 @@
 #endif
 
 
 /**
  * @}
  */
 
 #endif /* AVUTIL_VERSION_H */
-
--- a/media/ffvpx/libavutil/x86/cpu.c
+++ b/media/ffvpx/libavutil/x86/cpu.c
@@ -177,23 +177,21 @@ int ff_get_cpu_flags_x86(void)
            AV_CPU_FLAG_SSE2 and AV_CPU_FLAG_SSE2SLOW are both set in this case
            so that SSE2 is used unless explicitly disabled by checking
            AV_CPU_FLAG_SSE2SLOW. */
             if (rval & AV_CPU_FLAG_SSE2 && !(ecx & 0x00000040))
                 rval |= AV_CPU_FLAG_SSE2SLOW;
 
         /* Similar to the above but for AVX functions on AMD processors.
            This is necessary only for functions using YMM registers on Bulldozer
-           based CPUs as they lack 256-bits execution units. SSE/AVX functions
-           using XMM registers are always faster on them.
+           and Jaguar based CPUs as they lack 256-bits execution units. SSE/AVX
+           functions using XMM registers are always faster on them.
            AV_CPU_FLAG_AVX and AV_CPU_FLAG_AVXSLOW are both set so that AVX is
-           used unless explicitly disabled by checking AV_CPU_FLAG_AVXSLOW.
-           TODO: Confirm if Excavator is affected or not by this once it's
-                 released, and update the check if necessary. Same for btver2. */
-            if (family == 0x15 && (rval & AV_CPU_FLAG_AVX))
+           used unless explicitly disabled by checking AV_CPU_FLAG_AVXSLOW. */
+            if ((family == 0x15 || family == 0x16) && (rval & AV_CPU_FLAG_AVX))
                 rval |= AV_CPU_FLAG_AVXSLOW;
         }
 
         /* XOP and FMA4 use the AVX instruction coding scheme, so they can't be
          * used unless the OS has AVX support. */
         if (rval & AV_CPU_FLAG_AVX) {
             if (ecx & 0x00000800)
                 rval |= AV_CPU_FLAG_XOP;
--- a/media/ffvpx/libavutil/x86/cpu.h
+++ b/media/ffvpx/libavutil/x86/cpu.h
@@ -63,18 +63,22 @@
 #define EXTERNAL_SSSE3(flags)       CPUEXT_SUFFIX(flags, _EXTERNAL, SSSE3)
 #define EXTERNAL_SSE4(flags)        CPUEXT_SUFFIX(flags, _EXTERNAL, SSE4)
 #define EXTERNAL_SSE42(flags)       CPUEXT_SUFFIX(flags, _EXTERNAL, SSE42)
 #define EXTERNAL_AVX(flags)         CPUEXT_SUFFIX(flags, _EXTERNAL, AVX)
 #define EXTERNAL_AVX_FAST(flags)    CPUEXT_SUFFIX_FAST(flags, _EXTERNAL, AVX)
 #define EXTERNAL_AVX_SLOW(flags)    CPUEXT_SUFFIX_SLOW(flags, _EXTERNAL, AVX)
 #define EXTERNAL_XOP(flags)         CPUEXT_SUFFIX(flags, _EXTERNAL, XOP)
 #define EXTERNAL_FMA3(flags)        CPUEXT_SUFFIX(flags, _EXTERNAL, FMA3)
+#define EXTERNAL_FMA3_FAST(flags)   CPUEXT_SUFFIX_FAST2(flags, _EXTERNAL, FMA3, AVX)
+#define EXTERNAL_FMA3_SLOW(flags)   CPUEXT_SUFFIX_SLOW2(flags, _EXTERNAL, FMA3, AVX)
 #define EXTERNAL_FMA4(flags)        CPUEXT_SUFFIX(flags, _EXTERNAL, FMA4)
 #define EXTERNAL_AVX2(flags)        CPUEXT_SUFFIX(flags, _EXTERNAL, AVX2)
+#define EXTERNAL_AVX2_FAST(flags)   CPUEXT_SUFFIX_FAST2(flags, _EXTERNAL, AVX2, AVX)
+#define EXTERNAL_AVX2_SLOW(flags)   CPUEXT_SUFFIX_SLOW2(flags, _EXTERNAL, AVX2, AVX)
 #define EXTERNAL_AESNI(flags)       CPUEXT_SUFFIX(flags, _EXTERNAL, AESNI)
 
 #define INLINE_AMD3DNOW(flags)      CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOW)
 #define INLINE_AMD3DNOWEXT(flags)   CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOWEXT)
 #define INLINE_MMX(flags)           CPUEXT_SUFFIX(flags, _INLINE, MMX)
 #define INLINE_MMXEXT(flags)        CPUEXT_SUFFIX(flags, _INLINE, MMXEXT)
 #define INLINE_SSE(flags)           CPUEXT_SUFFIX(flags, _INLINE, SSE)
 #define INLINE_SSE2(flags)          CPUEXT_SUFFIX(flags, _INLINE, SSE2)
--- a/media/ffvpx/libavutil/x86/emms.h
+++ b/media/ffvpx/libavutil/x86/emms.h
@@ -29,17 +29,23 @@ void avpriv_emms_yasm(void);
 #   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()
  */
 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__)
     if(av_get_cpu_flags() & AV_CPU_FLAG_MMX)
+#endif
         __asm__ volatile ("emms" ::: "memory");
 }
 #elif HAVE_MMX && HAVE_MM_EMPTY
 #   include <mmintrin.h>
 #   define emms_c _mm_empty
 #elif HAVE_MMX_EXTERNAL
 #   define emms_c avpriv_emms_yasm
 #endif /* HAVE_MMX_INLINE */
new file mode 100644
--- /dev/null
+++ b/media/ffvpx/libavutil/x86/fixed_dsp.asm
@@ -0,0 +1,48 @@
+;*****************************************************************************
+;* x86-optimized Float DSP functions
+;*
+;* Copyright 2016 James Almer
+;*
+;* This file is part of FFmpeg.
+;*
+;* FFmpeg is free software; you can redistribute it and/or
+;* modify it under the terms of the GNU Lesser General Public
+;* License as published by the Free Software Foundation; either
+;* version 2.1 of the License, or (at your option) any later version.
+;*
+;* FFmpeg is distributed in the hope that it will be useful,
+;* but WITHOUT ANY WARRANTY; without even the implied warranty of
+;* 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
+;******************************************************************************
+
+%include "x86util.asm"
+
+SECTION .text
+
+;-----------------------------------------------------------------------------
+; void ff_butterflies_fixed(float *src0, float *src1, int len);
+;-----------------------------------------------------------------------------
+INIT_XMM sse2
+cglobal butterflies_fixed, 3,3,3, src0, src1, len
+    shl       lend, 2
+    add      src0q, lenq
+    add      src1q, lenq
+    neg       lenq
+
+align 16
+.loop:
+    mova        m0, [src0q + lenq]
+    mova        m1, [src1q + lenq]
+    mova        m2, m0
+    paddd       m0, m1
+    psubd       m2, m1
+    mova        [src0q + lenq], m0
+    mova        [src1q + lenq], m2
+    add       lenq, mmsize
+    jl .loop
+    RET
new file mode 100644
--- /dev/null
+++ b/media/ffvpx/libavutil/x86/fixed_dsp_init.c
@@ -0,0 +1,35 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * 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
+ */
+
+#include "config.h"
+
+#include "libavutil/attributes.h"
+#include "libavutil/cpu.h"
+#include "libavutil/fixed_dsp.h"
+#include "cpu.h"
+
+void ff_butterflies_fixed_sse2(int *src0, int *src1, int len);
+
+av_cold void ff_fixed_dsp_init_x86(AVFixedDSPContext *fdsp)
+{
+    int cpu_flags = av_get_cpu_flags();
+
+    if (EXTERNAL_SSE2(cpu_flags)) {
+        fdsp->butterflies_fixed = ff_butterflies_fixed_sse2;
+    }
+}
--- a/media/ffvpx/libavutil/x86/float_dsp.asm
+++ b/media/ffvpx/libavutil/x86/float_dsp.asm
@@ -327,20 +327,20 @@ VECTOR_FMUL_REVERSE
 %if HAVE_AVX_EXTERNAL
 INIT_YMM avx
 VECTOR_FMUL_REVERSE
 %endif
 
 ; float scalarproduct_float_sse(const float *v1, const float *v2, int len)
 INIT_XMM sse
 cglobal scalarproduct_float, 3,3,2, v1, v2, offset
+    shl   offsetd, 2
+    add       v1q, offsetq
+    add       v2q, offsetq
     neg   offsetq
-    shl   offsetq, 2
-    sub       v1q, offsetq
-    sub       v2q, offsetq
     xorps    xmm0, xmm0
 .loop:
     movaps   xmm1, [v1q+offsetq]
     mulps    xmm1, [v2q+offsetq]
     addps    xmm0, xmm1
     add   offsetq, 16
     js .loop
     movhlps  xmm1, xmm0
@@ -354,28 +354,22 @@ cglobal scalarproduct_float, 3,3,2, v1, 
 %endif
     RET
 
 ;-----------------------------------------------------------------------------
 ; void ff_butterflies_float(float *src0, float *src1, int len);
 ;-----------------------------------------------------------------------------
 INIT_XMM sse
 cglobal butterflies_float, 3,3,3, src0, src1, len
-%if ARCH_X86_64
-    movsxd    lenq, lend
-%endif
-    test      lenq, lenq
-    jz .end
-    shl       lenq, 2
+    shl       lend, 2
     add      src0q, lenq
     add      src1q, lenq
     neg       lenq
 .loop:
     mova        m0, [src0q + lenq]
     mova        m1, [src1q + lenq]
     subps       m2, m0, m1
     addps       m0, m0, m1
     mova        [src1q + lenq], m2
     mova        [src0q + lenq], m0
     add       lenq, mmsize
     jl .loop
-.end:
     REP_RET
--- a/media/ffvpx/libavutil/x86/float_dsp_init.c
+++ b/media/ffvpx/libavutil/x86/float_dsp_init.c
@@ -87,13 +87,13 @@ av_cold void ff_float_dsp_init_x86(AVFlo
     }
     if (EXTERNAL_AVX_FAST(cpu_flags)) {
         fdsp->vector_fmul = ff_vector_fmul_avx;
         fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_avx;
         fdsp->vector_dmul_scalar = ff_vector_dmul_scalar_avx;
         fdsp->vector_fmul_add    = ff_vector_fmul_add_avx;
         fdsp->vector_fmul_reverse = ff_vector_fmul_reverse_avx;
     }
-    if (EXTERNAL_FMA3(cpu_flags) && !(cpu_flags & AV_CPU_FLAG_AVXSLOW)) {
+    if (EXTERNAL_FMA3_FAST(cpu_flags)) {
         fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_fma3;
         fdsp->vector_fmul_add    = ff_vector_fmul_add_fma3;
     }
 }
--- a/media/ffvpx/libavutil/x86/intmath.h
+++ b/media/ffvpx/libavutil/x86/intmath.h
@@ -17,16 +17,17 @@
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 #ifndef AVUTIL_X86_INTMATH_H
 #define AVUTIL_X86_INTMATH_H
 
 #include <stdint.h>
+#include <stdlib.h>
 #if HAVE_FAST_CLZ
 #if defined(_MSC_VER)
 #include <intrin.h>
 #elif defined(__INTEL_COMPILER)
 #include <immintrin.h>
 #endif
 #endif
 #include "config.h"
@@ -93,11 +94,43 @@ static av_always_inline av_const unsigne
         __asm__ ("bzhi %2, %1, %0 \n\t" : "=r"(x) : "rm"(a), "r"(p));
         return x;
     }
 }
 #endif /* AV_GCC_VERSION_AT_LEAST */
 
 #endif /* __BMI2__ */
 
+#if defined(__SSE2__) && !defined(__INTEL_COMPILER)
+
+#define av_clipd av_clipd_sse2
+static av_always_inline av_const double av_clipd_sse2(double a, double amin, double amax)
+{
+#if defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
+    if (amin > amax) abort();
+#endif
+    __asm__ ("minsd %2, %0 \n\t"
+             "maxsd %1, %0 \n\t"
+             : "+&x"(a) : "xm"(amin), "xm"(amax));
+    return a;
+}
+
+#endif /* __SSE2__ */
+
+#if defined(__SSE__) && !defined(__INTEL_COMPILER)
+
+#define av_clipf av_clipf_sse
+static av_always_inline av_const float av_clipf_sse(float a, float amin, float amax)
+{
+#if defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
+    if (amin > amax) abort();
+#endif
+    __asm__ ("minss %2, %0 \n\t"
+             "maxss %1, %0 \n\t"
+             : "+&x"(a) : "xm"(amin), "xm"(amax));
+    return a;
+}
+
+#endif /* __SSE__ */
+
 #endif /* __GNUC__ */
 
 #endif /* AVUTIL_X86_INTMATH_H */
--- a/media/ffvpx/libavutil/x86/lls.asm
+++ b/media/ffvpx/libavutil/x86/lls.asm
@@ -120,86 +120,141 @@ cglobal update_lls, 2,5,8, ctx, var, i, 
     ADDPD_MEM COVAR(0,0), m0
     inc     iq
     add covarq, COVAR_STRIDE
     test    id, id
     jle .loop2x1
 .ret:
     REP_RET
 
-%if HAVE_AVX_EXTERNAL
-INIT_YMM avx
+%macro UPDATE_LLS 0
 cglobal update_lls, 3,6,8, ctx, var, count, i, j, count2
     %define covarq ctxq
     mov  countd, [ctxq + LLSModel.indep_count]
     lea count2d, [countq-2]
     xor     id, id
 .loopi:
     ; Compute all 10 pairwise products of a 4x4 block that lies on the diagonal
     mova    ymm1, [varq + iq*8]
     vbroadcastsd ymm4, [varq + iq*8]
     vbroadcastsd ymm5, [varq + iq*8 + 8]
     vbroadcastsd ymm6, [varq + iq*8 + 16]
     vbroadcastsd ymm7, [varq + iq*8 + 24]
     vextractf128 xmm3, ymm1, 1
+%if cpuflag(fma3)
+    mova ymm0, COVAR(iq  ,0)
+    mova xmm2, COVAR(iq+2,2)
+    fmaddpd ymm0, ymm1, ymm4, ymm0
+    fmaddpd xmm2, xmm3, xmm6, xmm2
+    fmaddpd ymm1, ymm5, ymm1, COVAR(iq  ,1)
+    fmaddpd xmm3, xmm7, xmm3, COVAR(iq+2,3)
+    mova COVAR(iq  ,0), ymm0
+    mova COVAR(iq  ,1), ymm1
+    mova COVAR(iq+2,2), xmm2
+    mova COVAR(iq+2,3), xmm3
+%else
     vmulpd  ymm0, ymm1, ymm4
     vmulpd  ymm1, ymm1, ymm5
     vmulpd  xmm2, xmm3, xmm6
     vmulpd  xmm3, xmm3, xmm7
     ADDPD_MEM COVAR(iq  ,0), ymm0
     ADDPD_MEM COVAR(iq  ,1), ymm1
     ADDPD_MEM COVAR(iq+2,2), xmm2
     ADDPD_MEM COVAR(iq+2,3), xmm3
+%endif ; cpuflag(fma3)
     lea     jd, [iq + 4]
     cmp     jd, count2d
     jg .skip4x4
 .loop4x4:
     ; Compute all 16 pairwise products of a 4x4 block
     mova    ymm3, [varq + jq*8]
+%if cpuflag(fma3)
+    mova ymm0, COVAR(jq, 0)
+    mova ymm1, COVAR(jq, 1)
+    mova ymm2, COVAR(jq, 2)
+    fmaddpd ymm0, ymm3, ymm4, ymm0
+    fmaddpd ymm1, ymm3, ymm5, ymm1
+    fmaddpd ymm2, ymm3, ymm6, ymm2
+    fmaddpd ymm3, ymm7, ymm3, COVAR(jq,3)
+    mova COVAR(jq, 0), ymm0
+    mova COVAR(jq, 1), ymm1
+    mova COVAR(jq, 2), ymm2
+    mova COVAR(jq, 3), ymm3
+%else
     vmulpd  ymm0, ymm3, ymm4
     vmulpd  ymm1, ymm3, ymm5
     vmulpd  ymm2, ymm3, ymm6
     vmulpd  ymm3, ymm3, ymm7
     ADDPD_MEM COVAR(jq,0), ymm0
     ADDPD_MEM COVAR(jq,1), ymm1
     ADDPD_MEM COVAR(jq,2), ymm2
     ADDPD_MEM COVAR(jq,3), ymm3
+%endif ; cpuflag(fma3)
     add     jd, 4
     cmp     jd, count2d
     jle .loop4x4
 .skip4x4:
     cmp     jd, countd
     jg .skip2x4
     mova    xmm3, [varq + jq*8]
+%if cpuflag(fma3)
+    mova xmm0, COVAR(jq, 0)
+    mova xmm1, COVAR(jq, 1)
+    mova xmm2, COVAR(jq, 2)
+    fmaddpd xmm0, xmm3, xmm4, xmm0
+    fmaddpd xmm1, xmm3, xmm5, xmm1
+    fmaddpd xmm2, xmm3, xmm6, xmm2
+    fmaddpd xmm3, xmm7, xmm3, COVAR(jq,3)
+    mova COVAR(jq, 0), xmm0
+    mova COVAR(jq, 1), xmm1
+    mova COVAR(jq, 2), xmm2
+    mova COVAR(jq, 3), xmm3
+%else
     vmulpd  xmm0, xmm3, xmm4
     vmulpd  xmm1, xmm3, xmm5
     vmulpd  xmm2, xmm3, xmm6
     vmulpd  xmm3, xmm3, xmm7
     ADDPD_MEM COVAR(jq,0), xmm0
     ADDPD_MEM COVAR(jq,1), xmm1
     ADDPD_MEM COVAR(jq,2), xmm2
     ADDPD_MEM COVAR(jq,3), xmm3
+%endif ; cpuflag(fma3)
 .skip2x4:
     add     id, 4
     add covarq, 4*COVAR_STRIDE
     cmp     id, count2d
     jle .loopi
     cmp     id, countd
     jg .ret
     mov     jd, id
 .loop2x1:
     vmovddup xmm0, [varq + iq*8]
+%if cpuflag(fma3)
+    mova xmm1, [varq + jq*8]
+    fmaddpd xmm0, xmm1, xmm0, COVAR(jq,0)
+    mova COVAR(jq,0), xmm0
+%else
     vmulpd   xmm0, [varq + jq*8]
     ADDPD_MEM COVAR(jq,0), xmm0
+%endif ; cpuflag(fma3)
     inc     id
     add covarq, COVAR_STRIDE
     cmp     id, countd
     jle .loop2x1
 .ret:
     REP_RET
+%endmacro ; UPDATE_LLS
+
+%if HAVE_AVX_EXTERNAL
+INIT_YMM avx
+UPDATE_LLS
+%endif
+%if HAVE_FMA3_EXTERNAL
+INIT_YMM fma3
+UPDATE_LLS
 %endif
 
 INIT_XMM sse2
 cglobal evaluate_lls, 3,4,2, ctx, var, order, i
     ; This function is often called on the same buffer as update_lls, but with
     ; an offset. They can't both be aligned.
     ; Load halves rather than movu to avoid store-forwarding stalls, since the
     ; input was initialized immediately prior to this function using scalar math.
--- a/media/ffvpx/libavutil/x86/lls_init.c
+++ b/media/ffvpx/libavutil/x86/lls_init.c
@@ -20,22 +20,26 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 #include "libavutil/lls.h"
 #include "libavutil/x86/cpu.h"
 
 void ff_update_lls_sse2(LLSModel *m, const double *var);
 void ff_update_lls_avx(LLSModel *m, const double *var);
+void ff_update_lls_fma3(LLSModel *m, const double *var);
 double ff_evaluate_lls_sse2(LLSModel *m, const double *var, int order);
 
 av_cold void ff_init_lls_x86(LLSModel *m)
 {
     int cpu_flags = av_get_cpu_flags();
     if (EXTERNAL_SSE2(cpu_flags)) {
         m->update_lls = ff_update_lls_sse2;
         if (m->indep_count >= 4)
             m->evaluate_lls = ff_evaluate_lls_sse2;
     }
     if (EXTERNAL_AVX_FAST(cpu_flags)) {
         m->update_lls = ff_update_lls_avx;
     }
+    if (EXTERNAL_FMA3_FAST(cpu_flags)) {
+        m->update_lls = ff_update_lls_fma3;
+    }
 }
--- a/media/ffvpx/libavutil/x86/moz.build
+++ b/media/ffvpx/libavutil/x86/moz.build
@@ -3,16 +3,18 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
     'cpu.c',
     'cpuid.asm',
     'emms.asm',
+    'fixed_dsp.asm',
+    'fixed_dsp_init.c',
     'float_dsp.asm',
     'float_dsp_init.c',
     'lls.asm',
     'lls_init.c'
 ]
 
 FINAL_LIBRARY = 'mozavutil'
 
--- a/media/ffvpx/libavutil/x86/x86inc.asm
+++ b/media/ffvpx/libavutil/x86/x86inc.asm
@@ -1,12 +1,12 @@
 ;*****************************************************************************
 ;* x86inc.asm: x264asm abstraction layer
 ;*****************************************************************************
-;* Copyright (C) 2005-2015 x264 project
+;* Copyright (C) 2005-2016 x264 project
 ;*
 ;* Authors: Loren Merritt <lorenm@u.washington.edu>
 ;*          Anton Mitrofanov <BugMaster@narod.ru>
 ;*          Fiona Glaser <fiona@x264.com>
 ;*          Henrik Gramner <henrik@gramner.com>
 ;*
 ;* Permission to use, copy, modify, and/or distribute this software for any
 ;* purpose with or without fee is hereby granted, provided that the above
@@ -178,19 +178,19 @@
     %define r%1d e%1
     %define e%1d e%1
     %define r%1w %1
     %define e%1w %1
     %define r%1h %3
     %define e%1h %3
     %define r%1b %2
     %define e%1b %2
-%if ARCH_X86_64 == 0
-    %define r%1  e%1
-%endif
+    %if ARCH_X86_64 == 0
+        %define r%1 e%1
+    %endif
 %endmacro
 
 DECLARE_REG_SIZE ax, al, ah
 DECLARE_REG_SIZE bx, bl, bh
 DECLARE_REG_SIZE cx, cl, ch
 DECLARE_REG_SIZE dx, dl, dh
 DECLARE_REG_SIZE si, sil, null
 DECLARE_REG_SIZE di, dil, null
@@ -290,17 +290,17 @@ DECLARE_REG_TMP_SIZE 0,1,2,3,4,5,6,7,8,9
 %macro movsxdifnidn 2
     %ifnidn %1, %2
         movsxd %1, %2
     %endif
 %endmacro
 
 %macro ASSERT 1
     %if (%1) == 0
-        %error assert failed
+        %error assertion ``%1'' failed
     %endif
 %endmacro
 
 %macro DEFINE_ARGS 0-*
     %ifdef n_arg_names
         %assign %%i 0
         %rep n_arg_names
             CAT_UNDEF arg_name %+ %%i, q
@@ -381,18 +381,21 @@ DECLARE_REG_TMP_SIZE 0,1,2,3,4,5,6,7,8,9
     %endif
 %endmacro
 
 %macro SETUP_STACK_POINTER 1
     %ifnum %1
         %if %1 != 0 && required_stack_alignment > STACK_ALIGNMENT
             %if %1 > 0
                 %assign regs_used (regs_used + 1)
-            %elif ARCH_X86_64 && regs_used == num_args && num_args <= 4 + UNIX64 * 2
-                %warning "Stack pointer will overwrite register argument"
+            %endif
+            %if ARCH_X86_64 && regs_used < 5 + UNIX64 * 3
+                ; Ensure that we don't clobber any registers containing arguments. For UNIX64 we also preserve r6 (rax)
+                ; since it's used as a hidden argument in vararg functions to specify the number of vector registers used.
+                %assign regs_used 5 + UNIX64 * 3
             %endif
         %endif
     %endif
 %endmacro
 
 %macro DEFINE_ARGS_INTERNAL 3+
     %ifnum %2
         DEFINE_ARGS %3
@@ -496,19 +499,19 @@ DECLARE_REG 14, R15, 120
     %assign xmm_regs_used 0
 %endmacro
 
 %define has_epilogue regs_used > 7 || xmm_regs_used > 6 || mmsize == 32 || stack_size > 0
 
 %macro RET 0
     WIN64_RESTORE_XMM_INTERNAL rsp
     POP_IF_USED 14, 13, 12, 11, 10, 9, 8, 7
-%if mmsize == 32
-    vzeroupper
-%endif
+    %if mmsize == 32
+        vzeroupper
+    %endif
     AUTO_REP_RET
 %endmacro
 
 %elif ARCH_X86_64 ; *nix x64 ;=============================================
 
 DECLARE_REG 0,  rdi
 DECLARE_REG 1,  rsi
 DECLARE_REG 2,  rdx
@@ -535,27 +538,27 @@ DECLARE_REG 14, R15, 72
     ALLOC_STACK %4
     LOAD_IF_USED 6, 7, 8, 9, 10, 11, 12, 13, 14
     DEFINE_ARGS_INTERNAL %0, %4, %5
 %endmacro
 
 %define has_epilogue regs_used > 9 || mmsize == 32 || stack_size > 0
 
 %macro RET 0
-%if stack_size_padded > 0
-%if required_stack_alignment > STACK_ALIGNMENT
-    mov rsp, rstkm
-%else
-    add rsp, stack_size_padded
-%endif
-%endif
+    %if stack_size_padded > 0
+        %if required_stack_alignment > STACK_ALIGNMENT
+            mov rsp, rstkm
+        %else
+            add rsp, stack_size_padded
+        %endif
+    %endif
     POP_IF_USED 14, 13, 12, 11, 10, 9
-%if mmsize == 32
-    vzeroupper
-%endif
+    %if mmsize == 32
+        vzeroupper
+    %endif
     AUTO_REP_RET
 %endmacro
 
 %else ; X86_32 ;==============================================================
 
 DECLARE_REG 0, eax, 4
 DECLARE_REG 1, ecx, 8
 DECLARE_REG 2, edx, 12
@@ -591,83 +594,86 @@ DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14
     ALLOC_STACK %4
     LOAD_IF_USED 0, 1, 2, 3, 4, 5, 6
     DEFINE_ARGS_INTERNAL %0, %4, %5
 %endmacro
 
 %define has_epilogue regs_used > 3 || mmsize == 32 || stack_size > 0
 
 %macro RET 0
-%if stack_size_padded > 0
-%if required_stack_alignment > STACK_ALIGNMENT
-    mov rsp, rstkm
-%else
-    add rsp, stack_size_padded
-%endif
-%endif
+    %if stack_size_padded > 0
+        %if required_stack_alignment > STACK_ALIGNMENT
+            mov rsp, rstkm
+        %else
+            add rsp, stack_size_padded
+        %endif
+    %endif
     POP_IF_USED 6, 5, 4, 3
-%if mmsize == 32
-    vzeroupper
-%endif
+    %if mmsize == 32
+        vzeroupper
+    %endif
     AUTO_REP_RET
 %endmacro
 
 %endif ;======================================================================
 
 %if WIN64 == 0
-%macro WIN64_SPILL_XMM 1
-%endmacro
-%macro WIN64_RESTORE_XMM 1
-%endmacro
-%macro WIN64_PUSH_XMM 0
-%endmacro
+    %macro WIN64_SPILL_XMM 1
+    %endmacro
+    %macro WIN64_RESTORE_XMM 1
+    %endmacro
+    %macro WIN64_PUSH_XMM 0
+    %endmacro
 %endif
 
 ; On AMD cpus <=K10, an ordinary ret is slow if it immediately follows either
 ; a branch or a branch target. So switch to a 2-byte form of ret in that case.
 ; We can automatically detect "follows a branch", but not a branch target.
 ; (SSSE3 is a sufficient condition to know that your cpu doesn't have this problem.)
 %macro REP_RET 0
     %if has_epilogue
         RET
     %else
         rep ret
     %endif
+    annotate_function_size
 %endmacro
 
 %define last_branch_adr $$
 %macro AUTO_REP_RET 0
-    %ifndef cpuflags
-        times ((last_branch_adr-$)>>31)+1 rep ; times 1 iff $ != last_branch_adr.
-    %elif notcpuflag(ssse3)
-        times ((last_branch_adr-$)>>31)+1 rep
+    %if notcpuflag(ssse3)
+        times ((last_branch_adr-$)>>31)+1 rep ; times 1 iff $ == last_branch_adr.
     %endif
     ret
+    annotate_function_size
 %endmacro
 
 %macro BRANCH_INSTR 0-*
     %rep %0
         %macro %1 1-2 %1
             %2 %1
-            %%branch_instr:
-            %xdefine last_branch_adr %%branch_instr
+            %if notcpuflag(ssse3)
+                %%branch_instr equ $
+                %xdefine last_branch_adr %%branch_instr
+            %endif
         %endmacro
         %rotate 1
     %endrep
 %endmacro
 
 BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, jna, jnae, jb, jbe, jnb, jnbe, jc, jnc, js, jns, jo, jno, jp, jnp
 
 %macro TAIL_CALL 2 ; callee, is_nonadjacent
     %if has_epilogue
         call %1
         RET
     %elif %2
         jmp %1
     %endif
+    annotate_function_size
 %endmacro
 
 ;=============================================================================
 ; arch-independent part
 ;=============================================================================
 
 %assign function_align 16
 
@@ -679,29 +685,31 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, 
 ; is empty and we call cglobal_internal with just %1 %+ SUFFIX (without %2).
 %macro cglobal 1-2+ "" ; name, [PROLOGUE args]
     cglobal_internal 1, %1 %+ SUFFIX, %2
 %endmacro
 %macro cvisible 1-2+ "" ; name, [PROLOGUE args]
     cglobal_internal 0, %1 %+ SUFFIX, %2
 %endmacro
 %macro cglobal_internal 2-3+
+    annotate_function_size
     %if %1
         %xdefine %%FUNCTION_PREFIX private_prefix
         %xdefine %%VISIBILITY hidden
     %else
         %xdefine %%FUNCTION_PREFIX public_prefix
         %xdefine %%VISIBILITY
     %endif
     %ifndef cglobaled_%2
         %xdefine %2 mangle(%%FUNCTION_PREFIX %+ _ %+ %2)
         %xdefine %2.skip_prologue %2 %+ .skip_prologue
         CAT_XDEFINE cglobaled_, %2, 1
     %endif
     %xdefine current_function %2
+    %xdefine current_function_section __SECT__
     %if FORMAT_ELF
         global %2:function %%VISIBILITY
     %else
         global %2
     %endif
     align function_align
     %2:
     RESET_MM_PERMUTATION        ; needed for x86-64, also makes disassembly somewhat nicer
@@ -740,16 +748,34 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, 
     %1: %2
 %endmacro
 
 ; This is needed for ELF, otherwise the GNU linker assumes the stack is executable by default.
 %if FORMAT_ELF
     [SECTION .note.GNU-stack noalloc noexec nowrite progbits]
 %endif
 
+; Tell debuggers how large the function was.
+; This may be invoked multiple times per function; we rely on later instances overriding earlier ones.
+; This is invoked by RET and similar macros, and also cglobal does it for the previous function,
+; but if the last function in a source file doesn't use any of the standard macros for its epilogue,
+; then its size might be unspecified.
+%macro annotate_function_size 0
+    %ifdef __YASM_VER__
+        %ifdef current_function
+            %if FORMAT_ELF
+                current_function_section
+                %%ecf equ $
+                size current_function %%ecf - current_function
+                __SECT__
+            %endif
+        %endif
+    %endif
+%endmacro
+
 ; cpuflags
 
 %assign cpuflags_mmx      (1<<0)
 %assign cpuflags_mmx2     (1<<1) | cpuflags_mmx
 %assign cpuflags_3dnow    (1<<2) | cpuflags_mmx
 %assign cpuflags_3dnowext (1<<3) | cpuflags_3dnow
 %assign cpuflags_sse      (1<<4) | cpuflags_mmx2
 %assign cpuflags_sse2     (1<<5) | cpuflags_sse
@@ -840,66 +866,66 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, 
     %define mmsize 8
     %define num_mmregs 8
     %define mova movq
     %define movu movq
     %define movh movd
     %define movnta movntq
     %assign %%i 0
     %rep 8
-    CAT_XDEFINE m, %%i, mm %+ %%i
-    CAT_XDEFINE nnmm, %%i, %%i
-    %assign %%i %%i+1
+        CAT_XDEFINE m, %%i, mm %+ %%i
+        CAT_XDEFINE nnmm, %%i, %%i
+        %assign %%i %%i+1
     %endrep
     %rep 8
-    CAT_UNDEF m, %%i
-    CAT_UNDEF nnmm, %%i
-    %assign %%i %%i+1
+        CAT_UNDEF m, %%i
+        CAT_UNDEF nnmm, %%i
+        %assign %%i %%i+1
     %endrep
     INIT_CPUFLAGS %1
 %endmacro
 
 %macro INIT_XMM 0-1+
     %assign avx_enabled 0
     %define RESET_MM_PERMUTATION INIT_XMM %1
     %define mmsize 16
     %define num_mmregs 8
     %if ARCH_X86_64
-    %define num_mmregs 16
+        %define num_mmregs 16
     %endif
     %define mova movdqa
     %define movu movdqu
     %define movh movq
     %define movnta movntdq
     %assign %%i 0
     %rep num_mmregs
-    CAT_XDEFINE m, %%i, xmm %+ %%i
-    CAT_XDEFINE nnxmm, %%i, %%i
-    %assign %%i %%i+1
+        CAT_XDEFINE m, %%i, xmm %+ %%i
+        CAT_XDEFINE nnxmm, %%i, %%i
+        %assign %%i %%i+1
     %endrep
     INIT_CPUFLAGS %1
 %endmacro
 
 %macro INIT_YMM 0-1+
     %assign avx_enabled 1
     %define RESET_MM_PERMUTATION INIT_YMM %1
     %define mmsize 32
     %define num_mmregs 8
     %if ARCH_X86_64
-    %define num_mmregs 16
+        %define num_mmregs 16
     %endif
     %define mova movdqa
     %define movu movdqu
     %undef movh
     %define movnta movntdq
     %assign %%i 0
     %rep num_mmregs
-    CAT_XDEFINE m, %%i, ymm %+ %%i
-    CAT_XDEFINE nnymm, %%i, %%i
-    %assign %%i %%i+1
+        CAT_XDEFINE m, %%i, ymm %+ %%i
+        CAT_XDEFINE nnymm, %%i, %%i
+        %assign %%i %%i+1
     %endrep
     INIT_CPUFLAGS %1
 %endmacro
 
 INIT_XMM
 
 %macro DECLARE_MMCAST 1
     %define  mmmm%1   mm%1
@@ -913,17 +939,17 @@ INIT_XMM
     %define ymmymm%1 ymm%1
     %define xm%1 xmm %+ m%1
     %define ym%1 ymm %+ m%1
 %endmacro
 
 %assign i 0
 %rep 16
     DECLARE_MMCAST i
-%assign i i+1
+    %assign i i+1
 %endrep
 
 ; I often want to use macros that permute their arguments. e.g. there's no
 ; efficient way to implement butterfly or transpose or dct without swapping some
 ; arguments.
 ;
 ; I would like to not have to manually keep track of the permutations:
 ; If I insert a permutation in the middle of a function, it should automatically
@@ -931,78 +957,78 @@ INIT_XMM
 ; implementations, e.g. the SSE2 and SSSE3 versions may have different permutations.
 ;
 ; Hence these macros. Insert a PERMUTE or some SWAPs at the end of a macro that
 ; permutes its arguments. It's equivalent to exchanging the contents of the
 ; registers, except that this way you exchange the register names instead, so it
 ; doesn't cost any cycles.
 
 %macro PERMUTE 2-* ; takes a list of pairs to swap
-%rep %0/2
-    %xdefine %%tmp%2 m%2
-    %rotate 2
-%endrep
-%rep %0/2
-    %xdefine m%1 %%tmp%2
-    CAT_XDEFINE nn, m%1, %1
-    %rotate 2
-%endrep
+    %rep %0/2
+        %xdefine %%tmp%2 m%2
+        %rotate 2
+    %endrep
+    %rep %0/2
+        %xdefine m%1 %%tmp%2
+        CAT_XDEFINE nn, m%1, %1
+        %rotate 2
+    %endrep
 %endmacro
 
 %macro SWAP 2+ ; swaps a single chain (sometimes more concise than pairs)
-%ifnum %1 ; SWAP 0, 1, ...
-    SWAP_INTERNAL_NUM %1, %2
-%else ; SWAP m0, m1, ...
-    SWAP_INTERNAL_NAME %1, %2
-%endif
+    %ifnum %1 ; SWAP 0, 1, ...
+        SWAP_INTERNAL_NUM %1, %2
+    %else ; SWAP m0, m1, ...
+        SWAP_INTERNAL_NAME %1, %2
+    %endif
 %endmacro
 
 %macro SWAP_INTERNAL_NUM 2-*
     %rep %0-1
         %xdefine %%tmp m%1
         %xdefine m%1 m%2
         %xdefine m%2 %%tmp
         CAT_XDEFINE nn, m%1, %1
         CAT_XDEFINE nn, m%2, %2
-    %rotate 1
+        %rotate 1
     %endrep
 %endmacro
 
 %macro SWAP_INTERNAL_NAME 2-*
     %xdefine %%args nn %+ %1
     %rep %0-1
         %xdefine %%args %%args, nn %+ %2
-    %rotate 1
+        %rotate 1
     %endrep
     SWAP_INTERNAL_NUM %%args
 %endmacro
 
 ; If SAVE_MM_PERMUTATION is placed at the end of a function, then any later
 ; calls to that function will automatically load the permutation, so values can
 ; be returned in mmregs.
 %macro SAVE_MM_PERMUTATION 0-1
     %if %0
         %xdefine %%f %1_m
     %else
         %xdefine %%f current_function %+ _m
     %endif
     %assign %%i 0
     %rep num_mmregs
         CAT_XDEFINE %%f, %%i, m %+ %%i
-    %assign %%i %%i+1
+        %assign %%i %%i+1
     %endrep
 %endmacro
 
 %macro LOAD_MM_PERMUTATION 1 ; name to load from
     %ifdef %1_m0
         %assign %%i 0
         %rep num_mmregs
             CAT_XDEFINE m, %%i, %1_m %+ %%i
             CAT_XDEFINE nn, m %+ %%i, %%i
-        %assign %%i %%i+1
+            %assign %%i %%i+1
         %endrep
     %endif
 %endmacro
 
 ; Append cpuflags to the callee's name iff the appended name is known and the plain name isn't
 %macro call 1
     call_internal %1 %+ SUFFIX, %1
 %endmacro
@@ -1048,17 +1074,17 @@ INIT_XMM
 
 %assign i 0
 %rep 16
     %if i < 8
         CAT_XDEFINE sizeofmm, i, 8
     %endif
     CAT_XDEFINE sizeofxmm, i, 16
     CAT_XDEFINE sizeofymm, i, 32
-%assign i i+1
+    %assign i i+1
 %endrep
 %undef i
 
 %macro CHECK_AVX_INSTR_EMU 3-*
     %xdefine %%opcode %1
     %xdefine %%dst %2
     %rep %0-2
         %ifidn %%dst, %3
@@ -1425,17 +1451,17 @@ AVX_INSTR pfmul, 3dnow, 1, 0, 1
         CAT_XDEFINE q000, j, i
     %elif j < 100
         CAT_XDEFINE q00, j, i
     %elif j < 1000
         CAT_XDEFINE q0, j, i
     %else
         CAT_XDEFINE q, j, i
     %endif
-%assign i i+1
+    %assign i i+1
 %endrep
 %undef i
 %undef j
 
 %macro FMA_INSTR 3
     %macro %1 4-7 %1, %2, %3
         %if cpuflag(xop)
             v%5 %1, %2, %3, %4
@@ -1452,57 +1478,54 @@ FMA_INSTR  pmacsww,  pmullw, paddw
 FMA_INSTR  pmacsdd,  pmulld, paddd ; sse4 emulation
 FMA_INSTR pmacsdql,  pmuldq, paddq ; sse4 emulation
 FMA_INSTR pmadcswd, pmaddwd, paddd
 
 ; tzcnt is equivalent to "rep bsf" and is backwards-compatible with bsf.
 ; This lets us use tzcnt without bumping the yasm version requirement yet.
 %define tzcnt rep bsf
 
-; convert FMA4 to FMA3 if possible
-%macro FMA4_INSTR 4
-    %macro %1 4-8 %1, %2, %3, %4
-        %if cpuflag(fma4)
-            v%5 %1, %2, %3, %4
-        %elifidn %1, %2
-            v%6 %1, %4, %3 ; %1 = %1 * %3 + %4
-        %elifidn %1, %3
-            v%7 %1, %2, %4 ; %1 = %2 * %1 + %4
-        %elifidn %1, %4
-            v%8 %1, %2, %3 ; %1 = %2 * %3 + %1
-        %else
-            %error fma3 emulation of ``%5 %1, %2, %3, %4'' is not supported
-        %endif
-    %endmacro
+; Macros for consolidating FMA3 and FMA4 using 4-operand (dst, src1, src2, src3) syntax.
+; FMA3 is only possible if dst is the same as one of the src registers.
+; Either src2 or src3 can be a memory operand.
+%macro FMA4_INSTR 2-*
+    %push fma4_instr
+    %xdefine %$prefix %1
+    %rep %0 - 1
+        %macro %$prefix%2 4-6 %$prefix, %2
+            %if notcpuflag(fma3) && notcpuflag(fma4)
+                %error use of ``%5%6'' fma instruction in cpuname function: current_function
+            %elif cpuflag(fma4)
+                v%5%6 %1, %2, %3, %4
+            %elifidn %1, %2
+                ; If %3 or %4 is a memory operand it needs to be encoded as the last operand.
+                %ifid %3
+                    v%{5}213%6 %2, %3, %4
+                %else
+                    v%{5}132%6 %2, %4, %3
+                %endif
+            %elifidn %1, %3
+                v%{5}213%6 %3, %2, %4
+            %elifidn %1, %4
+                v%{5}231%6 %4, %2, %3
+            %else
+                %error fma3 emulation of ``%5%6 %1, %2, %3, %4'' is not supported
+            %endif
+        %endmacro
+        %rotate 1
+    %endrep
+    %pop
 %endmacro
 
-FMA4_INSTR fmaddpd, fmadd132pd, fmadd213pd, fmadd231pd
-FMA4_INSTR fmaddps, fmadd132ps, fmadd213ps, fmadd231ps
-FMA4_INSTR fmaddsd, fmadd132sd, fmadd213sd, fmadd231sd
-FMA4_INSTR fmaddss, fmadd132ss, fmadd213ss, fmadd231ss
-
-FMA4_INSTR fmaddsubpd, fmaddsub132pd, fmaddsub213pd, fmaddsub231pd
-FMA4_INSTR fmaddsubps, fmaddsub132ps, fmaddsub213ps, fmaddsub231ps
-FMA4_INSTR fmsubaddpd, fmsubadd132pd, fmsubadd213pd, fmsubadd231pd
-FMA4_INSTR fmsubaddps, fmsubadd132ps, fmsubadd213ps, fmsubadd231ps
-
-FMA4_INSTR fmsubpd, fmsub132pd, fmsub213pd, fmsub231pd
-FMA4_INSTR fmsubps, fmsub132ps, fmsub213ps, fmsub231ps
-FMA4_INSTR fmsubsd, fmsub132sd, fmsub213sd, fmsub231sd
-FMA4_INSTR fmsubss, fmsub132ss, fmsub213ss, fmsub231ss
-
-FMA4_INSTR fnmaddpd, fnmadd132pd, fnmadd213pd, fnmadd231pd
-FMA4_INSTR fnmaddps, fnmadd132ps, fnmadd213ps, fnmadd231ps
-FMA4_INSTR fnmaddsd, fnmadd132sd, fnmadd213sd, fnmadd231sd
-FMA4_INSTR fnmaddss, fnmadd132ss, fnmadd213ss, fnmadd231ss
-
-FMA4_INSTR fnmsubpd, fnmsub132pd, fnmsub213pd, fnmsub231pd
-FMA4_INSTR fnmsubps, fnmsub132ps, fnmsub213ps, fnmsub231ps
-FMA4_INSTR fnmsubsd, fnmsub132sd, fnmsub213sd, fnmsub231sd
-FMA4_INSTR fnmsubss, fnmsub132ss, fnmsub213ss, fnmsub231ss
+FMA4_INSTR fmadd,    pd, ps, sd, ss
+FMA4_INSTR fmaddsub, pd, ps
+FMA4_INSTR fmsub,    pd, ps, sd, ss
+FMA4_INSTR fmsubadd, pd, ps
+FMA4_INSTR fnmadd,   pd, ps, sd, ss
+FMA4_INSTR fnmsub,   pd, ps, sd, ss
 
 ; workaround: vpbroadcastq is broken in x86_32 due to a yasm bug (fixed in 1.3.0)
 %ifdef __YASM_VER__
     %if __YASM_VERSION_ID__ < 0x01030000 && ARCH_X86_64 == 0
         %macro vpbroadcastq 2
             %if sizeof%1 == 16
                 movddup %1, %2
             %else
deleted file mode 100644
--- a/media/ffvpx/libavutil/x86_cpu.h
+++ /dev/null
@@ -1,1 +0,0 @@
-#include "libavutil/x86/asm.h"