From 8ba106d6a024d569d78d9c3fadaa805ba43f3374 Mon Sep 17 00:00:00 2001 From: "Alex Xu (Hello71)" Date: Sat, 14 Aug 2021 21:43:27 -0400 Subject: media-libs/svt-av1: import --- media-libs/svt-av1/Manifest | 1 + .../files/svt-av1-0.8.6-fix-c-only-build.patch | 123 +++++++++++++++++++++ media-libs/svt-av1/metadata.xml | 7 ++ media-libs/svt-av1/svt-av1-0.8.6.ebuild | 39 +++++++ media-libs/svt-av1/svt-av1-9999.ebuild | 37 +++++++ 5 files changed, 207 insertions(+) create mode 100644 media-libs/svt-av1/Manifest create mode 100644 media-libs/svt-av1/files/svt-av1-0.8.6-fix-c-only-build.patch create mode 100644 media-libs/svt-av1/metadata.xml create mode 100644 media-libs/svt-av1/svt-av1-0.8.6.ebuild create mode 100644 media-libs/svt-av1/svt-av1-9999.ebuild diff --git a/media-libs/svt-av1/Manifest b/media-libs/svt-av1/Manifest new file mode 100644 index 0000000..0f9abf8 --- /dev/null +++ b/media-libs/svt-av1/Manifest @@ -0,0 +1 @@ +DIST svt-av1-0.8.6.tar.gz 6416120 BLAKE2B c30d3bfc2dba6d7964625c4505bb135aa335adf195df91ad058fb02496276cabdc651b09854a2d14136352a434e08f4974148e03e7d54bde0924d25a1c4524cd SHA512 07e7353e35bc581b23c71913e65f5fd27566f4bf1d317d474d57d5bb2b82f380f713a00be19bd3f703935da50f81f3abf1d4ae38fbdf253385edf423737c0543 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 new file mode 100644 index 0000000..81c82bb --- /dev/null +++ b/media-libs/svt-av1/files/svt-av1-0.8.6-fix-c-only-build.patch @@ -0,0 +1,123 @@ +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 +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/metadata.xml b/media-libs/svt-av1/metadata.xml new file mode 100644 index 0000000..8b50750 --- /dev/null +++ b/media-libs/svt-av1/metadata.xml @@ -0,0 +1,7 @@ + + + + + AOMediaCodec/SVT-AV1 + + diff --git a/media-libs/svt-av1/svt-av1-0.8.6.ebuild b/media-libs/svt-av1/svt-av1-0.8.6.ebuild new file mode 100644 index 0000000..d4f59a9 --- /dev/null +++ b/media-libs/svt-av1/svt-av1-0.8.6.ebuild @@ -0,0 +1,39 @@ +# Copyright 2020-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +inherit flag-o-matic cmake-multilib + +DESCRIPTION="Scalable Video Technology for AV1 (SVT-AV1 Encoder and Decoder)" +HOMEPAGE="https://github.com/AOMediaCodec/SVT-AV1" + +if [[ ${PV} = 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.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}" +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 )" + +PATCHES=( "${FILESDIR}"/${P}-fix-c-only-build.patch ) + +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 + ) + + cmake_src_configure +} diff --git a/media-libs/svt-av1/svt-av1-9999.ebuild b/media-libs/svt-av1/svt-av1-9999.ebuild new file mode 100644 index 0000000..dbdcc33 --- /dev/null +++ b/media-libs/svt-av1/svt-av1-9999.ebuild @@ -0,0 +1,37 @@ +# Copyright 2020-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +inherit flag-o-matic cmake-multilib + +DESCRIPTION="Scalable Video Technology for AV1 (SVT-AV1 Encoder and Decoder)" +HOMEPAGE="https://github.com/AOMediaCodec/SVT-AV1" + +if [[ ${PV} = 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.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}" +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 )" + +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 + ) + + cmake_src_configure +} -- cgit v1.2.3-54-g00ecf