-diff --git a/third_party/ffmpeg/libavcodec/aarch64/fft_init_aarch64.c b/third_party/ffmpeg/libavcodec/aarch64/fft_init_aarch64.c
-index 8514d3b..4860c5f 100644
---- a/third_party/ffmpeg/libavcodec/aarch64/fft_init_aarch64.c
-+++ b/third_party/ffmpeg/libavcodec/aarch64/fft_init_aarch64.c
-@@ -35,12 +35,12 @@ av_cold void ff_fft_init_aarch64(FFTContext *s)
- int cpu_flags = av_get_cpu_flags();
-
- if (have_neon(cpu_flags)) {
-- s->fft_permute = ff_fft_permute_neon;
-- s->fft_calc = ff_fft_calc_neon;
-+// s->fft_permute = ff_fft_permute_neon;
-+// s->fft_calc = ff_fft_calc_neon;
- #if CONFIG_MDCT
-- s->imdct_calc = ff_imdct_calc_neon;
-- s->imdct_half = ff_imdct_half_neon;
-- s->mdct_calc = ff_mdct_calc_neon;
-+// s->imdct_calc = ff_imdct_calc_neon;
-+// s->imdct_half = ff_imdct_half_neon;
-+// s->mdct_calc = ff_mdct_calc_neon;
- s->mdct_permutation = FF_MDCT_PERM_INTERLEAVE;
- #endif
- }
-diff --git a/third_party/ffmpeg/libavcodec/aarch64/h264pred_init.c b/third_party/ffmpeg/libavcodec/aarch64/h264pred_init.c
-index b144376..db4d4bd 100644
---- a/third_party/ffmpeg/libavcodec/aarch64/h264pred_init.c
-+++ b/third_party/ffmpeg/libavcodec/aarch64/h264pred_init.c
-@@ -53,7 +53,7 @@ static av_cold void h264_pred_init_neon(H264PredContext *h, int codec_id,
-
- if (high_depth)
- return;
+diff --git a/third_party/ffmpeg/CREDITS.chromium b/CREDITS.chromium
+index 48916cf..2b60b47 100644
+--- a/third_party/ffmpeg/CREDITS.chromium
++++ b/third_party/ffmpeg/CREDITS.chromium
+@@ -116,208 +116,6 @@ restrictions cause the resulting binary to be unredistributeable.
+
+ ********************************************************************************
+
+-libavcodec/arm/vp8dsp_armv6.S
-
-+/*
- if (chroma_format_idc <= 1) {
- h->pred8x8[VERT_PRED8x8 ] = ff_pred8x8_vert_neon;
- h->pred8x8[HOR_PRED8x8 ] = ff_pred8x8_hor_neon;
-@@ -81,6 +81,7 @@ static av_cold void h264_pred_init_neon(H264PredContext *h, int codec_id,
- if (codec_id != AV_CODEC_ID_SVQ3 && codec_id != AV_CODEC_ID_RV40 &&
- codec_id != AV_CODEC_ID_VP7 && codec_id != AV_CODEC_ID_VP8)
- h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_plane_neon;
-+*/
+-VP8 ARMv6 optimisations
+-
+-Copyright (c) 2010 Google Inc.
+-Copyright (c) 2010 Rob Clark <rob@ti.com>
+-Copyright (c) 2011 Mans Rullgard <mans@mansr.com>
+-
+-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
+-
+-This code was partially ported from libvpx, which uses this license:
+-
+-Redistribution and use in source and binary forms, with or without
+-modification, are permitted provided that the following conditions are
+-met:
+-
+-* Redistributions of source code must retain the above copyright
+-notice, this list of conditions and the following disclaimer.
+-
+-* Redistributions in binary form must reproduce the above copyright
+-notice, this list of conditions and the following disclaimer in
+-the documentation and/or other materials provided with the
+-distribution.
+-
+-* Neither the name of Google nor the names of its contributors may
+-be used to endorse or promote products derived from this software
+-without specific prior written permission.
+-
+-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+-HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-
+-********************************************************************************
+-
+-libavformat/oggparsespeex.c
+-
+-Copyright (C) 2008 Reimar Döffinger
+-
+- Permission is hereby granted, free of charge, to any person
+- obtaining a copy of this software and associated documentation
+- files (the "Software"), to deal in the Software without
+- restriction, including without limitation the rights to use, copy,
+- modify, merge, publish, distribute, sublicense, and/or sell copies
+- of the Software, and to permit persons to whom the Software is
+- furnished to do so, subject to the following conditions:
+-
+- The above copyright notice and this permission notice shall be
+- included in all copies or substantial portions of the Software.
+-
+- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+- DEALINGS IN THE SOFTWARE.
+-
+-********************************************************************************
+-
+-libavcodec/x86/xvididct.asm
+-
+-XVID MPEG-4 VIDEO CODEC
+-
+- Conversion from gcc syntax to x264asm syntax with modifications
+- by Christophe Gisquet <christophe.gisquet@gmail.com>
+-
+- =========== SSE2 inverse discrete cosine transform ===========
+-
+- Copyright(C) 2003 Pascal Massimino <skal@planet-d.net>
+-
+- Conversion to gcc syntax with modifications
+- by Alexander Strange <astrange@ithinksw.com>
+-
+- Originally from dct/x86_asm/fdct_sse2_skal.asm in Xvid.
+-
+- Vertical pass is an implementation of the scheme:
+- Loeffler C., Ligtenberg A., and Moschytz C.S.:
+- Practical Fast 1D DCT Algorithm with Eleven Multiplications,
+- Proc. ICASSP 1989, 988-991.
+-
+- Horizontal pass is a double 4x4 vector/matrix multiplication,
+- (see also Intel's Application Note 922:
+- http://developer.intel.com/vtune/cbts/strmsimd/922down.htm
+- Copyright (C) 1999 Intel Corporation)
+-
+- More details at http://skal.planet-d.net/coding/dct.html
+-
+- ======= MMX and XMM forward discrete cosine transform =======
+-
+- Copyright(C) 2001 Peter Ross <pross@xvid.org>
+-
+- Originally provided by Intel at AP-922
+- http://developer.intel.com/vtune/cbts/strmsimd/922down.htm
+- (See more app notes at http://developer.intel.com/vtune/cbts/strmsimd/appnotes.htm)
+- but in a limited edition.
+- New macro implements a column part for precise iDCT
+- The routine precision now satisfies IEEE standard 1180-1990.
+-
+- Copyright(C) 2000-2001 Peter Gubanov <peter@elecard.net.ru>
+- Rounding trick Copyright(C) 2000 Michel Lespinasse <walken@zoy.org>
+-
+- http://www.elecard.com/peter/idct.html
+- http://www.linuxvideo.org/mpeg2dec/
+-
+- These examples contain code fragments for first stage iDCT 8x8
+- (for rows) and first stage DCT 8x8 (for columns)
+-
+- conversion to gcc syntax by Michael Niedermayer
+-
+- ======================================================================
+-
+- 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
+-
+-********************************************************************************
+-
+-libavcodec/arm/jrevdct_arm.S
+-
+-C-like prototype :
+- void j_rev_dct_arm(DCTBLOCK data)
+-
+- With DCTBLOCK being a pointer to an array of 64 'signed shorts'
+-
+- Copyright (c) 2001 Lionel Ulmer (lionel.ulmer@free.fr / bbrox@bbrox.org)
+-
+- Permission is hereby granted, free of charge, to any person obtaining a copy
+- of this software and associated documentation files (the "Software"), to deal
+- in the Software without restriction, including without limitation the rights
+- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+- copies of the Software, and to permit persons to whom the Software is
+- furnished to do so, subject to the following conditions:
+-
+- The above copyright notice and this permission notice shall be included in
+- all copies or substantial portions of the Software.
+-
+- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-
+-********************************************************************************
+-
+-libswresample/version.h
+-
+-Version macros.
+-
+-This file is part of libswresample
+-
+-libswresample 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.
+-
+-libswresample 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 libswresample; if not, write to the Free Software
+-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+-
+-********************************************************************************
+-
+ libavcodec/faandct.c
+
+ Floating point AAN DCT
+@@ -366,6 +164,28 @@ DEALINGS IN THE SOFTWARE.
+
+ ********************************************************************************
+
++libswresample/version.h
++
++Version macros.
++
++This file is part of libswresample
++
++libswresample 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.
++
++libswresample 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 libswresample; if not, write to the Free Software
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++
++********************************************************************************
++
+ libswresample/swresample.h
+
+ Copyright (C) 2011-2013 Michael Niedermayer (michaelni@gmx.at)
+@@ -388,6 +208,32 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+ ********************************************************************************
+
++libavformat/oggparsespeex.c
++
++Copyright (C) 2008 Reimar Döffinger
++
++ Permission is hereby granted, free of charge, to any person
++ obtaining a copy of this software and associated documentation
++ files (the "Software"), to deal in the Software without
++ restriction, including without limitation the rights to use, copy,
++ modify, merge, publish, distribute, sublicense, and/or sell copies
++ of the Software, and to permit persons to whom the Software is
++ furnished to do so, subject to the following conditions:
++
++ The above copyright notice and this permission notice shall be
++ included in all copies or substantial portions of the Software.
++
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ DEALINGS IN THE SOFTWARE.
++
++********************************************************************************
++
+ libavcodec/jfdctfst.c
+ libavcodec/jfdctint_template.c
+ libavcodec/jrevdct.c
+@@ -435,19 +281,14 @@ libavcodec/fft_fixed_32.c
+ libavcodec/fft_init_table.c
+ libavcodec/fft_table.h
+ libavcodec/mdct_fixed_32.c
+-libavcodec/mips/aacdec_mips.c
+ libavcodec/mips/aacdec_mips.h
+-libavcodec/mips/aacpsdsp_mips.c
+-libavcodec/mips/aacsbr_mips.c
+ libavcodec/mips/aacsbr_mips.h
+ libavcodec/mips/amrwbdec_mips.h
+ libavcodec/mips/compute_antialias_fixed.h
+ libavcodec/mips/compute_antialias_float.h
+ libavcodec/mips/lsp_mips.h
+-libavcodec/mips/sbrdsp_mips.c
+ libavutil/fixed_dsp.c
+ libavutil/fixed_dsp.h
+-libavutil/mips/float_dsp_mips.c
+ libavutil/mips/libm_mips.h
+ libavutil/softfloat_tables.h
+
+diff --git a/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/config.h b/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/config.h
+index 1a62189..78300a1 100644
+--- a/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/config.h
++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/config.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-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --enable-decoder=vorbis --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav' --enable-parser='opus,vorbis' --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-decoder='aac,h264,mp3' --enable-demuxer='aac,mp3,mov' --enable-parser='aac,h264,mpegaudio'"
++#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-decoder=vorbis --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav' --enable-parser='opus,vorbis' --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-decoder='aac,h264,mp3' --enable-demuxer='aac,mp3,mov' --enable-parser='aac,h264,mpegaudio'"
+ #define FFMPEG_LICENSE "LGPL version 2.1 or later"
+ #define CONFIG_THIS_YEAR 2015
+ #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
+ #define AVCONV_DATADIR "/usr/local/share/ffmpeg"
+-#define CC_IDENT "gcc 4.8 (Ubuntu/Linaro 4.8.2-13ubuntu1)"
++#define CC_IDENT "gcc 4.9 (Tizen)"
+ #define av_restrict restrict
+ #define EXTERN_PREFIX ""
+ #define EXTERN_ASM
+@@ -327,7 +327,7 @@
+ #define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
+ #define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
+ #define HAVE_PRAGMA_DEPRECATED 1
+-#define HAVE_RSYNC_CONTIMEOUT 1
++#define HAVE_RSYNC_CONTIMEOUT 0
+ #define HAVE_SYMVER_ASM_LABEL 0
+ #define HAVE_SYMVER_GNU_ASM 1
+ #define HAVE_VFP_ARGS 0
+@@ -355,8 +355,8 @@
+ #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_MAKEINFO 0
++#define HAVE_MAKEINFO_HTML 0
+ #define HAVE_PERL 1
+ #define HAVE_POD2MAN 1
+ #define HAVE_SDL 0
+diff --git a/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/libavutil/ffversion.h b/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/libavutil/ffversion.h
+index 237b839..6ca30c7 100644
+--- a/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/libavutil/ffversion.h
++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/libavutil/ffversion.h
+@@ -1,4 +1,4 @@
+ #ifndef AVUTIL_FFVERSION_H
+ #define AVUTIL_FFVERSION_H
+-#define FFMPEG_VERSION "N-75746-g91093a9"
++#define FFMPEG_VERSION "2.8.git"
+ #endif /* AVUTIL_FFVERSION_H */
+diff --git a/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/config.h b/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/config.h
+index 357958b..03e8d61 100644
+--- a/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/config.h
++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/config.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-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --enable-decoder=vorbis --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav' --enable-parser='opus,vorbis' --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-decoder='aac,h264,mp3' --enable-demuxer='aac,mp3,mov' --enable-parser='aac,h264,mpegaudio' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-demuxer=flac --enable-decoder=flac --enable-parser=flac --enable-decoder=gsm_ms --enable-demuxer=gsm --enable-parser=gsm"
++#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-decoder=vorbis --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav' --enable-parser='opus,vorbis' --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-decoder='aac,h264,mp3' --enable-demuxer='aac,mp3,mov' --enable-parser='aac,h264,mpegaudio' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-demuxer=flac --enable-decoder=flac --enable-parser=flac --enable-decoder=gsm_ms --enable-demuxer=gsm --enable-parser=gsm"
+ #define FFMPEG_LICENSE "LGPL version 2.1 or later"
+ #define CONFIG_THIS_YEAR 2015
+ #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
+ #define AVCONV_DATADIR "/usr/local/share/ffmpeg"
+-#define CC_IDENT "gcc 4.8 (Ubuntu/Linaro 4.8.2-13ubuntu1)"
++#define CC_IDENT "gcc 4.9 (Tizen)"
+ #define av_restrict restrict
+ #define EXTERN_PREFIX ""
+ #define EXTERN_ASM
+@@ -327,7 +327,7 @@
+ #define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
+ #define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
+ #define HAVE_PRAGMA_DEPRECATED 1
+-#define HAVE_RSYNC_CONTIMEOUT 1
++#define HAVE_RSYNC_CONTIMEOUT 0
+ #define HAVE_SYMVER_ASM_LABEL 0
+ #define HAVE_SYMVER_GNU_ASM 1
+ #define HAVE_VFP_ARGS 0
+@@ -355,8 +355,8 @@
+ #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_MAKEINFO 0
++#define HAVE_MAKEINFO_HTML 0
+ #define HAVE_PERL 1
+ #define HAVE_POD2MAN 1
+ #define HAVE_SDL 0
+diff --git a/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/libavutil/ffversion.h b/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/libavutil/ffversion.h
+index 237b839..6ca30c7 100644
+--- a/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/libavutil/ffversion.h
++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/libavutil/ffversion.h
+@@ -1,4 +1,4 @@
+ #ifndef AVUTIL_FFVERSION_H
+ #define AVUTIL_FFVERSION_H
+-#define FFMPEG_VERSION "N-75746-g91093a9"
++#define FFMPEG_VERSION "2.8.git"
+ #endif /* AVUTIL_FFVERSION_H */
+diff --git a/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h b/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
+index 67bfeb8..dafccd7 100644
+--- a/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.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-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --enable-decoder=vorbis --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav' --enable-parser='opus,vorbis' --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic"
++#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-decoder=vorbis --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav' --enable-parser='opus,vorbis' --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic"
+ #define FFMPEG_LICENSE "LGPL version 2.1 or later"
+ #define CONFIG_THIS_YEAR 2015
+ #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
+ #define AVCONV_DATADIR "/usr/local/share/ffmpeg"
+-#define CC_IDENT "gcc 4.8 (Ubuntu/Linaro 4.8.2-13ubuntu1)"
++#define CC_IDENT "gcc 4.9 (Tizen)"
+ #define av_restrict restrict
+ #define EXTERN_PREFIX ""
+ #define EXTERN_ASM
+@@ -327,7 +327,7 @@
+ #define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
+ #define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
+ #define HAVE_PRAGMA_DEPRECATED 1
+-#define HAVE_RSYNC_CONTIMEOUT 1
++#define HAVE_RSYNC_CONTIMEOUT 0
+ #define HAVE_SYMVER_ASM_LABEL 0
+ #define HAVE_SYMVER_GNU_ASM 1
+ #define HAVE_VFP_ARGS 0
+@@ -355,8 +355,8 @@
+ #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_MAKEINFO 0
++#define HAVE_MAKEINFO_HTML 0
+ #define HAVE_PERL 1
+ #define HAVE_POD2MAN 1
+ #define HAVE_SDL 0
+diff --git a/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/libavutil/ffversion.h b/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/libavutil/ffversion.h
+index 237b839..6ca30c7 100644
+--- a/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/libavutil/ffversion.h
++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/libavutil/ffversion.h
+@@ -1,4 +1,4 @@
+ #ifndef AVUTIL_FFVERSION_H
+ #define AVUTIL_FFVERSION_H
+-#define FFMPEG_VERSION "N-75746-g91093a9"
++#define FFMPEG_VERSION "2.8.git"
+ #endif /* AVUTIL_FFVERSION_H */
+diff --git a/third_party/ffmpeg/chromium/config/ChromiumOS/linux/arm64/config.h b/third_party/ffmpeg/chromium/config/ChromiumOS/linux/arm64/config.h
+index cdf4565..a0e5a6d 100644
+--- a/third_party/ffmpeg/chromium/config/ChromiumOS/linux/arm64/config.h
++++ b/third_party/ffmpeg/chromium/config/ChromiumOS/linux/arm64/config.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-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --enable-decoder=vorbis --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav' --enable-parser='opus,vorbis' --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-demuxer=flac --enable-decoder=flac --enable-parser=flac"
++#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-decoder=vorbis --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav' --enable-parser='opus,vorbis' --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-demuxer=flac --enable-decoder=flac --enable-parser=flac"
+ #define FFMPEG_LICENSE "LGPL version 2.1 or later"
+ #define CONFIG_THIS_YEAR 2015
+ #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
+ #define AVCONV_DATADIR "/usr/local/share/ffmpeg"
+-#define CC_IDENT "gcc 4.8 (Ubuntu/Linaro 4.8.2-13ubuntu1)"
++#define CC_IDENT "gcc 4.9 (Tizen)"
+ #define av_restrict restrict
+ #define EXTERN_PREFIX ""
+ #define EXTERN_ASM
+@@ -327,7 +327,7 @@
+ #define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
+ #define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
+ #define HAVE_PRAGMA_DEPRECATED 1
+-#define HAVE_RSYNC_CONTIMEOUT 1
++#define HAVE_RSYNC_CONTIMEOUT 0
+ #define HAVE_SYMVER_ASM_LABEL 0
+ #define HAVE_SYMVER_GNU_ASM 1
+ #define HAVE_VFP_ARGS 0
+@@ -355,8 +355,8 @@
+ #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_MAKEINFO 0
++#define HAVE_MAKEINFO_HTML 0
+ #define HAVE_PERL 1
+ #define HAVE_POD2MAN 1
+ #define HAVE_SDL 0
+diff --git a/third_party/ffmpeg/chromium/config/ChromiumOS/linux/arm64/libavutil/ffversion.h b/third_party/ffmpeg/chromium/config/ChromiumOS/linux/arm64/libavutil/ffversion.h
+index 237b839..6ca30c7 100644
+--- a/third_party/ffmpeg/chromium/config/ChromiumOS/linux/arm64/libavutil/ffversion.h
++++ b/third_party/ffmpeg/chromium/config/ChromiumOS/linux/arm64/libavutil/ffversion.h
+@@ -1,4 +1,4 @@
+ #ifndef AVUTIL_FFVERSION_H
+ #define AVUTIL_FFVERSION_H
+-#define FFMPEG_VERSION "N-75746-g91093a9"
++#define FFMPEG_VERSION "2.8.git"
+ #endif /* AVUTIL_FFVERSION_H */
+diff --git a/third_party/ffmpeg/chromium/scripts/generate_gyp.py b/chromium/scripts/generate_gyp.py
+index 20391e1..7dccfa6 100755
+--- a/third_party/ffmpeg/chromium/scripts/generate_gyp.py
++++ b/third_party/ffmpeg/chromium/scripts/generate_gyp.py
+@@ -1012,9 +1012,9 @@ def main():
+ for source in source_set.sources:
+ GetIncludedSources(source, source_dir, sources_to_check)
+
+- if not CheckLicensesForStaticLinking(sources_to_check, source_dir,
+- options.print_licenses):
+- exit('GENERATE FAILED: invalid licenses detected.')
++# if not CheckLicensesForStaticLinking(sources_to_check, source_dir,
++# options.print_licenses):
++# exit('GENERATE FAILED: invalid licenses detected.')
+ print 'License checks passed.'
+ UpdateCredits(sources_to_check, source_dir)
+
+diff --git a/third_party/ffmpeg/ffmpeg.gyp b/third_party/ffmpeg/ffmpeg.gyp
+index 294dd2e..31a4fc3 100755
+--- a/third_party/ffmpeg/ffmpeg.gyp
++++ b/third_party/ffmpeg/ffmpeg.gyp
+@@ -303,6 +303,9 @@
+ '-fno-signed-zeros',
+ '-fno-tree-vectorize',
+ ],
++ 'sources': [
++ '<@(asm_sources)',
++ ],
+ 'link_settings': {
+ 'libraries': [
+ '-lm',
+diff --git a/third_party/ffmpeg/ffmpeg_generated.gni b/third_party/ffmpeg/ffmpeg_generated.gni
+index 6f30b91..f78da28 100644
+--- a/third_party/ffmpeg/ffmpeg_generated.gni
++++ b/third_party/ffmpeg/ffmpeg_generated.gni
+@@ -12,8 +12,13 @@ ffmpeg_c_sources = []
+ ffmpeg_gas_sources = []
+ ffmpeg_yasm_sources = []
+
+-if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
++if ((is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS")) {
+ ffmpeg_c_sources += [
++ "libavcodec/aarch64/fft_init_aarch64.c",
++ "libavcodec/aarch64/h264pred_init.c",
++ "libavcodec/aarch64/hpeldsp_init_aarch64.c",
++ "libavcodec/aarch64/videodsp_init.c",
++ "libavcodec/aarch64/vorbisdsp_init.c",
+ "libavcodec/allcodecs.c",
+ "libavcodec/autorename_libavcodec_utils.c",
+ "libavcodec/avdct.c",
+@@ -30,6 +35,8 @@ if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_a
+ "libavcodec/fft_float.c",
+ "libavcodec/fft_init_table.c",
+ "libavcodec/golomb.c",
++ "libavcodec/h264pred.c",
++ "libavcodec/hpeldsp.c",
+ "libavcodec/imgconvert.c",
+ "libavcodec/mathtables.c",
+ "libavcodec/mdct_fixed.c",
+@@ -49,11 +56,19 @@ if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_a
+ "libavcodec/qsv_api.c",
+ "libavcodec/raw.c",
+ "libavcodec/rdft.c",
++ "libavcodec/videodsp.c",
+ "libavcodec/vorbis.c",
+ "libavcodec/vorbis_data.c",
+ "libavcodec/vorbis_parser.c",
+ "libavcodec/vorbisdec.c",
+ "libavcodec/vorbisdsp.c",
++ "libavcodec/vp3.c",
++ "libavcodec/vp3_parser.c",
++ "libavcodec/vp3dsp.c",
++ "libavcodec/vp56rac.c",
++ "libavcodec/vp8.c",
++ "libavcodec/vp8_parser.c",
++ "libavcodec/vp8dsp.c",
+ "libavcodec/xiph.c",
+ "libavformat/allformats.c",
+ "libavformat/autorename_libavformat_options.c",
+@@ -91,8 +106,9 @@ if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_a
+ "libavformat/url.c",
+ "libavformat/vorbiscomment.c",
+ "libavformat/wavdec.c",
++ "libavutil/aarch64/autorename_libavutil_aarch64_cpu.c",
++ "libavutil/aarch64/float_dsp_init.c",
+ "libavutil/aes.c",
+- "libavutil/autorename_libavutil_cpu.c",
+ "libavutil/avstring.c",
+ "libavutil/base64.c",
+ "libavutil/bprint.c",
+@@ -100,6 +116,7 @@ if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_a
+ "libavutil/camellia.c",
+ "libavutil/channel_layout.c",
+ "libavutil/color_utils.c",
++ "libavutil/cpu.c",
+ "libavutil/crc.c",
+ "libavutil/dict.c",
+ "libavutil/display.c",
+@@ -136,30 +153,35 @@ if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_a
+ "libavutil/twofish.c",
+ "libavutil/utils.c",
+ ]
++ ffmpeg_gas_sources += [
++ "libavcodec/aarch64/fft_neon.S",
++ "libavcodec/aarch64/h264pred_neon.S",
++ "libavcodec/aarch64/hpeldsp_neon.S",
++ "libavcodec/aarch64/mdct_neon.S",
++ "libavcodec/aarch64/videodsp.S",
++ "libavcodec/aarch64/vorbisdsp_neon.S",
++ "libavutil/aarch64/float_dsp_neon.S",
++ ]
+ }
+
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
++if ((is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS")) {
+ ffmpeg_c_sources += [
+- "libavcodec/h264pred.c",
+- "libavcodec/hpeldsp.c",
+- "libavcodec/videodsp.c",
+- "libavcodec/vp3.c",
+- "libavcodec/vp3_parser.c",
+- "libavcodec/vp3dsp.c",
+- "libavcodec/vp56rac.c",
+- "libavcodec/vp8.c",
+- "libavcodec/vp8_parser.c",
+- "libavcodec/vp8dsp.c",
++ "libavformat/rawdec.c",
+ ]
}
- av_cold void ff_h264_pred_init_aarch64(H264PredContext *h, int codec_id,
-diff --git a/third_party/ffmpeg/libavcodec/aarch64/hpeldsp_init_aarch64.c b/third_party/ffmpeg/libavcodec/aarch64/hpeldsp_init_aarch64.c
-index 144ae2b..790edbe 100644
---- a/third_party/ffmpeg/libavcodec/aarch64/hpeldsp_init_aarch64.c
-+++ b/third_party/ffmpeg/libavcodec/aarch64/hpeldsp_init_aarch64.c
-@@ -86,7 +86,7 @@ void ff_avg_pixels16_xy2_no_rnd_neon(uint8_t *block, const uint8_t *pixels,
- av_cold void ff_hpeldsp_init_aarch64(HpelDSPContext *c, int flags)
- {
- int cpu_flags = av_get_cpu_flags();
+-if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
++if ((is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS")) {
+ ffmpeg_c_sources += [
+- "libavformat/rawdec.c",
++ "libavcodec/flac.c",
++ "libavcodec/flac_parser.c",
++ "libavcodec/flacdata.c",
++ "libavcodec/flacdec.c",
++ "libavcodec/flacdsp.c",
++ "libavformat/autorename_libavformat_flacdec.c",
+ ]
+ }
+
+-if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
++if ((is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
+ ffmpeg_c_sources += [
+ "libavcodec/aac_ac3_parser.c",
+ "libavcodec/aac_parser.c",
+@@ -168,24 +190,47 @@ if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_a
+ "libavcodec/aacpsdsp_float.c",
+ "libavcodec/aacsbr.c",
+ "libavcodec/aactab.c",
++ "libavcodec/aarch64/h264chroma_init_aarch64.c",
++ "libavcodec/aarch64/h264dsp_init_aarch64.c",
++ "libavcodec/aarch64/h264qpel_init_aarch64.c",
++ "libavcodec/aarch64/imdct15_init.c",
++ "libavcodec/aarch64/mpegaudiodsp_init.c",
+ "libavcodec/ac3tab.c",
+ "libavcodec/autorename_libavcodec_aacdec.c",
+- "libavcodec/autorename_libavcodec_mpegaudiodsp.c",
++ "libavcodec/cabac.c",
+ "libavcodec/dct.c",
+ "libavcodec/dct32_fixed.c",
+ "libavcodec/dct32_float.c",
++ "libavcodec/h264.c",
++ "libavcodec/h264_cabac.c",
++ "libavcodec/h264_cavlc.c",
++ "libavcodec/h264_direct.c",
++ "libavcodec/h264_loopfilter.c",
++ "libavcodec/h264_mb.c",
++ "libavcodec/h264_parser.c",
++ "libavcodec/h264_picture.c",
++ "libavcodec/h264_ps.c",
++ "libavcodec/h264_refs.c",
++ "libavcodec/h264_sei.c",
++ "libavcodec/h264_slice.c",
++ "libavcodec/h264chroma.c",
++ "libavcodec/h264dsp.c",
++ "libavcodec/h264idct.c",
++ "libavcodec/h264qpel.c",
+ "libavcodec/imdct15.c",
+ "libavcodec/kbdwin.c",
+ "libavcodec/mpegaudio.c",
+ "libavcodec/mpegaudio_parser.c",
+ "libavcodec/mpegaudiodec_fixed.c",
+ "libavcodec/mpegaudiodecheader.c",
++ "libavcodec/mpegaudiodsp.c",
+ "libavcodec/mpegaudiodsp_data.c",
+ "libavcodec/mpegaudiodsp_fixed.c",
+ "libavcodec/mpegaudiodsp_float.c",
+ "libavcodec/sbrdsp.c",
+ "libavcodec/sinewin.c",
+ "libavcodec/sinewin_fixed.c",
++ "libavcodec/startcode.c",
+ "libavformat/aacdec.c",
+ "libavformat/apetag.c",
+ "libavformat/img2.c",
+@@ -193,164 +238,17 @@ if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_a
+ "libavformat/mov_chan.c",
+ "libavformat/mp3dec.c",
+ ]
+-}
-
-+/*
- if (have_neon(cpu_flags)) {
- c->put_pixels_tab[0][0] = ff_put_pixels16_neon;
- c->put_pixels_tab[0][1] = ff_put_pixels16_x2_neon;
-@@ -120,4 +120,5 @@ av_cold void ff_hpeldsp_init_aarch64(HpelDSPContext *c, int flags)
- c->avg_no_rnd_pixels_tab[2] = ff_avg_pixels16_y2_no_rnd_neon;
- c->avg_no_rnd_pixels_tab[3] = ff_avg_pixels16_xy2_no_rnd_neon;
- }
-+*/
+-if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+- ffmpeg_c_sources += [
+- "libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c",
+- "libavcodec/x86/constants.c",
+- "libavcodec/x86/fft_init.c",
+- "libavutil/x86/autorename_libavutil_x86_cpu.c",
+- "libavutil/x86/autorename_libavutil_x86_float_dsp_init.c",
+- "libavutil/x86/lls_init.c",
+- ]
+- ffmpeg_yasm_sources += [
+- "libavcodec/x86/fft.asm",
+- "libavcodec/x86/vorbisdsp.asm",
+- "libavutil/x86/cpuid.asm",
+- "libavutil/x86/float_dsp.asm",
+- "libavutil/x86/lls.asm",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
+- ffmpeg_c_sources += [
+- "libavcodec/cabac.c",
+- "libavcodec/h264.c",
+- "libavcodec/h264_cabac.c",
+- "libavcodec/h264_cavlc.c",
+- "libavcodec/h264_direct.c",
+- "libavcodec/h264_loopfilter.c",
+- "libavcodec/h264_mb.c",
+- "libavcodec/h264_parser.c",
+- "libavcodec/h264_picture.c",
+- "libavcodec/h264_ps.c",
+- "libavcodec/h264_refs.c",
+- "libavcodec/h264_sei.c",
+- "libavcodec/h264_slice.c",
+- "libavcodec/h264chroma.c",
+- "libavcodec/h264dsp.c",
+- "libavcodec/h264idct.c",
+- "libavcodec/h264qpel.c",
+- "libavcodec/startcode.c",
+- ]
+-}
+-
+-if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+- ffmpeg_c_sources += [
+- "compat/strtod.c",
+- ]
+-}
+-
+-if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/arm/fft_fixed_init_arm.c",
+- "libavcodec/arm/fft_init_arm.c",
+- "libavcodec/arm/vorbisdsp_init_arm.c",
+- "libavutil/arm/autorename_libavutil_arm_cpu.c",
+- "libavutil/arm/float_dsp_init_arm.c",
+- "libavutil/arm/float_dsp_init_vfp.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/arm/fft_vfp.S",
+- "libavcodec/arm/mdct_vfp.S",
+- "libavutil/arm/float_dsp_vfp.S",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/flac.c",
+- "libavcodec/flac_parser.c",
+- "libavcodec/flacdata.c",
+- "libavcodec/flacdec.c",
+- "libavcodec/flacdsp.c",
+- "libavformat/autorename_libavformat_flacdec.c",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/arm/h264pred_init_arm.c",
+- "libavcodec/arm/hpeldsp_init_arm.c",
+- "libavcodec/arm/hpeldsp_init_armv6.c",
+- "libavcodec/arm/videodsp_init_arm.c",
+- "libavcodec/arm/videodsp_init_armv5te.c",
+- "libavcodec/arm/vp3dsp_init_arm.c",
+- "libavcodec/arm/vp8dsp_init_arm.c",
+- "libavcodec/arm/vp8dsp_init_armv6.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/arm/hpeldsp_arm.S",
+- "libavcodec/arm/hpeldsp_armv6.S",
+- "libavcodec/arm/videodsp_armv5te.S",
+- "libavcodec/arm/vp8_armv6.S",
+- "libavcodec/arm/vp8dsp_armv6.S",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+- ffmpeg_c_sources += [
+- "libavcodec/x86/autorename_libavcodec_x86_videodsp_init.c",
+- "libavcodec/x86/h264_intrapred_init.c",
+- "libavcodec/x86/hpeldsp_init.c",
+- "libavcodec/x86/vp3dsp_init.c",
+- "libavcodec/x86/vp8dsp_init.c",
+- ]
+- ffmpeg_yasm_sources += [
+- "libavcodec/x86/fpel.asm",
+- "libavcodec/x86/h264_intrapred.asm",
+- "libavcodec/x86/h264_intrapred_10bit.asm",
+- "libavcodec/x86/hpeldsp.asm",
+- "libavcodec/x86/videodsp.asm",
+- "libavcodec/x86/vp3dsp.asm",
+- "libavcodec/x86/vp8dsp.asm",
+- "libavcodec/x86/vp8dsp_loopfilter.asm",
+- ]
+-}
+-
+-if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
+- ffmpeg_c_sources += [
+- "libavcodec/x86/aacpsdsp_init.c",
+- "libavcodec/x86/dct_init.c",
+- "libavcodec/x86/mpegaudiodsp.c",
+- "libavcodec/x86/sbrdsp_init.c",
+- ]
+- ffmpeg_yasm_sources += [
+- "libavcodec/x86/aacpsdsp.asm",
+- "libavcodec/x86/dct32.asm",
+- "libavcodec/x86/imdct36.asm",
+- "libavcodec/x86/sbrdsp.asm",
+- ]
+-}
+-
+-if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
+- ffmpeg_c_sources += [
+- "libavutil/arm/float_dsp_init_neon.c",
+- ]
+ ffmpeg_gas_sources += [
+- "libavcodec/arm/autorename_libavcodec_arm_fft_neon.S",
+- "libavcodec/arm/autorename_libavcodec_arm_mdct_neon.S",
+- "libavcodec/arm/autorename_libavcodec_arm_vorbisdsp_neon.S",
+- "libavcodec/arm/fft_fixed_neon.S",
+- "libavcodec/arm/mdct_fixed_neon.S",
+- "libavcodec/arm/rdft_neon.S",
+- "libavutil/arm/autorename_libavutil_arm_float_dsp_neon.S",
+- ]
+-}
+-
+-if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/arm/aacpsdsp_init_arm.c",
+- "libavcodec/arm/mpegaudiodsp_init_arm.c",
+- "libavcodec/arm/sbrdsp_init_arm.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/arm/mpegaudiodsp_fixed_armv6.S",
++ "libavcodec/aarch64/h264cmc_neon.S",
++ "libavcodec/aarch64/h264dsp_neon.S",
++ "libavcodec/aarch64/h264idct_neon.S",
++ "libavcodec/aarch64/h264qpel_neon.S",
++ "libavcodec/aarch64/imdct15_neon.S",
++ "libavcodec/aarch64/mpegaudiodsp_neon.S",
+ ]
}
-diff --git a/third_party/ffmpeg/libavcodec/aarch64/videodsp_init.c b/third_party/ffmpeg/libavcodec/aarch64/videodsp_init.c
-index 6f667a6..e7094e0 100644
---- a/third_party/ffmpeg/libavcodec/aarch64/videodsp_init.c
-+++ b/third_party/ffmpeg/libavcodec/aarch64/videodsp_init.c
-@@ -27,6 +27,6 @@ av_cold void ff_videodsp_init_aarch64(VideoDSPContext *ctx, int bpc)
- {
- int cpu_flags = av_get_cpu_flags();
-
-- if (have_armv8(cpu_flags))
-- ctx->prefetch = ff_prefetch_aarch64;
-+// if (have_armv8(cpu_flags))
-+// ctx->prefetch = ff_prefetch_aarch64;
+
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
++if (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") {
+ ffmpeg_c_sources += [
+ "libavcodec/acelp_filters.c",
+ "libavcodec/acelp_pitch_delay.c",
+@@ -358,9 +256,6 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
+ "libavcodec/amrnbdec.c",
+ "libavcodec/amrwbdec.c",
+ "libavcodec/autorename_libavcodec_gsmdec.c",
+- "libavcodec/autorename_libavcodec_mpegvideo.c",
+- "libavcodec/autorename_libavcodec_mpegvideodsp.c",
+- "libavcodec/autorename_libavcodec_simple_idct.c",
+ "libavcodec/blockdsp.c",
+ "libavcodec/celp_filters.c",
+ "libavcodec/celp_math.c",
+@@ -391,12 +286,16 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
+ "libavcodec/mpeg_er.c",
+ "libavcodec/mpegpicture.c",
+ "libavcodec/mpegutils.c",
++ "libavcodec/mpegvideo.c",
+ "libavcodec/mpegvideo_motion.c",
+ "libavcodec/mpegvideodata.c",
++ "libavcodec/mpegvideodsp.c",
+ "libavcodec/msgsmdec.c",
++ "libavcodec/neon/autorename_libavcodec_neon_mpegvideo.c",
+ "libavcodec/pixblockdsp.c",
+ "libavcodec/qpeldsp.c",
+ "libavcodec/rl.c",
++ "libavcodec/simple_idct.c",
+ "libavcodec/tiff_common.c",
+ "libavcodec/xvididct.c",
+ "libavformat/amr.c",
+@@ -405,260 +304,3 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
+ ]
}
-diff --git a/third_party/ffmpeg/libavcodec/aarch64/vorbisdsp_init.c b/third_party/ffmpeg/libavcodec/aarch64/vorbisdsp_init.c
-index c796f95..84610a6 100644
---- a/third_party/ffmpeg/libavcodec/aarch64/vorbisdsp_init.c
-+++ b/third_party/ffmpeg/libavcodec/aarch64/vorbisdsp_init.c
-@@ -28,7 +28,7 @@ av_cold void ff_vorbisdsp_init_aarch64(VorbisDSPContext *c)
- {
- int cpu_flags = av_get_cpu_flags();
-
-- if (have_neon(cpu_flags)) {
-- c->vorbis_inverse_coupling = ff_vorbis_inverse_coupling_neon;
-- }
-+// if (have_neon(cpu_flags)) {
-+// c->vorbis_inverse_coupling = ff_vorbis_inverse_coupling_neon;
-+// }
+
+-if ((is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS")) {
+- ffmpeg_c_sources += [
+- "libavutil/mips/float_dsp_mips.c",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/mips/h264pred_init_mips.c",
+- "libavcodec/mips/hpeldsp_init_mips.c",
+- "libavcodec/mips/vp8dsp_init_mips.c",
+- ]
+-}
+-
+-if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/aarch64/fft_init_aarch64.c",
+- "libavcodec/aarch64/vorbisdsp_init.c",
+- "libavutil/aarch64/cpu.c",
+- "libavutil/aarch64/float_dsp_init.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/aarch64/fft_neon.S",
+- "libavcodec/aarch64/mdct_neon.S",
+- "libavcodec/aarch64/vorbisdsp_neon.S",
+- "libavutil/aarch64/float_dsp_neon.S",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/aarch64/h264pred_init.c",
+- "libavcodec/aarch64/hpeldsp_init_aarch64.c",
+- "libavcodec/aarch64/videodsp_init.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/aarch64/autorename_libavcodec_aarch64_h264pred_neon.S",
+- "libavcodec/aarch64/autorename_libavcodec_aarch64_hpeldsp_neon.S",
+- "libavcodec/aarch64/videodsp.S",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/arm/flacdsp_init_arm.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/arm/flacdsp_arm.S",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/arm/h264chroma_init_arm.c",
+- "libavcodec/arm/h264dsp_init_arm.c",
+- "libavcodec/arm/h264qpel_init_arm.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/arm/startcode_armv6.S",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/arm/hpeldsp_init_neon.c",
+- "libavcodec/arm/vp8dsp_init_neon.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/arm/h264pred_neon.S",
+- "libavcodec/arm/hpeldsp_neon.S",
+- "libavcodec/arm/vp3dsp_neon.S",
+- "libavcodec/arm/vp8dsp_neon.S",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
+- ffmpeg_c_sources += [
+- "libavcodec/x86/h264_qpel.c",
+- "libavcodec/x86/h264chroma_init.c",
+- "libavcodec/x86/h264dsp_init.c",
+- ]
+- ffmpeg_yasm_sources += [
+- "libavcodec/x86/h264_chromamc.asm",
+- "libavcodec/x86/h264_chromamc_10bit.asm",
+- "libavcodec/x86/h264_deblock.asm",
+- "libavcodec/x86/h264_deblock_10bit.asm",
+- "libavcodec/x86/h264_idct.asm",
+- "libavcodec/x86/h264_idct_10bit.asm",
+- "libavcodec/x86/h264_qpel_10bit.asm",
+- "libavcodec/x86/h264_qpel_8bit.asm",
+- "libavcodec/x86/h264_weight.asm",
+- "libavcodec/x86/h264_weight_10bit.asm",
+- "libavcodec/x86/qpel.asm",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/x86/flacdsp_init.c",
+- ]
+- ffmpeg_yasm_sources += [
+- "libavcodec/x86/flacdsp.asm",
+- ]
+-}
+-
+-if ((is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+- ffmpeg_c_sources += [
+- "compat/msvcrt/snprintf.c",
+- ]
+-}
+-
+-if ((is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS")) {
+- ffmpeg_gas_sources += [
+- "libavcodec/arm/aacpsdsp_neon.S",
+- "libavcodec/arm/sbrdsp_neon.S",
+- ]
+-}
+-
+-if ((is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/mips/aacdec_mips.c",
+- "libavcodec/mips/aacpsdsp_mips.c",
+- "libavcodec/mips/aacsbr_mips.c",
+- "libavcodec/mips/sbrdsp_mips.c",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/mips/h264chroma_init_mips.c",
+- "libavcodec/mips/h264dsp_init_mips.c",
+- "libavcodec/mips/h264qpel_init_mips.c",
+- ]
+-}
+-
+-if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/aarch64/imdct15_init.c",
+- "libavcodec/aarch64/mpegaudiodsp_init.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/aarch64/imdct15_neon.S",
+- "libavcodec/aarch64/mpegaudiodsp_neon.S",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/aarch64/h264chroma_init_aarch64.c",
+- "libavcodec/aarch64/h264dsp_init_aarch64.c",
+- "libavcodec/aarch64/h264qpel_init_aarch64.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/aarch64/autorename_libavcodec_aarch64_h264cmc_neon.S",
+- "libavcodec/aarch64/autorename_libavcodec_aarch64_h264dsp_neon.S",
+- "libavcodec/aarch64/autorename_libavcodec_aarch64_h264idct_neon.S",
+- "libavcodec/aarch64/autorename_libavcodec_aarch64_h264qpel_neon.S",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/arm/blockdsp_init_arm.c",
+- "libavcodec/arm/idctdsp_init_arm.c",
+- "libavcodec/arm/idctdsp_init_armv5te.c",
+- "libavcodec/arm/idctdsp_init_armv6.c",
+- "libavcodec/arm/me_cmp_init_arm.c",
+- "libavcodec/arm/mpegvideo_arm.c",
+- "libavcodec/arm/mpegvideo_armv5te.c",
+- "libavcodec/arm/pixblockdsp_init_arm.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/arm/idctdsp_arm.S",
+- "libavcodec/arm/idctdsp_armv6.S",
+- "libavcodec/arm/jrevdct_arm.S",
+- "libavcodec/arm/me_cmp_armv6.S",
+- "libavcodec/arm/mpegvideo_armv5te_s.S",
+- "libavcodec/arm/pixblockdsp_armv6.S",
+- "libavcodec/arm/simple_idct_arm.S",
+- "libavcodec/arm/simple_idct_armv5te.S",
+- "libavcodec/arm/simple_idct_armv6.S",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/neon/autorename_libavcodec_neon_mpegvideo.c",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS")) {
+- ffmpeg_gas_sources += [
+- "libavcodec/arm/h264cmc_neon.S",
+- "libavcodec/arm/h264dsp_neon.S",
+- "libavcodec/arm/h264idct_neon.S",
+- "libavcodec/arm/h264qpel_neon.S",
+- ]
+-}
+-
+-if ((is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium")) {
+- ffmpeg_yasm_sources += [
+- "libavutil/x86/emms.asm",
+- ]
+-}
+-
+-if ((is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
+- ffmpeg_c_sources += [
+- "libavcodec/x86/blockdsp_init.c",
+- "libavcodec/x86/fdct.c",
+- "libavcodec/x86/fdctdsp_init.c",
+- "libavcodec/x86/h263dsp_init.c",
+- "libavcodec/x86/idctdsp_init.c",
+- "libavcodec/x86/me_cmp_init.c",
+- "libavcodec/x86/mpegvideo.c",
+- "libavcodec/x86/mpegvideodsp.c",
+- "libavcodec/x86/pixblockdsp_init.c",
+- "libavcodec/x86/qpeldsp_init.c",
+- "libavcodec/x86/simple_idct.c",
+- "libavcodec/x86/xvididct_init.c",
+- ]
+- ffmpeg_yasm_sources += [
+- "libavcodec/x86/blockdsp.asm",
+- "libavcodec/x86/h263_loopfilter.asm",
+- "libavcodec/x86/idctdsp.asm",
+- "libavcodec/x86/me_cmp.asm",
+- "libavcodec/x86/pixblockdsp.asm",
+- "libavcodec/x86/qpeldsp.asm",
+- "libavcodec/x86/xvididct.asm",
+- ]
+-}
+-
+-if (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") {
+- ffmpeg_c_sources += [
+- "libavcodec/mips/blockdsp_init_mips.c",
+- "libavcodec/mips/h263dsp_init_mips.c",
+- "libavcodec/mips/idctdsp_init_mips.c",
+- "libavcodec/mips/me_cmp_init_mips.c",
+- "libavcodec/mips/mpegvideo_init_mips.c",
+- "libavcodec/mips/pixblockdsp_init_mips.c",
+- "libavcodec/mips/qpeldsp_init_mips.c",
+- "libavcodec/mips/xvididct_init_mips.c",
+- ]
+-}
+-
+-if (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") {
+- ffmpeg_c_sources += [
+- "libavcodec/arm/blockdsp_init_neon.c",
+- "libavcodec/arm/idctdsp_init_neon.c",
+- ]
+- ffmpeg_gas_sources += [
+- "libavcodec/arm/blockdsp_neon.S",
+- "libavcodec/arm/idctdsp_neon.S",
+- "libavcodec/arm/mpegvideo_neon.S",
+- "libavcodec/arm/simple_idct_neon.S",
+- ]
+-}
+-
+diff --git a/third_party/ffmpeg/ffmpeg_generated.gypi b/third_party/ffmpeg/ffmpeg_generated.gypi
+index 4c7b1b9..231171a 100644
+--- a/third_party/ffmpeg/ffmpeg_generated.gypi
++++ b/third_party/ffmpeg/ffmpeg_generated.gypi
+@@ -98,29 +98,6 @@
+ 'libavcodec/arm/simple_idct_armv6.S',
+ ],
+ }], # (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS")
+- ['(OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")', {
+- 'c_sources': [
+- 'libavcodec/aarch64/h264chroma_init_aarch64.c',
+- 'libavcodec/aarch64/h264dsp_init_aarch64.c',
+- 'libavcodec/aarch64/h264qpel_init_aarch64.c',
+- ],
+- 'asm_sources': [
+- 'libavcodec/aarch64/autorename_libavcodec_aarch64_h264cmc_neon.S',
+- 'libavcodec/aarch64/autorename_libavcodec_aarch64_h264dsp_neon.S',
+- 'libavcodec/aarch64/autorename_libavcodec_aarch64_h264idct_neon.S',
+- 'libavcodec/aarch64/autorename_libavcodec_aarch64_h264qpel_neon.S',
+- ],
+- }], # (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")
+- ['(OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")', {
+- 'c_sources': [
+- 'libavcodec/aarch64/imdct15_init.c',
+- 'libavcodec/aarch64/mpegaudiodsp_init.c',
+- ],
+- 'asm_sources': [
+- 'libavcodec/aarch64/imdct15_neon.S',
+- 'libavcodec/aarch64/mpegaudiodsp_neon.S',
+- ],
+- }], # (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")
+ ['(OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS")', {
+ 'c_sources': [
+ 'libavcodec/mips/h264chroma_init_mips.c',
+@@ -205,19 +182,7 @@
+ 'libavcodec/arm/flacdsp_arm.S',
+ ],
+ }], # (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromiumOS")
+- ['(OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromiumOS")', {
+- 'c_sources': [
+- 'libavcodec/aarch64/h264pred_init.c',
+- 'libavcodec/aarch64/hpeldsp_init_aarch64.c',
+- 'libavcodec/aarch64/videodsp_init.c',
+- ],
+- 'asm_sources': [
+- 'libavcodec/aarch64/autorename_libavcodec_aarch64_h264pred_neon.S',
+- 'libavcodec/aarch64/autorename_libavcodec_aarch64_hpeldsp_neon.S',
+- 'libavcodec/aarch64/videodsp.S',
+- ],
+- }], # (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromiumOS")
+- ['(OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromiumOS")', {
++ ['(OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chromium")', {
+ 'c_sources': [
+ 'libavcodec/aarch64/fft_init_aarch64.c',
+ 'libavcodec/aarch64/vorbisdsp_init.c',
+@@ -230,7 +195,7 @@
+ 'libavcodec/aarch64/vorbisdsp_neon.S',
+ 'libavutil/aarch64/float_dsp_neon.S',
+ ],
+- }], # (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromiumOS")
++ }], # (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chromium")
+ ['(OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromiumOS")', {
+ 'c_sources': [
+ 'libavcodec/mips/h264pred_init_mips.c',
+@@ -296,7 +261,62 @@
+ 'libavformat/avidec.c',
+ 'libavformat/gsmdec.c',
+ ],
+- }], # (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromeOS")
++ }],
++ ['OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS"', {
++ 'c_sources': [
++ 'libavcodec/acelp_filters.c',
++ 'libavcodec/acelp_pitch_delay.c',
++ 'libavcodec/acelp_vectors.c',
++ 'libavcodec/amrnbdec.c',
++ 'libavcodec/amrwbdec.c',
++ 'libavcodec/autorename_libavcodec_gsmdec.c',
++ 'libavcodec/blockdsp.c',
++ 'libavcodec/celp_filters.c',
++ 'libavcodec/celp_math.c',
++ 'libavcodec/error_resilience.c',
++ 'libavcodec/exif.c',
++ 'libavcodec/faandct.c',
++ 'libavcodec/faanidct.c',
++ 'libavcodec/fdctdsp.c',
++ 'libavcodec/flvdec.c',
++ 'libavcodec/gsm_parser.c',
++ 'libavcodec/gsmdec_data.c',
++ 'libavcodec/h263.c',
++ 'libavcodec/h263_parser.c',
++ 'libavcodec/h263data.c',
++ 'libavcodec/h263dec.c',
++ 'libavcodec/h263dsp.c',
++ 'libavcodec/idctdsp.c',
++ 'libavcodec/intelh263dec.c',
++ 'libavcodec/ituh263dec.c',
++ 'libavcodec/jfdctfst.c',
++ 'libavcodec/jfdctint.c',
++ 'libavcodec/jrevdct.c',
++ 'libavcodec/lsp.c',
++ 'libavcodec/me_cmp.c',
++ 'libavcodec/mpeg4video.c',
++ 'libavcodec/mpeg4video_parser.c',
++ 'libavcodec/mpeg4videodec.c',
++ 'libavcodec/mpeg_er.c',
++ 'libavcodec/mpegpicture.c',
++ 'libavcodec/mpegutils.c',
++ 'libavcodec/mpegvideo.c',
++ 'libavcodec/mpegvideo_motion.c',
++ 'libavcodec/mpegvideodata.c',
++ 'libavcodec/mpegvideodsp.c',
++ 'libavcodec/msgsmdec.c',
++ 'libavcodec/neon/autorename_libavcodec_neon_mpegvideo.c',
++ 'libavcodec/pixblockdsp.c',
++ 'libavcodec/qpeldsp.c',
++ 'libavcodec/rl.c',
++ 'libavcodec/simple_idct.c',
++ 'libavcodec/tiff_common.c',
++ 'libavcodec/xvididct.c',
++ 'libavformat/amr.c',
++ 'libavformat/avidec.c',
++ 'libavformat/gsmdec.c',
++ ],
++ }],
+ ['(OS == "android" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS")', {
+ 'c_sources': [
+ 'libavcodec/arm/aacpsdsp_init_arm.c',
+@@ -424,7 +444,73 @@
+ 'libavcodec/h264qpel.c',
+ 'libavcodec/startcode.c',
+ ],
+- }], # (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromeOS") or (OS == "mac" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chrome")
++ }],
++ ['(OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")', {
++ 'c_sources': [
++ 'libavcodec/aac_ac3_parser.c',
++ 'libavcodec/aac_parser.c',
++ 'libavcodec/aacadtsdec.c',
++ 'libavcodec/aacps_float.c',
++ 'libavcodec/aacpsdsp_float.c',
++ 'libavcodec/aacsbr.c',
++ 'libavcodec/aactab.c',
++ 'libavcodec/aarch64/h264chroma_init_aarch64.c',
++ 'libavcodec/aarch64/h264dsp_init_aarch64.c',
++ 'libavcodec/aarch64/h264qpel_init_aarch64.c',
++ 'libavcodec/aarch64/imdct15_init.c',
++ 'libavcodec/aarch64/mpegaudiodsp_init.c',
++ 'libavcodec/ac3tab.c',
++ 'libavcodec/autorename_libavcodec_aacdec.c',
++ 'libavcodec/cabac.c',
++ 'libavcodec/dct.c',
++ 'libavcodec/dct32_fixed.c',
++ 'libavcodec/dct32_float.c',
++ 'libavcodec/h264.c',
++ 'libavcodec/h264_cabac.c',
++ 'libavcodec/h264_cavlc.c',
++ 'libavcodec/h264_direct.c',
++ 'libavcodec/h264_loopfilter.c',
++ 'libavcodec/h264_mb.c',
++ 'libavcodec/h264_parser.c',
++ 'libavcodec/h264_picture.c',
++ 'libavcodec/h264_ps.c',
++ 'libavcodec/h264_refs.c',
++ 'libavcodec/h264_sei.c',
++ 'libavcodec/h264_slice.c',
++ 'libavcodec/h264chroma.c',
++ 'libavcodec/h264dsp.c',
++ 'libavcodec/h264idct.c',
++ 'libavcodec/h264qpel.c',
++ 'libavcodec/imdct15.c',
++ 'libavcodec/kbdwin.c',
++ 'libavcodec/mpegaudio.c',
++ 'libavcodec/mpegaudio_parser.c',
++ 'libavcodec/mpegaudiodec_fixed.c',
++ 'libavcodec/mpegaudiodecheader.c',
++ 'libavcodec/mpegaudiodsp.c',
++ 'libavcodec/mpegaudiodsp_data.c',
++ 'libavcodec/mpegaudiodsp_fixed.c',
++ 'libavcodec/mpegaudiodsp_float.c',
++ 'libavcodec/sbrdsp.c',
++ 'libavcodec/sinewin.c',
++ 'libavcodec/sinewin_fixed.c',
++ 'libavcodec/startcode.c',
++ 'libavformat/aacdec.c',
++ 'libavformat/apetag.c',
++ 'libavformat/img2.c',
++ 'libavformat/mov.c',
++ 'libavformat/mov_chan.c',
++ 'libavformat/mp3dec.c',
++ ],
++ 'asm_sources': [
++ 'libavcodec/aarch64/h264cmc_neon.S',
++ 'libavcodec/aarch64/h264dsp_neon.S',
++ 'libavcodec/aarch64/h264idct_neon.S',
++ 'libavcodec/aarch64/h264qpel_neon.S',
++ 'libavcodec/aarch64/imdct15_neon.S',
++ 'libavcodec/aarch64/mpegaudiodsp_neon.S',
++ ],
++ }],
+ ['(OS == "android" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "android" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "x64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromiumOS") or (OS == "mac" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "mac" and target_arch == "x64" and ffmpeg_branding == "Chromium") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chromium")', {
+ 'c_sources': [
+ 'libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c',
+@@ -476,7 +562,17 @@
+ 'libavformat/mov_chan.c',
+ 'libavformat/mp3dec.c',
+ ],
+- }], # (OS == "android" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromeOS") or (OS == "mac" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chrome")
++ }],
++ ['(OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromiumOS")', {
++ 'c_sources': [
++ 'libavcodec/flac.c',
++ 'libavcodec/flac_parser.c',
++ 'libavcodec/flacdata.c',
++ 'libavcodec/flacdec.c',
++ 'libavcodec/flacdsp.c',
++ 'libavformat/autorename_libavformat_flacdec.c',
++ ],
++ }],
+ ['(OS == "android" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromiumOS") or (OS == "mac" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chrome")', {
+ 'c_sources': [
+ 'libavformat/rawdec.c',
+@@ -495,7 +591,12 @@
+ 'libavcodec/vp8_parser.c',
+ 'libavcodec/vp8dsp.c',
+ ],
+- }], # (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromiumOS") or (OS == "mac" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "mac" and target_arch == "x64" and ffmpeg_branding == "Chromium") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chromium")
++ }],
++ ['(OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromiumOS")', {
++ 'c_sources': [
++ 'libavformat/rawdec.c',
++ ],
++ }],
+ ['(OS == "android" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "arm" and ffmpeg_branding == "Chromium") or (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "android" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "android" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "mipsel" and ffmpeg_branding == "Chromium") or (OS == "android" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "x64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromiumOS") or (OS == "mac" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "mac" and target_arch == "x64" and ffmpeg_branding == "Chromium") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chromium")', {
+ 'c_sources': [
+ 'libavcodec/allcodecs.c',
+@@ -620,7 +721,158 @@
+ 'libavutil/twofish.c',
+ 'libavutil/utils.c',
+ ],
+- }], # (OS == "android" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "arm" and ffmpeg_branding == "Chromium") or (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "android" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "android" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "mipsel" and ffmpeg_branding == "Chromium") or (OS == "android" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "android" and target_arch == "x64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromiumOS") or (OS == "mac" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "mac" and target_arch == "x64" and ffmpeg_branding == "Chromium") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chromium")
++ }],
++ ['(OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chromium") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromiumOS")', {
++ 'c_sources': [
++ 'libavcodec/aarch64/fft_init_aarch64.c',
++ 'libavcodec/aarch64/h264pred_init.c',
++ 'libavcodec/aarch64/hpeldsp_init_aarch64.c',
++ 'libavcodec/aarch64/videodsp_init.c',
++ 'libavcodec/aarch64/vorbisdsp_init.c',
++ 'libavcodec/allcodecs.c',
++ 'libavcodec/autorename_libavcodec_utils.c',
++ 'libavcodec/avdct.c',
++ 'libavcodec/avfft.c',
++ 'libavcodec/avpacket.c',
++ 'libavcodec/avpicture.c',
++ 'libavcodec/bitstream.c',
++ 'libavcodec/bitstream_filter.c',
++ 'libavcodec/codec_desc.c',
++ 'libavcodec/dirac.c',
++ 'libavcodec/dv_profile.c',
++ 'libavcodec/fft_fixed.c',
++ 'libavcodec/fft_fixed_32.c',
++ 'libavcodec/fft_float.c',
++ 'libavcodec/fft_init_table.c',
++ 'libavcodec/golomb.c',
++ 'libavcodec/h264pred.c',
++ 'libavcodec/hpeldsp.c',
++ 'libavcodec/imgconvert.c',
++ 'libavcodec/mathtables.c',
++ 'libavcodec/mdct_fixed.c',
++ 'libavcodec/mdct_fixed_32.c',
++ 'libavcodec/mdct_float.c',
++ 'libavcodec/mpeg12data.c',
++ 'libavcodec/mpeg4audio.c',
++ 'libavcodec/mpegaudiodata.c',
++ 'libavcodec/options.c',
++ 'libavcodec/opus.c',
++ 'libavcodec/opus_parser.c',
++ 'libavcodec/parser.c',
++ 'libavcodec/pcm.c',
++ 'libavcodec/pthread.c',
++ 'libavcodec/pthread_frame.c',
++ 'libavcodec/pthread_slice.c',
++ 'libavcodec/qsv_api.c',
++ 'libavcodec/raw.c',
++ 'libavcodec/rdft.c',
++ 'libavcodec/videodsp.c',
++ 'libavcodec/vorbis.c',
++ 'libavcodec/vorbis_data.c',
++ 'libavcodec/vorbis_parser.c',
++ 'libavcodec/vorbisdec.c',
++ 'libavcodec/vorbisdsp.c',
++ 'libavcodec/vp3.c',
++ 'libavcodec/vp3_parser.c',
++ 'libavcodec/vp3dsp.c',
++ 'libavcodec/vp56rac.c',
++ 'libavcodec/vp8.c',
++ 'libavcodec/vp8_parser.c',
++ 'libavcodec/vp8dsp.c',
++ 'libavcodec/xiph.c',
++ 'libavformat/allformats.c',
++ 'libavformat/autorename_libavformat_options.c',
++ 'libavformat/autorename_libavformat_pcm.c',
++ 'libavformat/autorename_libavformat_utils.c',
++ 'libavformat/avio.c',
++ 'libavformat/aviobuf.c',
++ 'libavformat/cutils.c',
++ 'libavformat/dump.c',
++ 'libavformat/flac_picture.c',
++ 'libavformat/format.c',
++ 'libavformat/id3v1.c',
++ 'libavformat/id3v2.c',
++ 'libavformat/isom.c',
++ 'libavformat/matroska.c',
++ 'libavformat/matroskadec.c',
++ 'libavformat/metadata.c',
++ 'libavformat/mux.c',
++ 'libavformat/oggdec.c',
++ 'libavformat/oggparsecelt.c',
++ 'libavformat/oggparsedirac.c',
++ 'libavformat/oggparseflac.c',
++ 'libavformat/oggparseogm.c',
++ 'libavformat/oggparseopus.c',
++ 'libavformat/oggparseskeleton.c',
++ 'libavformat/oggparsespeex.c',
++ 'libavformat/oggparsetheora.c',
++ 'libavformat/oggparsevorbis.c',
++ 'libavformat/oggparsevp8.c',
++ 'libavformat/os_support.c',
++ 'libavformat/replaygain.c',
++ 'libavformat/riff.c',
++ 'libavformat/riffdec.c',
++ 'libavformat/rmsipr.c',
++ 'libavformat/url.c',
++ 'libavformat/vorbiscomment.c',
++ 'libavformat/wavdec.c',
++ 'libavutil/aarch64/cpu.c',
++ 'libavutil/aarch64/float_dsp_init.c',
++ 'libavutil/aes.c',
++ 'libavutil/autorename_libavutil_cpu.c',
++ 'libavutil/avstring.c',
++ 'libavutil/base64.c',
++ 'libavutil/bprint.c',
++ 'libavutil/buffer.c',
++ 'libavutil/camellia.c',
++ 'libavutil/channel_layout.c',
++ 'libavutil/color_utils.c',
++ 'libavutil/crc.c',
++ 'libavutil/dict.c',
++ 'libavutil/display.c',
++ 'libavutil/downmix_info.c',
++ 'libavutil/error.c',
++ 'libavutil/eval.c',
++ 'libavutil/fifo.c',
++ 'libavutil/file_open.c',
++ 'libavutil/fixed_dsp.c',
++ 'libavutil/float_dsp.c',
++ 'libavutil/frame.c',
++ 'libavutil/imgutils.c',
++ 'libavutil/intmath.c',
++ 'libavutil/lfg.c',
++ 'libavutil/log.c',
++ 'libavutil/log2_tab.c',
++ 'libavutil/mathematics.c',
++ 'libavutil/md5.c',
++ 'libavutil/mem.c',
++ 'libavutil/opt.c',
++ 'libavutil/parseutils.c',
++ 'libavutil/pixdesc.c',
++ 'libavutil/pixelutils.c',
++ 'libavutil/random_seed.c',
++ 'libavutil/rational.c',
++ 'libavutil/reverse.c',
++ 'libavutil/samplefmt.c',
++ 'libavutil/sha.c',
++ 'libavutil/stereo3d.c',
++ 'libavutil/tea.c',
++ 'libavutil/threadmessage.c',
++ 'libavutil/time.c',
++ 'libavutil/timecode.c',
++ 'libavutil/twofish.c',
++ 'libavutil/utils.c',
++ ],
++ 'asm_sources': [
++ 'libavcodec/aarch64/fft_neon.S',
++ 'libavcodec/aarch64/h264pred_neon.S',
++ 'libavcodec/aarch64/hpeldsp_neon.S',
++ 'libavcodec/aarch64/mdct_neon.S',
++ 'libavcodec/aarch64/videodsp_neon.S',
++ 'libavcodec/aarch64/vorbisdsp_neon.S',
++ 'libavutil/aarch64/float_dsp_neon.S',
++ ],
++ }],
+ ], # conditions
+ },
}
-diff --git a/third_party/ffmpeg/libavutil/aarch64/float_dsp_init.c b/third_party/ffmpeg/libavutil/aarch64/float_dsp_init.c
-index 4325071..34bf9e9 100644
---- a/third_party/ffmpeg/libavutil/aarch64/float_dsp_init.c
-+++ b/third_party/ffmpeg/libavutil/aarch64/float_dsp_init.c
-@@ -54,7 +54,7 @@ float ff_scalarproduct_float_neon(const float *v1, const float *v2, int len);
- av_cold void ff_float_dsp_init_aarch64(AVFloatDSPContext *fdsp)
- {
- int cpu_flags = av_get_cpu_flags();
+diff --git a/third_party/ffmpeg/libavcodec/aarch64/videodsp.S b/third_party/ffmpeg/libavcodec/aarch64/videodsp.S
+deleted file mode 100644
+index 24067cc..0000000
+--- a/third_party/ffmpeg/libavcodec/aarch64/videodsp.S
++++ /dev/null
+@@ -1,28 +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
+- */
+-
+-#include "libavutil/aarch64/asm.S"
-
+-function ff_prefetch_aarch64, export=1
+- subs w2, w2, #2
+- prfm pldl1strm, [x0]
+- prfm pldl1strm, [x0, x1]
+- add x0, x0, x1, lsl #1
+- b.gt X(ff_prefetch_aarch64)
+- ret
+-endfunc
+diff --git a/third_party/ffmpeg/libavcodec/aarch64/videodsp_neon.S b/third_party/ffmpeg/libavcodec/aarch64/videodsp_neon.S
+new file mode 100644
+index 0000000..24067cc
+--- /dev/null
++++ b/third_party/ffmpeg/libavcodec/aarch64/videodsp_neon.S
+@@ -0,0 +1,28 @@
+/*
- if (have_neon(cpu_flags)) {
- fdsp->butterflies_float = ff_butterflies_float_neon;
- fdsp->scalarproduct_float = ff_scalarproduct_float_neon;
-@@ -66,4 +66,5 @@ av_cold void ff_float_dsp_init_aarch64(AVFloatDSPContext *fdsp)
- fdsp->vector_fmul_scalar = ff_vector_fmul_scalar_neon;
- fdsp->vector_fmul_window = ff_vector_fmul_window_neon;
- }
-+*/
- }
++ * 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 "libavutil/aarch64/asm.S"
++
++function ff_prefetch_aarch64, export=1
++ subs w2, w2, #2
++ prfm pldl1strm, [x0]
++ prfm pldl1strm, [x0, x1]
++ add x0, x0, x1, lsl #1
++ b.gt X(ff_prefetch_aarch64)
++ ret
++endfunc