commit 717bba28411c Author: Jory A. Pratt Date: Thu Jun 13 11:53:00 2019 -0700 Bug 1559213 - Allow to use system av1 libs instead of bundled. --- config/external/moz.build | 5 +++-- config/system-headers.mozbuild | 8 ++++++++ dom/media/platforms/moz.build | 5 +++++ toolkit/moz.configure | 19 ++++++++++++++++++- 4 files changed, 34 insertions(+), 3 deletions(-) diff --git config/external/moz.build config/external/moz.build index 03e4fa143bd1..a67d10b11fe6 100644 --- config/external/moz.build +++ config/external/moz.build @@ -37,8 +37,9 @@ if not CONFIG['MOZ_SYSTEM_LIBVPX']: external_dirs += ['media/libvpx'] if CONFIG['MOZ_AV1']: - external_dirs += ['media/libaom'] - external_dirs += ['media/libdav1d'] + if not CONFIG['MOZ_SYSTEM_AV1']: + external_dirs += ['media/libaom'] + external_dirs += ['media/libdav1d'] if not CONFIG['MOZ_SYSTEM_PNG']: external_dirs += ['media/libpng'] diff --git config/system-headers.mozbuild config/system-headers.mozbuild index bcf5c4925564..48964a999a9b 100644 --- config/system-headers.mozbuild +++ config/system-headers.mozbuild @@ -1304,6 +1304,14 @@ if CONFIG['MOZ_ENABLE_CONTENTMANAGER']: 'SelectSingleContentItemPage.h', ] +if CONFIG['MOZ_SYSTEM_AV1']: + system_headers += [ + 'aom/aom_decoder.h', + 'aom/aomdx.h', + 'aom/aom_image.h', + 'dav1d/dav1d.h', + ] + if CONFIG['MOZ_SYSTEM_LIBVPX']: system_headers += [ 'vpx_mem/vpx_mem.h', diff --git dom/media/platforms/moz.build dom/media/platforms/moz.build index 092cee0c9b66..38e45de5b5f0 100644 --- dom/media/platforms/moz.build +++ dom/media/platforms/moz.build @@ -80,6 +80,11 @@ if CONFIG['MOZ_AV1']: 'agnostic/AOMDecoder.cpp', 'agnostic/DAV1DDecoder.cpp', ] + if CONFIG['MOZ_SYSTEM_AV1']: + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS'] + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] if CONFIG['MOZ_OMX']: EXPORTS += [ diff --git toolkit/moz.configure toolkit/moz.configure index 82b5a59acf42..e2329560b42b 100644 --- toolkit/moz.configure +++ toolkit/moz.configure @@ -441,7 +441,23 @@ def av1(value): if value: return True -@depends(target, nasm_version, when=av1 & compile_environment) +option('--with-system-av1', + help="Use system av1 (located with pkgconfig)") + +system_libaom_info = pkg_check_modules('MOZ_SYSTEM_LIBAOM', 'aom >= 1.0.0', + when='--with-system-av1') + +system_libdav1d_info = pkg_check_modules('MOZ_SYSTEM_LIBDAV1D', 'dav1d >= 0.1.1', + when='--with-system-av1') + +@depends(system_libaom_info, system_libdav1d_info) +def system_av1(system_libaom_info, system_libdav1d_info): + has_av1_libs = False + if system_libaom_info and system_libdav1d_info: + has_av1_libs = True + return has_av1_libs + +@depends(target, nasm_version, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment) def dav1d_asm(target, nasm_version): if target.os != 'Android': if target.cpu == 'aarch64': @@ -457,6 +473,7 @@ set_config('MOZ_DAV1D_ASM', dav1d_asm) set_define('MOZ_DAV1D_ASM', dav1d_asm) set_config('MOZ_AV1', av1) set_define('MOZ_AV1', av1) +set_config('MOZ_SYSTEM_AV1', depends_if(system_av1)(lambda _: True)) # Built-in fragmented MP4 support. # ==============================================================