[ffmpeg] add opus support
This CL integrates third_party/opus with ffmpeg and turns on opus
decoding for x64 and arm64 builds.
TEST: Integration with fuchsia mediaplayer has tests that work with
this change (local ffmpeg build)
Change-Id: I8f34cefc94e4376bff75997b097afc68be7c0888
Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/ffmpeg/+/383497
Reviewed-by: Austin Foxley <afoxley@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 4fc264b..a7d14048 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -158,7 +158,9 @@
cflags = []
ldflags = []
libs = []
- deps = []
+ deps = [
+ "//third_party/opus",
+ ]
configs += [
":ffmpeg_warnings",
diff --git a/README.fuchsia b/README.fuchsia
index c2c81f2..9ef4359 100644
--- a/README.fuchsia
+++ b/README.fuchsia
@@ -74,12 +74,10 @@
# Note: upstream/master automatically tracks upstream.
# Make sure your path is set up to use the right yasm and clang. yasm needs
- # to be installed, and clang is in prebuild/third_party/clang/bin.
+ # to be installed, and clang is in prebuilt/third_party/clang/linux-x64/bin.
- # Make sure the two sysroot you will need is available, namely
+ # Make sure that sysroot is available, namely
# ../../prebuilt/third_party/sysroot/linux
- # The x64 version will be present on x64 linux hosts. The arm64 version
- # can be obtained using cipd install.
# Create a new branch based off of master.
git checkout origin/master -b my_new_branch
diff --git a/configure b/configure
index 85d5dd5..fd8e8cb 100755
--- a/configure
+++ b/configure
@@ -6109,14 +6109,15 @@
enabled libopenjpeg && { check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version ||
{ require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } }
enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++"
-enabled libopus && {
- enabled libopus_decoder && {
- require_pkg_config libopus opus opus_multistream.h opus_multistream_decoder_create
- }
- enabled libopus_encoder && {
- require_pkg_config libopus opus opus_multistream.h opus_multistream_surround_encoder_create
- }
-}
+# Fuchsia uses a built in copy of libopus that is not visible to pkg-config.
+# enabled libopus && {
+# enabled libopus_decoder && {
+# require_pkg_config libopus opus opus_multistream.h opus_multistream_decoder_create
+# }
+# enabled libopus_encoder && {
+# require_pkg_config libopus opus opus_multistream.h opus_multistream_surround_encoder_create
+# }
+# }
enabled libpulse && require_pkg_config libpulse libpulse pulse/pulseaudio.h pa_context_new
enabled librsvg && require_pkg_config librsvg librsvg-2.0 librsvg-2.0/librsvg/rsvg.h rsvg_handle_render_cairo
enabled librtmp && require_pkg_config librtmp librtmp librtmp/rtmp.h RTMP_Socket
diff --git a/ffmpeg_generated.gni b/ffmpeg_generated.gni
index 78dd7d1..b2238a0 100644
--- a/ffmpeg_generated.gni
+++ b/ffmpeg_generated.gni
@@ -1,4 +1,4 @@
-# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -50,6 +50,8 @@
"libavcodec/hpeldsp.c",
"libavcodec/imgconvert.c",
"libavcodec/jni.c",
+ "libavcodec/libopus.c",
+ "libavcodec/libopusdec.c",
"libavcodec/mathtables.c",
"libavcodec/mdct_fixed.c",
"libavcodec/mdct_fixed_32.c",
diff --git a/fuchsia/config/default/arm64/config.h b/fuchsia/config/default/arm64/config.h
index 2dc7048..3c62ee6 100644
--- a/fuchsia/config/default/arm64/config.h
+++ b/fuchsia/config/default/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-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-decoder='theora,vp8,sbc,aptx' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --enable-parser='vp3,vp8' --optflags='\"-O2\"' --enable-pic --x86asmexe=yasm --enable-pic --enable-lto --cc=clang --cxx=clang++ --ld=clang --enable-cross-compile --cross-prefix=/usr/bin/x86_64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --sysroot=/usr/local/google/home/dalesat/fuchsia/third_party/ffmpeg/../../prebuilt/third_party/sysroot/linux --extra-cflags='--target=aarch64-linux-gnu' --extra-ldflags='--target=aarch64-linux-gnu' --disable-linux-perf --disable-error-resilience"
+#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 --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-decoder='theora,vp8,sbc,aptx' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/dalesat/fuchsia/third_party/opus/include --enable-parser='vp3,vp8' --optflags='\"-O2\"' --enable-pic --x86asmexe=yasm --enable-pic --enable-lto --cc=clang --cxx=clang++ --ld=clang --enable-cross-compile --cross-prefix=/usr/bin/x86_64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --sysroot=/usr/local/google/home/dalesat/fuchsia/third_party/ffmpeg/../../prebuilt/third_party/sysroot/linux --extra-cflags='--target=aarch64-linux-gnu' --extra-ldflags='--target=aarch64-linux-gnu' --disable-linux-perf --disable-error-resilience"
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "Fuchsia clang version 10.0.0 (https://fuchsia.googlesource.com/a/third_party/llvm-project fce11c6904c888e6d39f71e03806a540852dec41) (based on LLVM 10.0.0svn)"
+#define CC_IDENT "Fuchsia clang version 11.0.0 (https://fuchsia.googlesource.com/a/third_party/llvm-project 6e00e3fcb082c3f19309ebc6f184ab326eec3328)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -459,7 +459,7 @@
#define CONFIG_LIBOPENH264 0
#define CONFIG_LIBOPENJPEG 0
#define CONFIG_LIBOPENMPT 0
-#define CONFIG_LIBOPUS 0
+#define CONFIG_LIBOPUS 1
#define CONFIG_LIBPULSE 0
#define CONFIG_LIBRSVG 0
#define CONFIG_LIBRTMP 0
@@ -1184,7 +1184,7 @@
#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
#define CONFIG_LIBOPENJPEG_DECODER 0
-#define CONFIG_LIBOPUS_DECODER 0
+#define CONFIG_LIBOPUS_DECODER 1
#define CONFIG_LIBRSVG_DECODER 0
#define CONFIG_LIBSPEEX_DECODER 0
#define CONFIG_LIBVORBIS_DECODER 0
diff --git a/fuchsia/config/default/arm64/libavcodec/codec_list.c b/fuchsia/config/default/arm64/libavcodec/codec_list.c
index da1e4e9..6c53695 100644
--- a/fuchsia/config/default/arm64/libavcodec/codec_list.c
+++ b/fuchsia/config/default/arm64/libavcodec/codec_list.c
@@ -16,4 +16,5 @@
&ff_pcm_s24le_decoder,
&ff_pcm_s32le_decoder,
&ff_pcm_u8_decoder,
+ &ff_libopus_decoder,
NULL };
diff --git a/fuchsia/config/default/arm64/libavutil/ffversion.h b/fuchsia/config/default/arm64/libavutil/ffversion.h
index b2dcb3a..4585957 100644
--- a/fuchsia/config/default/arm64/libavutil/ffversion.h
+++ b/fuchsia/config/default/arm64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92362-ge807a23f51"
+#define FFMPEG_VERSION "N-92369-g2e9f4ad959"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/fuchsia/config/default/x64/config.asm b/fuchsia/config/default/x64/config.asm
index 935ab8f..af8a4be 100644
--- a/fuchsia/config/default/x64/config.asm
+++ b/fuchsia/config/default/x64/config.asm
@@ -444,7 +444,7 @@
%define CONFIG_LIBOPENH264 0
%define CONFIG_LIBOPENJPEG 0
%define CONFIG_LIBOPENMPT 0
-%define CONFIG_LIBOPUS 0
+%define CONFIG_LIBOPUS 1
%define CONFIG_LIBPULSE 0
%define CONFIG_LIBRSVG 0
%define CONFIG_LIBRTMP 0
@@ -1169,7 +1169,7 @@
%define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
%define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
%define CONFIG_LIBOPENJPEG_DECODER 0
-%define CONFIG_LIBOPUS_DECODER 0
+%define CONFIG_LIBOPUS_DECODER 1
%define CONFIG_LIBRSVG_DECODER 0
%define CONFIG_LIBSPEEX_DECODER 0
%define CONFIG_LIBVORBIS_DECODER 0
diff --git a/fuchsia/config/default/x64/config.h b/fuchsia/config/default/x64/config.h
index ba2816c..51ed698 100644
--- a/fuchsia/config/default/x64/config.h
+++ b/fuchsia/config/default/x64/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-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-decoder='theora,vp8,sbc,aptx' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --enable-parser='vp3,vp8' --optflags='\"-O2\"' --enable-pic --x86asmexe=yasm --enable-pic --enable-lto --cc=clang --cxx=clang++ --ld=clang --enable-decoder=vp9 --enable-parser=vp9 --sysroot=/usr/local/google/home/dalesat/fuchsia/third_party/ffmpeg/../../prebuilt/third_party/sysroot/linux --extra-ldflags='-fuse-ld=lld' --disable-error-resilience"
+#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 --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-decoder='theora,vp8,sbc,aptx' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/dalesat/fuchsia/third_party/opus/include --enable-parser='vp3,vp8' --optflags='\"-O2\"' --enable-pic --x86asmexe=yasm --enable-pic --enable-lto --cc=clang --cxx=clang++ --ld=clang --enable-decoder=vp9 --enable-parser=vp9 --sysroot=/usr/local/google/home/dalesat/fuchsia/third_party/ffmpeg/../../prebuilt/third_party/sysroot/linux --extra-ldflags='-fuse-ld=lld' --disable-error-resilience"
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "Fuchsia clang version 10.0.0 (https://fuchsia.googlesource.com/a/third_party/llvm-project cea8882254f97ae82867e25e736959d1cfa31896) (based on LLVM 10.0.0svn)"
+#define CC_IDENT "Fuchsia clang version 11.0.0 (https://fuchsia.googlesource.com/a/third_party/llvm-project 6e00e3fcb082c3f19309ebc6f184ab326eec3328)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -459,7 +459,7 @@
#define CONFIG_LIBOPENH264 0
#define CONFIG_LIBOPENJPEG 0
#define CONFIG_LIBOPENMPT 0
-#define CONFIG_LIBOPUS 0
+#define CONFIG_LIBOPUS 1
#define CONFIG_LIBPULSE 0
#define CONFIG_LIBRSVG 0
#define CONFIG_LIBRTMP 0
@@ -1184,7 +1184,7 @@
#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
#define CONFIG_LIBOPENJPEG_DECODER 0
-#define CONFIG_LIBOPUS_DECODER 0
+#define CONFIG_LIBOPUS_DECODER 1
#define CONFIG_LIBRSVG_DECODER 0
#define CONFIG_LIBSPEEX_DECODER 0
#define CONFIG_LIBVORBIS_DECODER 0
diff --git a/fuchsia/config/default/x64/libavcodec/codec_list.c b/fuchsia/config/default/x64/libavcodec/codec_list.c
index e54e1a7..8e4d5e8 100644
--- a/fuchsia/config/default/x64/libavcodec/codec_list.c
+++ b/fuchsia/config/default/x64/libavcodec/codec_list.c
@@ -17,4 +17,5 @@
&ff_pcm_s24le_decoder,
&ff_pcm_s32le_decoder,
&ff_pcm_u8_decoder,
+ &ff_libopus_decoder,
NULL };
diff --git a/fuchsia/config/default/x64/libavutil/ffversion.h b/fuchsia/config/default/x64/libavutil/ffversion.h
index b2dcb3a..4585957 100644
--- a/fuchsia/config/default/x64/libavutil/ffversion.h
+++ b/fuchsia/config/default/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92362-ge807a23f51"
+#define FFMPEG_VERSION "N-92369-g2e9f4ad959"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/fuchsia/config/max/arm64/config.h b/fuchsia/config/max/arm64/config.h
index 85321fd..5c2c827 100644
--- a/fuchsia/config/max/arm64/config.h
+++ b/fuchsia/config/max/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-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-decoder='theora,vp8,sbc,aptx' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --enable-parser='vp3,vp8' --optflags='\"-O2\"' --enable-pic --x86asmexe=yasm --enable-pic --enable-lto --cc=clang --cxx=clang++ --ld=clang --enable-cross-compile --cross-prefix=/usr/bin/x86_64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --sysroot=/usr/local/google/home/dalesat/fuchsia/third_party/ffmpeg/../../prebuilt/third_party/sysroot/linux --extra-cflags='--target=aarch64-linux-gnu' --extra-ldflags='--target=aarch64-linux-gnu' --disable-linux-perf --enable-decoder='aac,aac_latm,h264,mp3' --enable-demuxer='aac,mp3,mov' --enable-parser='aac,aac_latm,h264,mpegaudio' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --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 --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-decoder='theora,vp8,sbc,aptx' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/dalesat/fuchsia/third_party/opus/include --enable-parser='vp3,vp8' --optflags='\"-O2\"' --enable-pic --x86asmexe=yasm --enable-pic --enable-lto --cc=clang --cxx=clang++ --ld=clang --enable-cross-compile --cross-prefix=/usr/bin/x86_64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --sysroot=/usr/local/google/home/dalesat/fuchsia/third_party/ffmpeg/../../prebuilt/third_party/sysroot/linux --extra-cflags='--target=aarch64-linux-gnu' --extra-ldflags='--target=aarch64-linux-gnu' --disable-linux-perf --enable-decoder='aac,aac_latm,h264,mp3' --enable-demuxer='aac,mp3,mov' --enable-parser='aac,aac_latm,h264,mpegaudio' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-demuxer=gsm --enable-parser=gsm"
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "Fuchsia clang version 10.0.0 (https://fuchsia.googlesource.com/a/third_party/llvm-project fce11c6904c888e6d39f71e03806a540852dec41) (based on LLVM 10.0.0svn)"
+#define CC_IDENT "Fuchsia clang version 11.0.0 (https://fuchsia.googlesource.com/a/third_party/llvm-project 6e00e3fcb082c3f19309ebc6f184ab326eec3328)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -459,7 +459,7 @@
#define CONFIG_LIBOPENH264 0
#define CONFIG_LIBOPENJPEG 0
#define CONFIG_LIBOPENMPT 0
-#define CONFIG_LIBOPUS 0
+#define CONFIG_LIBOPUS 1
#define CONFIG_LIBPULSE 0
#define CONFIG_LIBRSVG 0
#define CONFIG_LIBRTMP 0
@@ -1184,7 +1184,7 @@
#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
#define CONFIG_LIBOPENJPEG_DECODER 0
-#define CONFIG_LIBOPUS_DECODER 0
+#define CONFIG_LIBOPUS_DECODER 1
#define CONFIG_LIBRSVG_DECODER 0
#define CONFIG_LIBSPEEX_DECODER 0
#define CONFIG_LIBVORBIS_DECODER 0
diff --git a/fuchsia/config/max/arm64/libavcodec/codec_list.c b/fuchsia/config/max/arm64/libavcodec/codec_list.c
index 25a919c..2051e92 100644
--- a/fuchsia/config/max/arm64/libavcodec/codec_list.c
+++ b/fuchsia/config/max/arm64/libavcodec/codec_list.c
@@ -24,4 +24,5 @@
&ff_pcm_s24le_decoder,
&ff_pcm_s32le_decoder,
&ff_pcm_u8_decoder,
+ &ff_libopus_decoder,
NULL };
diff --git a/fuchsia/config/max/arm64/libavutil/ffversion.h b/fuchsia/config/max/arm64/libavutil/ffversion.h
index b2dcb3a..4585957 100644
--- a/fuchsia/config/max/arm64/libavutil/ffversion.h
+++ b/fuchsia/config/max/arm64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92362-ge807a23f51"
+#define FFMPEG_VERSION "N-92369-g2e9f4ad959"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/fuchsia/config/max/x64/config.asm b/fuchsia/config/max/x64/config.asm
index 14e0cc8..c675951 100644
--- a/fuchsia/config/max/x64/config.asm
+++ b/fuchsia/config/max/x64/config.asm
@@ -444,7 +444,7 @@
%define CONFIG_LIBOPENH264 0
%define CONFIG_LIBOPENJPEG 0
%define CONFIG_LIBOPENMPT 0
-%define CONFIG_LIBOPUS 0
+%define CONFIG_LIBOPUS 1
%define CONFIG_LIBPULSE 0
%define CONFIG_LIBRSVG 0
%define CONFIG_LIBRTMP 0
@@ -1169,7 +1169,7 @@
%define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
%define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
%define CONFIG_LIBOPENJPEG_DECODER 0
-%define CONFIG_LIBOPUS_DECODER 0
+%define CONFIG_LIBOPUS_DECODER 1
%define CONFIG_LIBRSVG_DECODER 0
%define CONFIG_LIBSPEEX_DECODER 0
%define CONFIG_LIBVORBIS_DECODER 0
diff --git a/fuchsia/config/max/x64/config.h b/fuchsia/config/max/x64/config.h
index 3000f8b..a5b5c94 100644
--- a/fuchsia/config/max/x64/config.h
+++ b/fuchsia/config/max/x64/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-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-decoder='theora,vp8,sbc,aptx' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --enable-parser='vp3,vp8' --optflags='\"-O2\"' --enable-pic --x86asmexe=yasm --enable-pic --enable-lto --cc=clang --cxx=clang++ --ld=clang --enable-decoder=vp9 --enable-parser=vp9 --sysroot=/usr/local/google/home/dalesat/fuchsia/third_party/ffmpeg/../../prebuilt/third_party/sysroot/linux --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,aac_latm,h264,mp3' --enable-demuxer='aac,mp3,mov' --enable-parser='aac,aac_latm,h264,mpegaudio' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --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 --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-decoder='theora,vp8,sbc,aptx' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/dalesat/fuchsia/third_party/opus/include --enable-parser='vp3,vp8' --optflags='\"-O2\"' --enable-pic --x86asmexe=yasm --enable-pic --enable-lto --cc=clang --cxx=clang++ --ld=clang --enable-decoder=vp9 --enable-parser=vp9 --sysroot=/usr/local/google/home/dalesat/fuchsia/third_party/ffmpeg/../../prebuilt/third_party/sysroot/linux --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,aac_latm,h264,mp3' --enable-demuxer='aac,mp3,mov' --enable-parser='aac,aac_latm,h264,mpegaudio' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-demuxer=gsm --enable-parser=gsm"
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "Fuchsia clang version 10.0.0 (https://fuchsia.googlesource.com/a/third_party/llvm-project cea8882254f97ae82867e25e736959d1cfa31896) (based on LLVM 10.0.0svn)"
+#define CC_IDENT "Fuchsia clang version 11.0.0 (https://fuchsia.googlesource.com/a/third_party/llvm-project 6e00e3fcb082c3f19309ebc6f184ab326eec3328)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -459,7 +459,7 @@
#define CONFIG_LIBOPENH264 0
#define CONFIG_LIBOPENJPEG 0
#define CONFIG_LIBOPENMPT 0
-#define CONFIG_LIBOPUS 0
+#define CONFIG_LIBOPUS 1
#define CONFIG_LIBPULSE 0
#define CONFIG_LIBRSVG 0
#define CONFIG_LIBRTMP 0
@@ -1184,7 +1184,7 @@
#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
#define CONFIG_LIBOPENJPEG_DECODER 0
-#define CONFIG_LIBOPUS_DECODER 0
+#define CONFIG_LIBOPUS_DECODER 1
#define CONFIG_LIBRSVG_DECODER 0
#define CONFIG_LIBSPEEX_DECODER 0
#define CONFIG_LIBVORBIS_DECODER 0
diff --git a/fuchsia/config/max/x64/libavcodec/codec_list.c b/fuchsia/config/max/x64/libavcodec/codec_list.c
index 86c0fd7..97fbca7 100644
--- a/fuchsia/config/max/x64/libavcodec/codec_list.c
+++ b/fuchsia/config/max/x64/libavcodec/codec_list.c
@@ -25,4 +25,5 @@
&ff_pcm_s24le_decoder,
&ff_pcm_s32le_decoder,
&ff_pcm_u8_decoder,
+ &ff_libopus_decoder,
NULL };
diff --git a/fuchsia/config/max/x64/libavutil/ffversion.h b/fuchsia/config/max/x64/libavutil/ffversion.h
index b2dcb3a..4585957 100644
--- a/fuchsia/config/max/x64/libavutil/ffversion.h
+++ b/fuchsia/config/max/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92362-ge807a23f51"
+#define FFMPEG_VERSION "N-92369-g2e9f4ad959"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/fuchsia/scripts/build_ffmpeg.py b/fuchsia/scripts/build_ffmpeg.py
index 29a9830..145f3f9 100755
--- a/fuchsia/scripts/build_ffmpeg.py
+++ b/fuchsia/scripts/build_ffmpeg.py
@@ -19,6 +19,7 @@
SCRIPTS_DIR = os.path.abspath(os.path.dirname(__file__))
FFMPEG_DIR = os.path.abspath(os.path.join(SCRIPTS_DIR, '..', '..'))
+FUCHSIA_DIR = os.path.abspath(os.path.join(FFMPEG_DIR, '..', '..'))
# These profiles select different levels of format support. The 'default'
@@ -143,7 +144,7 @@
'--enable-fft',
'--enable-rdft',
'--enable-static',
-
+ '--enable-libopus',
# Disable features.
'--disable-debug',
'--disable-bzlib',
@@ -166,12 +167,15 @@
'--disable-autodetect',
# Common codecs.
- '--enable-decoder=vorbis,flac',
+ '--enable-decoder=vorbis,libopus,flac',
'--enable-decoder=pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3',
'--enable-decoder=pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw',
'--enable-decoder=theora,vp8,sbc,aptx',
'--enable-demuxer=ogg,matroska,wav,flac,mp3,mov',
'--enable-parser=opus,vorbis,flac,mpegaudio',
+ # Setup include path so Fuchsia's libopus can be used.
+ '--extra-cflags=-I' + os.path.join(FUCHSIA_DIR,
+ 'third_party/opus/include'),
'--enable-parser=vp3,vp8',
'--optflags="-O2"',