summaryrefslogtreecommitdiff
path: root/media-libs/opus/opus-1.5.1-r1.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/opus/opus-1.5.1-r1.ebuild')
-rw-r--r--media-libs/opus/opus-1.5.1-r1.ebuild69
1 files changed, 69 insertions, 0 deletions
diff --git a/media-libs/opus/opus-1.5.1-r1.ebuild b/media-libs/opus/opus-1.5.1-r1.ebuild
new file mode 100644
index 000000000000..fd6dfbd58bf7
--- /dev/null
+++ b/media-libs/opus/opus-1.5.1-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit flag-o-matic meson-multilib python-any-r1
+
+DESCRIPTION="Open codec for interactive speech and music transmission over the Internet"
+HOMEPAGE="https://opus-codec.org/"
+SRC_URI="https://downloads.xiph.org/releases/opus/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+INTRINSIC_FLAGS="cpu_flags_x86_sse cpu_flags_arm_neon"
+IUSE="custom-modes debug doc hardened static-libs test ${INTRINSIC_FLAGS}"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ doc? (
+ app-text/doxygen
+ media-gfx/graphviz
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.3.1-libdir-macro.patch
+ "${FILESDIR}"/${PN}-1.4-arm64-neon.patch
+)
+
+multilib_src_configure() {
+ local emesonargs=(
+ -Ddefault_library=$(multilib_native_usex static-libs both shared)
+
+ # These all have runtime toggles too, per https://opus-codec.org/demo/opus-1.5/
+ -Denable-deep-plc=true
+ -Denable-dred=true
+ -Denable-osce=true
+
+ $(meson_use custom-modes)
+ $(meson_feature test tests)
+ $(meson_use debug assertions)
+ $(meson_use hardened hardening)
+
+ $(meson_native_use_feature doc docs)
+
+ -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
+ )
+
+ # Disable intrinsics if no flags are enabled (bug #752069)
+ # bug #752069
+ # TODO: What is -Dasm for?
+ local i
+ for i in ${INTRINSIC_FLAGS} ; do
+ use ${i} && emesonargs+=( -Dintrinsics=enabled ) && break
+ done || emesonargs+=( -Dintrinsics=disabled )
+
+ if is-flagq -ffast-math || is-flagq -Ofast ; then
+ emesonargs+=( -Dfloat-approx=true )
+ fi
+
+ meson_src_configure
+}
+
+multilib_src_test() {
+ meson_src_test --timeout-multiplier=2
+}