summaryrefslogtreecommitdiff
path: root/media-libs/x265
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-03-18 12:50:07 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-03-18 12:50:07 +0000
commitebb07c94f800907e02d2a6b92c1bc757b2f86f49 (patch)
tree9b5feb42804ee57e6fe960470f5b0c98c1aa4970 /media-libs/x265
parent529bbf6d047ac6b80c0d9310ec0f666c145ec5fe (diff)
gentoo auto-resync : 18:03:2024 - 12:50:07
Diffstat (limited to 'media-libs/x265')
-rw-r--r--media-libs/x265/Manifest5
-rw-r--r--media-libs/x265/x265-3.5-r3.ebuild9
-rw-r--r--media-libs/x265/x265-3.5-r4.ebuild222
-rw-r--r--media-libs/x265/x265-9999.ebuild11
4 files changed, 240 insertions, 7 deletions
diff --git a/media-libs/x265/Manifest b/media-libs/x265/Manifest
index 36744f8056f1..2e754649e763 100644
--- a/media-libs/x265/Manifest
+++ b/media-libs/x265/Manifest
@@ -7,6 +7,7 @@ AUX x265-9999-arm.patch 2115 BLAKE2B 92f2225fd23030220531e6bfda7a3d4ce197090a7b1
AUX x265-9999-test-ns.patch 14971 BLAKE2B 8750a3a94eefd78dfe082c46634606a1abe4ae1b9cf89971e5532a1fc8d42e8b406ca71ab2dfd3e77bdc589e553e190c423a12b5c1007eae9fe12d86e7603ef7 SHA512 55baf712622acfb0d76eee3b283ba38905327eacb0ce52f202563e7e6c1c8593bcae84acc876c91f36ac22fcc06950ffa181515b58d199821c8d265f309594e7
DIST x265_3.5.tar.gz 1537044 BLAKE2B 4fe15b762eda08a4379f69df622bef603fed784a237381d5c95876412020c113d053af829fa1eb66468462a6edc0de32dc597b1a98a63e9aa0250a47f4e76d05 SHA512 230e683239c3e262096ba96246c6f67229a1625d163f86647a411733bb1cf349685858aee3017bce818bb6992448d0abaa9241615a5b620561ce47ecb164f997
EBUILD x265-3.5-r2.ebuild 6342 BLAKE2B 3a5bf8ebedc877d8d69c3021f925fb77559ea682a423438d734953e9960518d9d96672955bf56d7d11409ba734c38edd43f60f25b1f5b666f68de11591fe4370 SHA512 55e41cc836b62aab1c64da0e2b1d5ea35a204bcee5408b47fc732237af394daf419e965fb963c4cba4814b00f2d40ea9ce707aa14f5695b18f5f8dadb43272c6
-EBUILD x265-3.5-r3.ebuild 6123 BLAKE2B c944d6f5a5a28822d6ec8c7de3f82bfb138db27706df5de9f80511449bfef08d0831a95c69694c4e22566aa3fc81889d22f1667fb48231ad1e0b1d76f3fda621 SHA512 6fd17e59b5136d02f5b65a6b8d3b10bcfacdb79a6a3075f45846a133420001526970c4ad8b512045f9a53077b57dd1a88145a1a756eeeb6f38b0f96b53fdd91c
-EBUILD x265-9999.ebuild 6112 BLAKE2B 852aa11b7fa1edfea6a2036e9c1b5122095c394becec564c6f7d10bd15350178b3de8ed3204d370047036f0fb135b6fa47ddb6366f7d8aed65b7bcc90dc776a7 SHA512 e7c3aa595223570954c6b40032aab381ea997568cf9d8fad8139f5e1b87e348f24b650d6b47b0d73041cabb12b1358bee9eb8d2c8706acff6eb2954d8e8c94ed
+EBUILD x265-3.5-r3.ebuild 6278 BLAKE2B eed60ccfe4d08c4b50fea28409ec6542b4641d312042cd9ea6d4d982483be4013202d7cbd5f2f8b4e70f307f69e597ccc4f7b27bf0285b4f9bfe5e93a2d1a0cd SHA512 45d787b42c2d8ca8f082b0b46137608ada716a011d1a83fe99a1f7a27fb39d3f1bb58e8b8f4d8bbd912b58191907ef8b04d3b0a7879ad1268568f962e38e4ee7
+EBUILD x265-3.5-r4.ebuild 6284 BLAKE2B 711ba48141c743309234a82643f786515a6f3455724175164a990cd51066925afb941255407f615e0090d9d8f8488a3c25ac7768c6d80459195d1b391c8fec17 SHA512 aa54eccb1c21a9c414d232731cbba199acaa39e6030a31f42cb4990fd4ac624b6e792f588bc73f68af880adf028f2eec612aab255bd93cf42d1ab42b17094746
+EBUILD x265-9999.ebuild 6267 BLAKE2B 8c72626a97d64b7f1470625d932f7294ca17d503a0a89a81e567f4f13a1cc04fd41275e4a5ddc9e6e4f4d3ed9b1e7edd56092d10bb57d4e219776a4b8c26fd9c SHA512 0eb5ec91ed93440ebd8cf79724591fc4a8f03405cf42d33b7f9d3d0dad2cc1a018e23c301ec659a2dacc7c97eff199569bb60cfcb90999a3a785f964cf3481a1
MISC metadata.xml 626 BLAKE2B 59840316bac42695fd0c76baad143fcbdf810d80b48aa0260633b7dd70cd24a064ac0e3284772368bffd05415befd99fc4f224d2c2c7fc44e27ec56759f04b07 SHA512 97ba150042a2f4558c828af03bb489faa4385af6a2c72ed3f7489091e011a94e40330117a3f2edddea8fc73652396fb53e9190bdd00cb2b3d1c8b553ed2d0d7e
diff --git a/media-libs/x265/x265-3.5-r3.ebuild b/media-libs/x265/x265-3.5-r3.ebuild
index 83e490d78ecf..f3d6c8cbd76a 100644
--- a/media-libs/x265/x265-3.5-r3.ebuild
+++ b/media-libs/x265/x265-3.5-r3.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit cmake multilib-minimal multibuild
+inherit cmake flag-o-matic multilib-minimal multibuild
if [[ ${PV} = 9999* ]]; then
inherit git-r3
@@ -157,6 +157,11 @@ x265_variant_src_configure() {
}
multilib_src_configure() {
+ # -Werror=odr
+ # https://bugs.gentoo.org/875854
+ # https://bitbucket.org/multicoreware/x265_git/issues/937/build-fails-with-lto
+ filter-lto
+
local myabicmakeargs=(
-DENABLE_TESTS=$(usex test ON OFF)
$(multilib_is_native_abi || echo "-DENABLE_CLI=OFF")
diff --git a/media-libs/x265/x265-3.5-r4.ebuild b/media-libs/x265/x265-3.5-r4.ebuild
new file mode 100644
index 000000000000..11fbb36fc212
--- /dev/null
+++ b/media-libs/x265/x265-3.5-r4.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic multilib-minimal multibuild
+
+if [[ ${PV} = 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://bitbucket.org/multicoreware/x265_git/"
+ S=${WORKDIR}/${P}/source
+else
+ SRC_URI="https://bitbucket.org/multicoreware/x265_git/downloads/${PN}_${PV}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="Library for encoding video streams into the H.265/HEVC format"
+HOMEPAGE="http://x265.org/ https://bitbucket.org/multicoreware/x265_git/"
+
+LICENSE="GPL-2"
+# subslot = libx265 soname
+SLOT="0/199"
+IUSE="+10bit +12bit cpu_flags_ppc_vsx2 numa test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="numa? ( >=sys-process/numactl-2.0.10-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+ASM_DEPEND=">=dev-lang/nasm-2.13"
+BDEPEND="
+ abi_x86_32? ( ${ASM_DEPEND} )
+ abi_x86_64? ( ${ASM_DEPEND} )"
+
+PATCHES=(
+ "${FILESDIR}/arm-r1.patch"
+ "${FILESDIR}/neon.patch"
+ "${FILESDIR}/x265-3.3-ppc64.patch"
+ "${FILESDIR}/tests.patch"
+ "${FILESDIR}/test-ns.patch"
+)
+
+src_unpack() {
+ if [[ ${PV} = 9999* ]]; then
+ git-r3_src_unpack
+ else
+ unpack ${A}
+ export S="$(echo "${WORKDIR}/${PN}_"*"/source")"
+ fi
+}
+
+# By default, the library and the encoder is configured for only one output bit
+# depth. Meaning, one has to rebuild libx265 if (s)he wants to produce HEVC
+# files with a different bit depth, which is annoying. However, upstream
+# supports proper namespacing for 8bits, 10bits & 12bits HEVC and linking all
+# that together so that the resulting library can produce all three of them
+# instead of only one.
+# The API requires the bit depth parameter, so that libx265 can then chose which
+# variant of the encoder to use.
+# To achieve this, we have to build one (static) library for each non-main
+# variant, and link it into the main library.
+# Upstream documents using the 8bit variant as main library, hence we do not
+# allow disabling it: "main" *MUST* come last in the following list.
+
+x265_get_variants() {
+ local variants=""
+ use 12bit && variants+="main12 "
+ use 10bit && variants+="main10 "
+ variants+="main"
+ echo "${variants}"
+}
+
+x265_variant_src_configure() {
+ mkdir -p "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" >/dev/null || die
+
+ einfo "Configuring variant: ${MULTIBUILD_VARIANT} for ABI: ${ABI}"
+
+ local mycmakeargs=( "${myabicmakeargs[@]}" )
+ case "${MULTIBUILD_VARIANT}" in
+ "main12")
+ mycmakeargs+=(
+ -DHIGH_BIT_DEPTH=ON
+ -DEXPORT_C_API=OFF
+ -DENABLE_SHARED=OFF
+ -DENABLE_CLI=OFF
+ -DMAIN12=ON
+ )
+ if [[ ${ABI} = x86 ]] ; then
+ mycmakeargs+=( -DENABLE_ASSEMBLY=OFF )
+ fi
+ if [[ ${ABI} = arm* ]] ; then
+ # 589674
+ mycmakeargs+=( -DENABLE_ASSEMBLY=OFF )
+ fi
+ # disable altivec for 12bit build #607802#c5
+ if [[ ${ABI} = ppc* ]] ; then
+ mycmakeargs+=(
+ -DENABLE_ALTIVEC=OFF
+ -DCPU_POWER8=$(usex cpu_flags_ppc_vsx2 ON OFF)
+ )
+ fi
+ ;;
+ "main10")
+ mycmakeargs+=(
+ -DHIGH_BIT_DEPTH=ON
+ -DEXPORT_C_API=OFF
+ -DENABLE_SHARED=OFF
+ -DENABLE_CLI=OFF
+ -DENABLE_HDR10_PLUS=ON
+ )
+ if [[ ${ABI} = x86 ]] ; then
+ mycmakeargs+=( -DENABLE_ASSEMBLY=OFF )
+ fi
+ if [[ ${ABI} = arm* ]] ; then
+ # 589674
+ mycmakeargs+=( -DENABLE_ASSEMBLY=OFF )
+ fi
+ # disable altivec for 10bit build #607802#c5
+ if [[ ${ABI} = ppc* ]] ; then
+ mycmakeargs+=(
+ -DENABLE_ALTIVEC=OFF
+ -DCPU_POWER8=$(usex cpu_flags_ppc_vsx2 ON OFF)
+ )
+ fi
+ ;;
+ "main")
+ if (( "${#MULTIBUILD_VARIANTS[@]}" > 1 )) ; then
+ local myvariants=( "${MULTIBUILD_VARIANTS[@]}" )
+ unset myvariants[${#MULTIBUILD_VARIANTS[@]}-1]
+ local liblist="" v=
+ for v in "${myvariants[@]}" ; do
+ ln -s "${BUILD_DIR%-*}-${v}/libx265.a" "libx265_${v}.a" || die
+ liblist+="libx265_${v}.a;"
+ done
+ mycmakeargs+=(
+ -DEXTRA_LIB="${liblist}"
+ -DEXTRA_LINK_FLAGS=-L.
+ -DLINKED_10BIT=$(usex 10bit)
+ -DLINKED_12BIT=$(usex 12bit)
+ )
+ if [[ ${ABI} = ppc* ]] ; then
+ # upstream uses mix of altivec + power8 vectors
+ # it's impossible to enable altivec without CPU_POWER8
+ # and it does not work on ppc32
+ # so we toggle both variables together
+ mycmakeargs+=(
+ -DCPU_POWER8=$(usex cpu_flags_ppc_vsx2 ON OFF)
+ -DENABLE_ALTIVEC=$(usex cpu_flags_ppc_vsx2 ON OFF)
+ )
+ fi
+ fi
+ ;;
+ *)
+ die "Unknown variant: ${MULTIBUILD_VARIANT}";;
+ esac
+ cmake_src_configure
+ popd >/dev/null || die
+}
+
+multilib_src_configure() {
+ # -Werror=odr
+ # https://bugs.gentoo.org/875854
+ # https://bitbucket.org/multicoreware/x265_git/issues/937/build-fails-with-lto
+ filter-lto
+
+ local myabicmakeargs=(
+ -DENABLE_TESTS=$(usex test ON OFF)
+ $(multilib_is_native_abi || echo "-DENABLE_CLI=OFF")
+ -DENABLE_PIC=ON
+ -DENABLE_LIBNUMA=$(usex numa ON OFF)
+ -DGIT_ARCHETYPE=1 #814116
+ -DLIB_INSTALL_DIR="$(get_libdir)"
+ )
+
+ # Unfortunately, the asm for x86/x32/arm isn't PIC-safe.
+ if [[ ${ABI} = x86 ]] ; then
+ # Bug #528202, bug #913412
+ myabicmakeargs+=( -DENABLE_ASSEMBLY=OFF )
+ elif [[ ${ABI} = x32 ]] ; then
+ # bug #510890
+ myabicmakeargs+=( -DENABLE_ASSEMBLY=OFF )
+ elif [[ ${ABI} = arm ]] ; then
+ myabicmakeargs+=( -DENABLE_ASSEMBLY=OFF )
+ fi
+
+ local MULTIBUILD_VARIANTS=( $(x265_get_variants) )
+ multibuild_foreach_variant x265_variant_src_configure
+}
+
+multilib_src_compile() {
+ local MULTIBUILD_VARIANTS=( $(x265_get_variants) )
+ multibuild_foreach_variant cmake_src_compile
+}
+
+x265_variant_src_test() {
+ if [ -x "${BUILD_DIR}/test/TestBench" ] ; then
+ "${BUILD_DIR}/test/TestBench" || die
+ else
+ einfo "Unit tests check only assembly."
+ einfo "You do not seem to have any for ABI=${ABI}, x265 variant=${MULTIBUILD_VARIANT}"
+ einfo "Skipping tests."
+ fi
+}
+
+multilib_src_test() {
+ local MULTIBUILD_VARIANTS=( $(x265_get_variants) )
+ multibuild_foreach_variant x265_variant_src_test
+}
+
+multilib_src_install() {
+ # Install only "main" variant since the others are already linked into it.
+ local MULTIBUILD_VARIANTS=( "main" )
+ multibuild_foreach_variant cmake_src_install
+}
+
+multilib_src_install_all() {
+ dodoc -r "${S}/../doc/"*
+
+ # we don't install *.a files for all variants,
+ # so just delete these files instead of pretending
+ # real USE=static-libs support
+ find "${ED}" -name "*.a" -delete || die
+}
diff --git a/media-libs/x265/x265-9999.ebuild b/media-libs/x265/x265-9999.ebuild
index 7503475200d5..8be9f4a93e84 100644
--- a/media-libs/x265/x265-9999.ebuild
+++ b/media-libs/x265/x265-9999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit cmake multilib-minimal multibuild
+inherit cmake flag-o-matic multilib-minimal multibuild
if [[ ${PV} = 9999* ]]; then
inherit git-r3
@@ -156,6 +156,11 @@ x265_variant_src_configure() {
}
multilib_src_configure() {
+ # -Werror=odr
+ # https://bugs.gentoo.org/875854
+ # https://bitbucket.org/multicoreware/x265_git/issues/937/build-fails-with-lto
+ filter-lto
+
local myabicmakeargs=(
-DENABLE_TESTS=$(usex test ON OFF)
$(multilib_is_native_abi || echo "-DENABLE_CLI=OFF")