# HG changeset patch # User Thomas Deutschmann # Parent a58801e9e29b0db9da0b5d90b96f2e05ff062de1 # Parent 66f9c84511dda432587261f6b9ebf07c4771aad8 Add ability to use system-av1 (media-libs/libaom and media-libs/dav1d) instead of bundled. diff --git a/config/external/moz.build b/config/external/moz.build --- a/config/external/moz.build +++ b/config/external/moz.build @@ -34,18 +34,19 @@ if CONFIG['MOZ_TREMOR']: if CONFIG['MOZ_WEBM_ENCODER']: external_dirs += ['media/libmkv'] 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'] if not CONFIG['MOZ_SYSTEM_WEBP']: external_dirs += ['media/libwebp'] if CONFIG['CPU_ARCH'] == 'arm': diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild --- a/config/system-headers.mozbuild +++ b/config/system-headers.mozbuild @@ -1291,16 +1291,24 @@ else: 'sys/event.h', ] if CONFIG['MOZ_ENABLE_LIBPROXY']: system_headers += [ 'proxy.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', 'vpx/svc_context.h', 'vpx/vp8cx.h', 'vpx/vp8dx.h', 'vpx/vpx_codec.h', 'vpx/vpx_decoder.h', diff --git a/dom/media/platforms/moz.build b/dom/media/platforms/moz.build --- a/dom/media/platforms/moz.build +++ b/dom/media/platforms/moz.build @@ -76,16 +76,21 @@ if CONFIG['MOZ_AV1']: EXPORTS += [ 'agnostic/AOMDecoder.h', 'agnostic/DAV1DDecoder.h', ] UNIFIED_SOURCES += [ '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 += [ 'omx/OmxCoreLibLinker.h', ] UNIFIED_SOURCES += [ 'omx/OmxCoreLibLinker.cpp', ] diff --git a/toolkit/moz.configure b/toolkit/moz.configure --- a/toolkit/moz.configure +++ b/toolkit/moz.configure @@ -480,17 +480,33 @@ imply_option('--enable-fmp4', ffmpeg, '- option('--disable-av1', help='Disable av1 video support') @depends('--enable-av1') 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': return True elif target.cpu in ('x86', 'x86_64'): if nasm_version < '2.14': die('nasm 2.14 or greater is required for AV1 support. ' 'Either install nasm or add --disable-av1 to your configure options.')