summaryrefslogtreecommitdiff
path: root/media-libs/svt-av1
diff options
context:
space:
mode:
authorAlex Xu (Hello71) <alex_y_xu@yahoo.ca>2021-08-14 21:43:27 -0400
committerAlex Xu (Hello71) <alex_y_xu@yahoo.ca>2021-08-14 21:43:27 -0400
commit8ba106d6a024d569d78d9c3fadaa805ba43f3374 (patch)
tree0ece5d5ab7719ad1c7906056341f413d5bca203c /media-libs/svt-av1
parent37ca729b962667de1764eebcef181aa3928fd39e (diff)
downloadgentoo-overlay-8ba106d6a024d569d78d9c3fadaa805ba43f3374.tar.xz
gentoo-overlay-8ba106d6a024d569d78d9c3fadaa805ba43f3374.zip
media-libs/svt-av1: import
Diffstat (limited to 'media-libs/svt-av1')
-rw-r--r--media-libs/svt-av1/Manifest1
-rw-r--r--media-libs/svt-av1/files/svt-av1-0.8.6-fix-c-only-build.patch123
-rw-r--r--media-libs/svt-av1/metadata.xml7
-rw-r--r--media-libs/svt-av1/svt-av1-0.8.6.ebuild39
-rw-r--r--media-libs/svt-av1/svt-av1-9999.ebuild37
5 files changed, 207 insertions, 0 deletions
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 <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/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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <remote-id type="gitlab">AOMediaCodec/SVT-AV1</remote-id>
+ </upstream>
+</pkgmetadata>
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
+}