diff options
-rw-r--r-- | media-libs/svt-av1/Manifest | 2 | ||||
-rw-r--r-- | media-libs/svt-av1/files/svt-av1-0.8.6-fix-c-only-build.patch | 123 | ||||
-rw-r--r-- | media-libs/svt-av1/files/svt-av1-0.8.6-no-force-avx.patch | 18 | ||||
-rw-r--r-- | media-libs/svt-av1/svt-av1-0.8.7.ebuild (renamed from media-libs/svt-av1/svt-av1-0.8.6.ebuild) | 34 | ||||
-rw-r--r-- | media-libs/svt-av1/svt-av1-9999.ebuild | 34 |
5 files changed, 68 insertions, 143 deletions
diff --git a/media-libs/svt-av1/Manifest b/media-libs/svt-av1/Manifest index 0f9abf8..6208e0d 100644 --- a/media-libs/svt-av1/Manifest +++ b/media-libs/svt-av1/Manifest @@ -1 +1 @@ -DIST svt-av1-0.8.6.tar.gz 6416120 BLAKE2B c30d3bfc2dba6d7964625c4505bb135aa335adf195df91ad058fb02496276cabdc651b09854a2d14136352a434e08f4974148e03e7d54bde0924d25a1c4524cd SHA512 07e7353e35bc581b23c71913e65f5fd27566f4bf1d317d474d57d5bb2b82f380f713a00be19bd3f703935da50f81f3abf1d4ae38fbdf253385edf423737c0543 +DIST svt-av1-0.8.7.tar.gz 6396358 BLAKE2B 21a0d319078887809d08276b1a11b6dcca1be90a79c6bda19b86749fabb623918b9112de8ae3c7740b14f23d52e4e1c12ec0190f49880b09993525a857f8e334 SHA512 812b794eda930f53dcba6bb02bc5a3f417346705d64f590d7acf2d45df8d10985bd40c313eaaed514601ab699e23c87852059b9eb0b0ff8a717ef9fd80a132f7 diff --git a/media-libs/svt-av1/files/svt-av1-0.8.6-fix-c-only-build.patch b/media-libs/svt-av1/files/svt-av1-0.8.6-fix-c-only-build.patch deleted file mode 100644 index 81c82bb..0000000 --- a/media-libs/svt-av1/files/svt-av1-0.8.6-fix-c-only-build.patch +++ /dev/null @@ -1,123 +0,0 @@ -https://bugs.gentoo.org/766156 -https://github.com/AOMediaCodec/SVT-AV1/commit/09c90e4cfb602b9a247a8a256923bdbddaf2ed9b - -From 09c90e4cfb602b9a247a8a256923bdbddaf2ed9b Mon Sep 17 00:00:00 2001 -From: Slawomir Pawlowski <slawomir.pawlowski@intel.com> -Date: Fri, 18 Dec 2020 16:47:20 +0100 -Subject: [PATCH] Fix C only build - ---- - CMakeLists.txt | 5 ++++- - Source/Lib/Common/Codec/common_dsp_rtcd.c | 5 ++++- - Source/Lib/Common/Codec/common_dsp_rtcd.h | 2 ++ - Source/Lib/Decoder/CMakeLists.txt | 5 ++++- - Source/Lib/Encoder/CMakeLists.txt | 5 ++++- - Source/Lib/Encoder/Codec/firstpass.c | 2 +- - 6 files changed, 19 insertions(+), 5 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8baff740b1..efdd7385fb 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -302,6 +302,9 @@ if(BUILD_TESTING) - endif() - - add_subdirectory(third_party/fastfeat) --add_subdirectory(third_party/cpuinfo) -+ -+if(NOT COMPILE_C_ONLY AND HAVE_X86_PLATFORM) -+ add_subdirectory(third_party/cpuinfo) -+endif() - - install(DIRECTORY ${PROJECT_SOURCE_DIR}/Source/API/ DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/svt-av1" FILES_MATCHING PATTERN "*.h") -diff --git a/Source/Lib/Common/Codec/common_dsp_rtcd.c b/Source/Lib/Common/Codec/common_dsp_rtcd.c -index e24f99f66b..c09f088b88 100644 ---- a/Source/Lib/Common/Codec/common_dsp_rtcd.c -+++ b/Source/Lib/Common/Codec/common_dsp_rtcd.c -@@ -17,8 +17,10 @@ - #include "EbPackUnPack_C.h" - #include "EbAvcStyleMcp.h" - -+#ifdef ARCH_X86_64 - // for get_cpu_flags - #include "cpuinfo.h" -+#endif - - /* - * DSP deprecated flags -@@ -69,7 +71,7 @@ int64_t svt_av1_block_error_c(const TranLow *coeff, const TranLow *dqcoeff, - /************************************** - * Instruction Set Support - **************************************/ -- -+#ifdef ARCH_X86_64 - CPU_FLAGS get_cpu_flags() { - CPU_FLAGS flags = 0; - -@@ -105,6 +107,7 @@ CPU_FLAGS get_cpu_flags_to_use() { - #endif - return flags; - } -+#endif /*ARCH_X86_64*/ - - #ifdef ARCH_X86_64 - #ifndef NON_AVX512_SUPPORT -diff --git a/Source/Lib/Common/Codec/common_dsp_rtcd.h b/Source/Lib/Common/Codec/common_dsp_rtcd.h -index b76882b003..f67243f3d4 100644 ---- a/Source/Lib/Common/Codec/common_dsp_rtcd.h -+++ b/Source/Lib/Common/Codec/common_dsp_rtcd.h -@@ -67,8 +67,10 @@ extern "C" { - #endif - - // Helper Functions -+#ifdef ARCH_X86_64 - CPU_FLAGS get_cpu_flags(); - CPU_FLAGS get_cpu_flags_to_use(); -+#endif - void setup_common_rtcd_internal(CPU_FLAGS flags); - void svt_aom_blend_a64_vmask_c(uint8_t *dst, uint32_t dst_stride, const uint8_t *src0, uint32_t src0_stride, const uint8_t *src1, uint32_t src1_stride, const uint8_t *mask, int w, int h); - RTCD_EXTERN void(*svt_aom_blend_a64_vmask)(uint8_t *dst, uint32_t dst_stride, const uint8_t *src0, uint32_t src0_stride, const uint8_t *src1, uint32_t src1_stride, const uint8_t *mask, int w, int h); -diff --git a/Source/Lib/Decoder/CMakeLists.txt b/Source/Lib/Decoder/CMakeLists.txt -index c8ffc57657..c71c4da0b8 100644 ---- a/Source/Lib/Decoder/CMakeLists.txt -+++ b/Source/Lib/Decoder/CMakeLists.txt -@@ -99,7 +99,9 @@ set_target_properties(SvtAv1Dec PROPERTI - set_target_properties(SvtAv1Dec PROPERTIES SOVERSION ${DEC_VERSION_MAJOR}) - add_dependencies(SvtAv1Dec EbVersionHeaderGen) - target_link_libraries(SvtAv1Dec PUBLIC ${PLATFORM_LIBS}) --target_link_libraries(SvtAv1Dec PRIVATE cpuinfo_public) -+if(NOT COMPILE_C_ONLY AND HAVE_X86_PLATFORM) -+ target_link_libraries(SvtAv1Dec PRIVATE cpuinfo_public) -+endif() - install(TARGETS SvtAv1Dec DESTINATION "${CMAKE_INSTALL_LIBDIR}") - - configure_file(pkg-config.pc.in ${CMAKE_BINARY_DIR}/SvtAv1Dec.pc @ONLY) -diff --git a/Source/Lib/Encoder/CMakeLists.txt b/Source/Lib/Encoder/CMakeLists.txt -index 936592e1ce..ab310dcef1 100644 ---- a/Source/Lib/Encoder/CMakeLists.txt -+++ b/Source/Lib/Encoder/CMakeLists.txt -@@ -130,7 +130,9 @@ endif() - set_target_properties(SvtAv1Enc PROPERTIES VERSION ${ENC_VERSION}) - set_target_properties(SvtAv1Enc PROPERTIES SOVERSION ${ENC_VERSION_MAJOR}) - target_link_libraries(SvtAv1Enc PUBLIC ${PLATFORM_LIBS}) --target_link_libraries(SvtAv1Enc PRIVATE cpuinfo_public) -+if(NOT COMPILE_C_ONLY AND HAVE_X86_PLATFORM) -+ target_link_libraries(SvtAv1Enc PRIVATE cpuinfo_public) -+endif() - install(TARGETS SvtAv1Enc DESTINATION "${CMAKE_INSTALL_LIBDIR}") - - configure_file(pkg-config.pc.in ${CMAKE_BINARY_DIR}/SvtAv1Enc.pc @ONLY) -diff --git a/Source/Lib/Encoder/Codec/firstpass.c b/Source/Lib/Encoder/Codec/firstpass.c -index feb7a1fae7..80b7dd05d8 100644 ---- a/Source/Lib/Encoder/Codec/firstpass.c -+++ b/Source/Lib/Encoder/Codec/firstpass.c -@@ -1189,8 +1189,8 @@ static void first_pass_setup_me_context(MotionEstimationContext_t *context_ptr, - // set search method - context_ptr->me_context_ptr->hme_search_method = SUB_SAD_SEARCH; - -- uint8_t *src_ptr = &(input_picture_ptr->buffer_y[buffer_index]); - #ifdef ARCH_X86_64 -+ uint8_t *src_ptr = &(input_picture_ptr->buffer_y[buffer_index]); - //_MM_HINT_T0 //_MM_HINT_T1 //_MM_HINT_T2 //_MM_HINT_NTA - uint32_t i; - for (i = 0; i < sb_height; i++) { diff --git a/media-libs/svt-av1/files/svt-av1-0.8.6-no-force-avx.patch b/media-libs/svt-av1/files/svt-av1-0.8.6-no-force-avx.patch new file mode 100644 index 0000000..62f3b9b --- /dev/null +++ b/media-libs/svt-av1/files/svt-av1-0.8.6-no-force-avx.patch @@ -0,0 +1,18 @@ +https://bugs.gentoo.org/785556 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -170,14 +170,6 @@ + endif() + endforeach() + +-if(CMAKE_C_FLAGS MATCHES ".*-march=native.*") +- string(APPEND CMAKE_C_FLAGS " -mno-avx") +-endif() +- +-if(CMAKE_CXX_FLAGS MATCHES ".*-march=native.*") +- string(APPEND CMAKE_CXX_FLAGS " -mno-avx") +-endif() +- + if(CMAKE_ASM_NASM_OBJECT_FORMAT MATCHES "win") + set(CMAKE_ASM_NASM_FLAGS_DEBUG "${CMAKE_ASM_NASM_FLAGS_DEBUG} -gcv8") + elseif(CMAKE_ASM_NASM_COMPILER MATCHES "nasm") diff --git a/media-libs/svt-av1/svt-av1-0.8.6.ebuild b/media-libs/svt-av1/svt-av1-0.8.7.ebuild index d4f59a9..4003eb5 100644 --- a/media-libs/svt-av1/svt-av1-0.8.6.ebuild +++ b/media-libs/svt-av1/svt-av1-0.8.7.ebuild @@ -1,39 +1,53 @@ # Copyright 2020-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -CMAKE_ECLASS=cmake -inherit flag-o-matic cmake-multilib +inherit cmake-multilib flag-o-matic DESCRIPTION="Scalable Video Technology for AV1 (SVT-AV1 Encoder and Decoder)" -HOMEPAGE="https://github.com/AOMediaCodec/SVT-AV1" +HOMEPAGE="https://gitlab.com/AOMediaCodec/SVT-AV1" if [[ ${PV} = 9999 ]]; then inherit git-r3 - EGIT_REPO_URI="https://github.com/AOMediaCodec/SVT-AV1.git" + EGIT_REPO_URI="https://gitlab.com/AOMediaCodec/SVT-AV1.git" else - SRC_URI="https://github.com/AOMediaCodec/SVT-AV1/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc -x86" # -x86: https://github.com/AOMediaCodec/SVT-AV1/issues/1231 - S="${WORKDIR}/SVT-AV1-${PV}" + SRC_URI="https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v${PV}/SVT-AV1-v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" + S="${WORKDIR}/SVT-AV1-v${PV}" fi # Also see "Alliance for Open Media Patent License 1.0" LICENSE="BSD-2 Apache-2.0 BSD ISC LGPL-2.1+ MIT" SLOT="0" -DEPEND="amd64? ( dev-lang/yasm )" +BDEPEND="amd64? ( dev-lang/yasm )" -PATCHES=( "${FILESDIR}"/${P}-fix-c-only-build.patch ) +src_prepare() { + if ! use amd64 ; then + # This _should_ be possible on amd64 too, but breaks with -O3 + # without AVX. + # bug #785556 + eapply "${FILESDIR}"/${PN}-0.8.6-no-force-avx.patch + fi + + cmake_src_prepare +} multilib_src_configure() { append-ldflags -Wl,-z,noexecstack + local mycmakeargs=( # Tests require linking against https://github.com/Cidana-Developers/aom/tree/av1-normative ? # undefined reference to `ifd_inspect' # https://github.com/Cidana-Developers/aom/commit/cfc5c9e95bcb48a5a41ca7908b44df34ea1313c0 -DBUILD_TESTING=OFF + -DCMAKE_OUTPUT_DIRECTORY=$BUILD_DIR ) + if [[ ${ABI} != amd64 ]]; then + mycmakeargs+=( -DCOMPILE_C_ONLY=ON ) + fi + cmake_src_configure } diff --git a/media-libs/svt-av1/svt-av1-9999.ebuild b/media-libs/svt-av1/svt-av1-9999.ebuild index dbdcc33..4003eb5 100644 --- a/media-libs/svt-av1/svt-av1-9999.ebuild +++ b/media-libs/svt-av1/svt-av1-9999.ebuild @@ -1,37 +1,53 @@ # Copyright 2020-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -CMAKE_ECLASS=cmake -inherit flag-o-matic cmake-multilib +inherit cmake-multilib flag-o-matic DESCRIPTION="Scalable Video Technology for AV1 (SVT-AV1 Encoder and Decoder)" -HOMEPAGE="https://github.com/AOMediaCodec/SVT-AV1" +HOMEPAGE="https://gitlab.com/AOMediaCodec/SVT-AV1" if [[ ${PV} = 9999 ]]; then inherit git-r3 - EGIT_REPO_URI="https://github.com/AOMediaCodec/SVT-AV1.git" + EGIT_REPO_URI="https://gitlab.com/AOMediaCodec/SVT-AV1.git" else - SRC_URI="https://github.com/AOMediaCodec/SVT-AV1/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 -x86" # -x86: https://github.com/AOMediaCodec/SVT-AV1/issues/1231 - S="${WORKDIR}/SVT-AV1-${PV}" + SRC_URI="https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v${PV}/SVT-AV1-v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" + S="${WORKDIR}/SVT-AV1-v${PV}" fi # Also see "Alliance for Open Media Patent License 1.0" LICENSE="BSD-2 Apache-2.0 BSD ISC LGPL-2.1+ MIT" SLOT="0" -DEPEND="amd64? ( dev-lang/yasm )" +BDEPEND="amd64? ( dev-lang/yasm )" + +src_prepare() { + if ! use amd64 ; then + # This _should_ be possible on amd64 too, but breaks with -O3 + # without AVX. + # bug #785556 + eapply "${FILESDIR}"/${PN}-0.8.6-no-force-avx.patch + fi + + cmake_src_prepare +} multilib_src_configure() { append-ldflags -Wl,-z,noexecstack + local mycmakeargs=( # Tests require linking against https://github.com/Cidana-Developers/aom/tree/av1-normative ? # undefined reference to `ifd_inspect' # https://github.com/Cidana-Developers/aom/commit/cfc5c9e95bcb48a5a41ca7908b44df34ea1313c0 -DBUILD_TESTING=OFF + -DCMAKE_OUTPUT_DIRECTORY=$BUILD_DIR ) + if [[ ${ABI} != amd64 ]]; then + mycmakeargs+=( -DCOMPILE_C_ONLY=ON ) + fi + cmake_src_configure } |